Question

Oracle SQL connections are persistent, regardless of the "Persistent Connection" setting

  • 18 February 2022
  • 1 reply
  • 18 views

Badge +1

I have a workspace that has two SQL Executors connecting to an Oracle database (the same database connection). In between there is processing that happens. It appears that FME is keeping the oracle connection open from the first SQL Executor for the entire duration of the processing, and using the same connection when it runs the 2nd SQL Executor. This is causing a network timeout error to occur. To prevent this I have tried unchecking the Persistent Connection option in the 2 SQL Executors, but still get the same behaviour.

 

As a test, I have logged the oracle session ID from the first SQL Executor to the log file, and in the 2nd SQL Executor I have logged the session ID and session duration. Both session IDs are the same and the session duration is the entire running time of the workbench. See attached screenshot for workbench, the decelerator is to simulate processing time.

 

So to summarize, the Persistent Connection check box doesn't do anything in FME Desktop or Server. Is there a way to stop it making the connection persistent?

 

This is all in FME 2021.0


1 reply

Badge +2

The connection does persist between the SQLExecutors. the connection can sometimes be 'broken' by including a FeatureHolder. The Persistent Connection parameter for Oracle serves a very different purpose . It is designed to hold open connections between FME jobs. More aimed at FME Server use since the FME engines run continuously, so for a given engine the connection can be held open.  I think the use case is for many small jobs where opening the connection starts to have an overhead.

Reply