我一直在尝试让我的 Java 应用程序数据库失败证明,这样如果数据库不可用,它们就不会出现意外滞后。当数据库完全关闭时,我已经成功处理了简单的情况。
当我的机器的 mysql 端口被阻止并且我尝试访问它时,我陷入了困境。在这种情况下,应用程序永远挂起, c3po 文档中没有提到超时配置似乎可以预见地处理这种情况。在调试时,我可以看到它挂在 mysql 连接器中的 ReadAheadInputStream 类上。该类的文档显示它仅阻塞以满足读取请求。
到目前为止,我已经使用了以下属性。
<property name="hibernate.c3p0.validate" value="true"/>
<property name="hibernate.c3p0.checkoutTimeout" value="5"/>
<property name="hibernate.c3p0.preferredTestQuery" value="SELECT 1"/>
除此之外,用于配置连接池的其他属性如文档中所述
版本:
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>4.2.12.Final</version>
</dependency>
有人可以指导我吗?除了 c3po 文档中提到的那些还需要配置的超时参数之外,是否还有其他超时参数?