如何修复SQL错误,终止连接和SQLState:57P01



我的应用程序在虚拟服务器上运行,并通过部署在Heroku上的Hibernate寻址到Postgres DB。每隔几天,我的应用程序就会停止并显示控制台消息:

Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 57P01
Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: FATAL: terminating connection due to administrator command
Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 08006
Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: An I/O error occured while sending to the backend.
Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 08003
Jan 09, 2020 3:36:18 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: This connection has been closed.

我的冬眠.cfg.xml:

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql:url</property>
<property name="hibernate.connection.username">user</property>
<property name="hibernate.connection.password">pass</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>
<property name="show_sql">true</property>
<property name="hibernate.c3p0.idle_test_period">300</property><property name="hibernate.c3p0.timeout">3000</property>
<property name="hibernate.c3p0.max_size">15</property>
<property name="hibernate.c3p0.min_size">3</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.preferredTestQuery">select 1;</property>
</session-factory>
</hibernate-configuration>

感谢任何有用的建议。

这看起来像是数据库服务器重新启动或数据库连接被管理员终止。

检查 PostgreSQL 日志文件是否重新启动并询问您的 DBA。

应对应用程序进行编程,以便在数据库连接断开时可以自动重新连接到数据库。

最新更新