所以,我遇到了这个问题。我正在使用 JDBC,每次如果查询得到 SQL 异常和 I/O 错误,与 pgsql 数据库的连接将自动断开。
结果,每次查询前我都要检查连接是否打开,如果没有打开,我再打开。
任何人都知道为什么会这样?
我也知道即使我给出了完美的连接参数,连接也可能会随机断开。
任何人都知道如何设置连接参数以自动检查连接并在连接中断时重新打开它?
目前我没有使用连接池。
以下是我设置连接属性的代码:
Properties pgsqlInfo = new Properties();
pgsqlInfo.setProperty("user", userName);
pgsqlInfo.setProperty("password", password);
pgsqlInfo.setProperty("ssl", "true");
pgsqlInfo.setProperty("loginTimeout", "0");
pgsqlInfo.setProperty("tcpKeepAlive", "true");
pgsqlInfo.setProperty("socketTimeout", "0");
con = (Connection) DriverManager.getConnection(url + "/" + dbName, pgsqlInfo);