thr*_*ups 4 java postgresql jdbc apache-commons-dbcp
我正在使用postgres 9.1,org.apache.commons.dbcp.BasicDataSource(对于我的连接池)和Java 1.7.当我重新启动postgres服务器时,我得到了例外情况org.postgresql.util.PSQLException: FATAL: terminating connection due to administrator command.
如何使连接自动重新连接到重新启动的数据库?
validationQuery根据文档,DBCP有一个连接验证查询选项.您可以将其设置为类似的内容SELECT 1;,DBCP将在返回连接之前运行该测试.
也就是说,你的应用真的应该处理这种情况.SQL查询可能由于各种原因而失败,您应该始终在具有时间退避和重试限制的重试循环中执行查询,再加上一些逻辑来确定哪些异常在重试时可恢复,哪些不是(使用SQLState)为了那个原因).
特别是,验证受竞争条件的影响,您可以在其中进行以下事件排序:
要么
...因此,对于您的应用来说,保持适当的重试循环和良好的事务处理仍然很重要.
您可以从SQLException获取SQLState : SQLException.getSQLState. PostgreSQL的代码在PostgreSQL手册中.
| 归档时间: |
|
| 查看次数: |
3311 次 |
| 最近记录: |