所以,我遇到了这个问题。我正在使用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);