Replies: 1 comment 3 replies
-
What version python-oracledb? Whether you need/want to ping would depend on how long ago you called |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I run into this issue when using thin mode and not in thick mode (currently working on thick -> thin migration).
The network in our dev environment is generally unstable which causes frequent connection drops. Sometimes when this happens, a connection in the pool gets stuck in "busy" even though it is doing nothing. I have checked with conntrack and tcpdump on the network to confirm that no packets are transferred once it gets into this state.
Note that we call
connection.ping()
every 10 seconds to check whether our application is ready to serve client requests (assuming a connection can be acquired from the pool).We run multiple instances of our application at the same time each with their own oracle connection pool. I noticed that even though they use the same underlying network, the connections don't break at the same time. My current suspicion is that if the network interruption occurs during the ping round-trip, the connection is not cleaned up correctly (the connection is not removed from the busy list).
During the ping interval this cleanup happens, but there is no such cleanup in the ping() implementation
Is this a bug? Should I even need to ping if there's a ping_interval for every connection?
Beta Was this translation helpful? Give feedback.
All reactions