FME Flow Won't Start - When using a Production Database

Liz Sanderson
Liz Sanderson
  • Updated

FME Version

Symptom

Symptoms: After configuring FME Flow (formerly FME Server) to use a new Database for the FME Flow Database you may experience:

NOTE: Related to Oracle, SQL Server, and PostgreSQL.

  1. After you log into the web user interface you see one of the following messages:
    • "Could not connect to FME Core. Please ensure that it is running."
    • "QSConnectionLost: Error communicating with FME Flow, connection may have been lost. Connection refused: connect".
  2. There is no FMEFlow.exe process running in Windows Task Manager (or process monitor of the OS you are working with).
  3. Database Specific Error messages found in log files
  4. Other errors present in the processMonitor or fmeServer log files indicating that the FME Flow core could not start properly.

The following tables provide an overview of database specific error messages and their causes:

Errors found in *fmeserver.log

 

Error Cause Database
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
Bad JDBC Connection String - SID
or Service Name is wrong

Database in shutdown state
Oracle
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: java.sql.SQLException: The Network Adapter could not establish the connection
Most likely a bad hostname in the JDBC
connection string or firewall issues with
the Oracle Database System
Oracle
SQLException: ORA-00942: table or view does not exist Correct credentials but no
fme_* tables in the schema - Oracle
Oracle
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: java.sql.SQLException: ORA-01017: invalid username/password; logon denied
Incorrect Username Oracle
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: java.sql.SQLException: ORA-28000: the account is locked
Incorrect password tried ten times
and now the account is locked -
usually indicating a bad password
for a valid user
Oracle
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'fmeserver'
Likely incorrect password used SQL Server
SQLException: Invalid column name 'rtc'.
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid column name 'rtc'
FMEServer schema objects are
out of date for the new version
of FME Server.
Recreate the FMEServer
schema objects
SQL Server
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the hostcomputer1/instance1, port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".
This may be related to a host entry
that looks like this
<hostname>\<instance>.
FME Server doesn't not handle this
correctly. Try this format for
DB_JDBC_URL - the Port reference is
removed and instanceName has
been added: DB_JDBC_URL=
jdbc:sqlserver://proserve1;instanceName=
support;databaseName=fmeserver

A PR has been filed that will address support for this syntax.
SQL Server
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: org.postgresql.util.PSQLException: Connection refused.
Bad Port in config file - PostgreSQL Postgres
SQLException: COM.safe.fmeserver.database.
FMEServerDBException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "fmeserver"
May indicate a Bad User or Bad Password Postgres
SQLException: ERROR: relation "fme_jobs" does not exist Connection was made but no fme_* tables found in the schema Postgres

 

Error's found in *fmeprocessmonitorcore.log ErrorCauseDatabase

Error Cause Database
Exception in thread "main" COM.safe.fmeserver.api.FMEServerException: QSConnectionFailed No fme_* tables in schema SQL Server

 

Error's found in *fmeconfiguration.log ErrorCauseDatabaseSQLException: Invalid object name

Error Cause Database
SQLException: Invalid object name 'fme_sharedres'.
com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'fme_sharedres'.
Permissions not set correctly on the fmeserver user. Ensure User Mapping has been configured in SQL Server Management Studio. SQL Server

 

Cause

In most cases, the problem is that the FME Flow core cannot connect to the new Database Provider.

  • The configuration steps in the Administrator's Guide are very particular and must be followed closely. Particularly the Post Configuration scripts step (2017 and Older).
  • FME Server 2018+ will check and run the Post Configuration strips on startup automatically. If permissions are incorrect at the database for the user FME Server is attempting to connect with the scripts will not run properly and errors will be created in the Logs.
  • For FME Flow 2018+ and Oracle Database ensure you have installed the correct database driver* (jar).

 

Resolution

Please ensure before proceeding that FME Flow operates as expected with the delivered FME Flow Database. The FME Flow Database would exist in this form if you selected the Express Install option from the Installer.
NOTE: FME Flow uses PostgreSQL DB by default.

Here's the link to the section in the FME Flow Administration Guide applicable to this configuration change and should be reviewed if you are experiencing issues:
Changing the Database Provider for the FME Flow Database. This section in the admin guide will provide the necessary information and links for the configuration changes. Pay particular attention to the database configuration and the post configuration scripts steps. For the database configuration step, you'll need to have access to a DBA that can create users and run scripts against the Database.

A tip when reviewing the configuration changes:
File paths and names are all case sensitive.

SQL Server AlwaysOn and Clustered Databases
If the FME Flow Database is hosted on a clustered SQL Server database you'll need to add the multisubnetfailover property to the connection string.  A common symptom if this configuration is FME Flow works most of the time but once in a while it needs to be restarted.  Errors in the logs may indicate 'connection timeout'.

Solution:

DB_JDBC_URL=jdbc:sqlserver://<ServerName>;databaseName=<database>;MultisubnetFailover=true


*Oracle JDBC Driver

Having an incorrect Oracle JDBC driver for FME Flow 2018+ can also be a source of a connection issue. If you are not certain of the driver to use please contact www.safe.com/support and we can indicate you with the correct one. Our documentation will soon be updated to provide information for the supported JDBC Drivers for Oracle Databases.  We know that ojdbc10.jar driver files are not supported as of FME Flow 2020.2.

 

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.