我该如何解决异常org.postgresql.util.PSQLException:此连接已关闭。?

时间:2019-07-20 04:19:04

标签: java postgresql jdbc connection-pooling hikaricp

我正在研究中型应用程序,我们在其中使用JDBC / Hibernate与数据库进行通信。 与PostgreSQL数据库的连接是使用DataSource建立的。 当我没有明确关闭连接时,使用多个用户登录时出现异常“ 30000ms后连接超时”。 当我关闭连接时,我会因为“由于SQLSTATE(08003),ErrorCode(0)而被标记为断开”

试图更改配置。已使用同步块。

Connection connection = null;

DatabaseMetaData databaseMetaData = null;
try{
     connection = ((SessionFactoryImpl) factory).getConnectionProvider().getConnection();
     databaseMetaData = connection.getMetaData();
  }catch(SQLException exception){
      exception.printStackTrace();
  }catch (Exception exception) {
      exception.printStackTrace();
  }finally{
      if(connection != null && !connection.isClosed()){
          connection.close();
      }
  }

return databaseMetaData;

databaseMetaData = connection.getMetaData()

导致以下原因     

Connection org.postgresql.jdbc.PgConnection@49a6ab0f marked as broken because of SQLSTATE(08003), ErrorCode(0) org.postgresql.util.PSQLException: This connection has been closed. at org.postgresql.jdbc.PgConnection.checkClosed(PgConnection.java:767)
at org.postgresql.jdbc.PgConnection.getMetaData(PgConnection.java:1220)
at com.zaxxer.hikari.pool.HikariProxyConnection.getMetaData(HikariProxyConnection.java)
at com.acustream.dao.hibernate.audit.AuditDAO.getMetaData(AuditDAO.java:56)
at com.acustream.service.SystemServiceImpl.getServerProperties(SystemServiceImpl.java:122)

0 个答案:

没有答案