我正在运行Spring + hibernate 3 + c3p0。启动时,如果数据库关闭,则在大约10分钟后抛出异常。在那之前程序被阻止......我不包括spring xml,hibernate配置等,因为它是一个相当常见的问题,如果存在解决方案,它必须是标准的直接方式。如果不是,我可以修剪关键代码和配置并将其粘贴到此处。有人知道吗?提前谢谢。
澄清:
我基本上需要知道在DriverManager.setLoginTimeout()函数周围是否存在c3p0或hibernate中的包装器,甚至是spring。或者是一个为我提供此功能的功能。包装器可以通过设置或其他东西。我只想在X秒内连接到数据源时出现异常,无论原因是什么(套接字,数据库,恶劣天气)。我想找到一个设置这个X的地方。更糟糕的是,Oracle驱动程序,我正在使用的驱动程序,没有实现setLoginTimeout()所以我不能直接使用它。我已经意识到没有办法解决它,而是手动生成我自己的计时器线程。有人可以验证上述情况吗?非常感谢。
答案 0 :(得分:1)
这很可能与Hibernate / Spring本身无关;数据库连接池负责处理连接。
更新(根据下面的OP说明):
oracle驱动程序不使用 DriverManager.setLoginTimeout()
。 OracleDataSource有自己的loginTimeout setting代替。