我有一些应用程序在 JBoss 4.2.2、JBoss 5.1 和 WildFly 8.1.0 上运行。所有这些应用程序都使用连接池。我的数据源是这样的:
<datasource jta="false" jndi-name="java:/datasource/myawesomeds" pool-name="MyAwesomeDS" enabled="true" use-ccm="false">
<connection-url>jdbc:oracle:thin:@myserver.example.com:1521:oracle_service</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<driver>ojdbc6.jar</driver>
<security>
<user-name>username</user-name>
<password>MyPassWord</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
如您所见,我使用 Oracle 数据库。服务器版本是10g。当 Oracle DB 宕机几分钟时,我在 JBoss 和 WildFly 上的所有应用程序都开始显示 SQLException: Closed Connection。
我的问题:这正常吗?为什么 JBoss 和 WildFly 不检查连接来验证这一点?
最佳答案
是的,这是正常的。
但是,您可以定义 wildfly/jboss 在从连接池获取连接时应验证连接。您的所有连接都将无效,因此如果您定义了应存在的最小连接数,通常它应该为您创建一个新连接。
关于java - JBoss/WildFly 连接池和关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26161279/