MySQL (Amazon RDS) connections "expire" silently; further queries hang DBeaver #287
-
When I connect to any of my Amazon RDS databases, wait a while (~20 minutes) and then run any query, DBeaver behaves as though the query is taking a long time to run. If I click "Cancel" the button simply turns grey. Whether I hit cancel or not, I am eventually told:
This is on DBeaver 3.6.2 (and many previous) for Ubuntu x64. |
Beta Was this translation helpful? Give feedback.
Replies: 6 comments
-
Once you eventually get the "Communications link failure", DBeaver is responsive again, right? It's simply while it's trying to run the query that DBeaver is unresponsive? How long does this last? This will be fixed by #6. |
Beta Was this translation helpful? Give feedback.
-
Yes, DBeaver is responsive again after Communications link failure. Attempting to run the query again at that point gets:
When I suspect a connection's been open too long, I Disconnect and then Connect, Almost always I can then query on that connection -- but sometimes (like 10% of the time) the disconnecting will cause it to hang. And I realize that it's only that connection that becomes unresponsive. I can select and query other connections while waiting for Communications link failure. How long does this last? 1095 seconds, at last attempt. Great to hear a fix is in the works! |
Beta Was this translation helpful? Give feedback.
-
So the unresponsiveness lasted ~18 minutes?? Which driver are you using? |
Beta Was this translation helpful? Give feedback.
-
Yeah, 18 minutes of unresponsiveness. Usually I kill and restart DBeaver, It's the "MySQL standard driver". On Tue, Mar 22, 2016 at 4:44 PM codebling notifications@github.com wrote:
|
Beta Was this translation helpful? Give feedback.
-
Most likely server kills connection after some period of time. |
Beta Was this translation helpful? Give feedback.
-
Thank you so much! On Wed, Mar 23, 2016, 06:08 Serge Rider notifications@github.com wrote:
|
Beta Was this translation helpful? Give feedback.
Most likely server kills connection after some period of time.
Workaround: you can set driver property socketTimeout to some reasonable value (e.g. 20 seconds).
There will be one nasty side-effect. Long-running queries will fail if they will execute longer than socketTimeout.
Another workaround is to turn on connection keep-alive. This feature will be added in 3.6.3 (#6)