【问题标题】:How to deal with: SQL Error: 0, SQLState: 08006 and 08003?如何处理:SQL Error: 0, SQLState: 08006 and 08003?
【发布时间】:2020-02-22 01:44:41
【问题描述】:

我在 Heroku 上有 PostgreSQL 数据库的应用程序。还有解析器,它在我的电脑上运行,它每 10 分钟从 heroku 的数据库中保存和读取数据,并使用休眠进行交互。这是配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<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">14400</property><property name="hibernate.c3p0.timeout">25200</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.preferredTestQuery">select 1;</property>

    </session-factory>
</hibernate-configuration>

但经过一段时间后,我的解析器停止了,我得到了这个:

окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 08006
окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Ошибка ввода/ввывода при отправке бэкенду
окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 0, SQLState: 08003
окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Соединение уже было закрыто

有什么方法可以解决这个问题?

【问题讨论】:

  • 为了获得更好的帮助,您可能需要配置系统以便接收英文异常消息。

标签: java postgresql hibernate jdbc heroku-postgres


【解决方案1】:

您的数据库连接即将关闭,您仅每 3 小时测试一次其有效性。空闲测试显然是not a good idea anyway

除非您在旧环境中工作,否则您应该设置hibernate.c3p0.testconnectiononcheckout=true,这样您将始终获得有效的连接。

preferredTestQuery 也是不必要的,如果您使用的是 JDBC4 驱动程序(希望是这样)。

【讨论】:

    猜你喜欢
    • 2014-06-26
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多