11-20-2019 02:14 PM
A service that gets used periodically has occassional performance issues.
Once the service is initially run up, performance is good (sub second).
Service is not then used for a while.
When hit again (after not being used for a while) it takes 26 seconds.
Comparing a before and after .GWMLog file, it is observed that the system seems to find the existing Oracle Connection and then does a test to see if it 'IsLive'. The test takes quite a while (19 seconds) and then connection is restablished which takes an additional 5-6 seconds.
Extract from 'after' GWMLog file:
2019-11-20 13:05:07 (0.059394) - This isn't either LegendEntry or Legend - getting directly
2019-11-20 13:05:07 (0.060268) - GetFromLibrary return 0
2019-11-20 13:05:07 (0.061327) - Connect ServerracleORW.GDatabase DBracle Source:xxxx/xxxx@XXXX Name:2D6479EF9C0091EC82E6CA5FBBBEFCF3E34A66A9
2019-11-20 13:05:07 (0.061365) - *************** From Temp
2019-11-20 13:05:07 (0.061374) - *************** From Temp
2019-11-20 13:05:07 (0.061384) - Found Same Connection
2019-11-20 13:05:07 (0.061389) - ENTERING CGWMDataSource::IsLive
2019-11-20 13:05:07 (0.061395) - Before TableDefs
2019-11-20 13:05:07 (0.061404) - Before Query
2019-11-20 13:05:07 (0.061409) - Query: Select * from GDOSYS.GALIASTABLE where 1 = 0
2019-11-20 13:05:26 (19.612281) - After Query 8004076f
2019-11-20 13:05:26 (19.612316) - Connection OracleORW.GDatabase(Oracle -- xxxx/xxxx@XXXX) is not live (Query - 8004076f)
2019-11-20 13:05:26 (19.612327) - EXITING CGWMDataSource::IsLive
2019-11-20 13:05:26 (19.640629) - Enter CGWMDataSource::Connect
2019-11-20 13:05:32 (25.109020) - Connected to data source. Get Database info.
Any ideas why the oracle connection is failing the 'IsLive' test and how to keep it live?
I'm second guessing the underlying Oracle Client or OLEDB pool or similar has closed the connection, but not really sure.
Solved! Go to Solution.
11-20-2019 03:04 PM
This is very known issue, This is related to Oracle comunication chanel timeout by default and I think is complex to change. What we do in our customers is to have a process that runs the initialize of most used service every 1/2 hour, is the only way to keep alive and avoid large delay response when the service is not accesed for some time.
11-21-2019 12:03 PM
Process has been introduced to initialize every 1/2 hour and so far seems to be working.
I'm second guessing a firewall or similar is cutting the connection after period of inactivity. A seperate server in one part of the network is not impacted, new server in seperate part of network is impacted so would imply network/firewall.