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.
- 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".
- There is no FMEFlow.exe process running in Windows Task Manager (or process monitor of the OS you are working with).
- Database Specific Error messages found in log files
- 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.
Comments
0 comments
Please sign in to leave a comment.