代码之家  ›  专栏  ›  技术社区  ›  Paralife

数据库关闭时,休眠需要10分钟引发异常

  •  1
  • Paralife  · 技术社区  · 15 年前

    我在跑春季+冬眠3+c3p0。启动时,如果数据库关闭,大约10分钟后会引发异常。在此之前,程序被阻止…我不包括SpringXML、Hibernate配置等,因为这是一个相当常见的问题,如果有解决方案,它必须是一种标准的前向方式。如果没有,我可以修剪关键的代码和配置并粘贴到这里。有人知道吗?事先谢谢。


    澄清:

    我本质上需要知道在drivermanager.setlogintimeout()函数周围是否有一个包装器在c3p0或hibernate,甚至Spring中。或者一个提供这个功能的功能。包装器可以通过一个设置或其他方式。如果我在X秒内没有连接到数据源,不管是什么原因(套接字、数据库、坏天气),我只想得到一个异常。我想找一个地方来设置这个x。更糟的是,我使用的驱动程序Oracle驱动程序没有实现setLoginTimeout(),所以我不能直接使用它。我开始意识到没有办法解决它,而是手动生成自己的计时器线程。有人能证实上述情况吗?谢谢。

    1 回复  |  直到 11 年前
        1
  •  1
  •   ChssPly76    15 年前

    它本身很可能与Hibernate/Spring无关;数据库连接池负责处理连接。

    1. 你的c3p0设置是什么?
    2. 您使用的是什么数据库/驱动程序?是否有任何驱动程序特定的设置导致驱动程序本身在报告错误之前等待/重试?
    3. “数据库关闭”是指“完全关闭”?或者这可能是由某种套接字超时引起的?

    更新 (基于以下操作说明):

    DriverManager.setLoginTimeout() Oracle驱动程序未使用。OracleDatasource有自己的 loginTimeout setting 相反。