On one site, I can connect to the Oracle database using SQL Developer, stand idle for a long time (for example> 60 minutes) and return, and this is normal. On the second site, if it remains inactive for more than 5-10 minutes (I didn’t take it into account exactly), it leaves SQL Developer in a state when new operations will time out, and I need to manually “Disable” and then reconnect to the order to do something useful. This is apparently the connection timeout on the second site, and I don't know what causes it (and I would like to know how to disable it, although this is not my main question).
My program uses ODP.NET and processes the data that goes into spurts. Every 30 minutes (for discussion), he will receive a bunch of data for processing, which will be associated with several repeating connections. It also uses Connection Pooling. I set up a connection pool for use within 5 minutes.
What I see on the second site (and not on the first) is that my program will receive connection timeout exceptions (for example, ORA-03113) at the beginning of each data burst. What I think is happening is that during the distribution of the data, the connection pool is used as developed. At the end of the burst, the “Connection time” is checked, and the connection is not too old, so it remains in the connection pool. Then, 30 minutes after the new data arrives, the connection is taken out of the pool (and not checked for the lifetime or timeout) and used, and the time expires, as I see in SQL Developer.
How can I avoid the connection timeout, but still use the connection pool during bursts? From the documentation (and my experience) it is clear that the connection is checked only for the lifetime, when it enters the pool, and not when it appears.
Andy jacobs
source share