I want to automatically reconnect and resend the last SQL Query if a connection closed (e.g. on the db server, not because I will close it).
I know I could do connection.isValid() (which is just SELECT 1 in most driver implementations) before sending each query, but this is wasteful. I will add a round-trip delay to every single one of my queries.
What I wanted was something more like:
Sends a query to the database
If the connection is down reconnect and resend the same query
If can't reconnect, throw the connection closed Exception.
Are there any recommendations regarding this? I can't imagine I am the first one to want something like it.
I am thinking about making a wrapper around my driver's java.sql.Connection and run this algorithm behind the scenes, but if there's something out there yet I would appreciate to not have to reinvent the whell (I tried to google it, but couldn't find anything).
PS: I don't want a connection pool because I will use this inside an AWS Lambda instance and all the connection pools I know would just run isValid before each query.
SQL查询自动重连与重发
本文探讨了如何在数据库连接关闭时自动重新建立连接并重发上一个SQL查询的方法。作者希望避免每次查询前进行连接有效性检查所带来的额外延迟,并寻求一种能够自动处理这种情况的解决方案。
2017

被折叠的 条评论
为什么被折叠?



