闲置30分钟后JBoss断开连接(带Oracle的JBoss XA数据源)

闲置30分钟后JBoss断开连接(带Oracle的JBoss XA数据源),oracle,jdbc,jboss,Oracle,Jdbc,Jboss,我正在将wildfly-8.2.0.Final与oracle 12c和ojdbc6一起使用。我已将XA数据源配置为连接oracle数据库。一旦服务器启动并处于繁忙状态,一切看起来都很正常,但如果应用程序服务器空闲超过30分钟,我会遇到以下异常: 调试消息: 在DataBaseConnectionMgr.createNewProperties()上失败原因代码 子文本:异常消息:java.sql.SQLException: javax.resource.ResourceException:IJ00

我正在将wildfly-8.2.0.Final与oracle 12c和ojdbc6一起使用。我已将XA数据源配置为连接oracle数据库。一旦服务器启动并处于繁忙状态,一切看起来都很正常,但如果应用程序服务器空闲超过30分钟,我会遇到以下异常:

调试消息:

在DataBaseConnectionMgr.createNewProperties()上失败原因代码 子文本:异常消息:java.sql.SQLException: javax.resource.ResourceException:IJ000457:未选中的可丢弃 managedConnectionReconnected() cl=org.jboss.jca.core.connectionmanager.listener。TxConnectionListener@401c2dca[状态=已销毁 管理 connection=org.jboss.jca.adapters.jdbc.xa。XAManagedConnection@7a0249a7 连接句柄=0 lastUse=1489587052205 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy。OnePool@4581a705 微通道板=SemaphoreArrayListManagedConnectionPool@6887a22d[pool=jdbc/oracle/IMCTXDataSource] xaResource=XAResourceWrapperImpl@3a0fa21c[xaResource=org.jboss.jca.adapters.jdbc.xa。XAManagedConnection@7a0249a7 pad=false overrideRmValue=false productName=Oracle productVersion=Oracle数据库12c企业版发行版 12.1.0.2.0-64位生产,包括分区、真实应用程序群集、自动存储管理、OLAP、高级分析和 实际应用程序测试选项 jndiName=java:jboss/datasources/IMCTXDataSource]txSync=null] 异常堆栈跟踪: org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:154) com.unisys.trans.shared.util.jdbc.DataBaseConnectionMngr.createNewProperties(DataBaseConnectionMngr.java:515)


1.
30
假的
假的
仅连接失败
假的
真的
假的
真的

我知道三种终止空闲连接的机制

1) Jboss空闲超时分钟数。您不设置此值,它的默认值为15分钟(最小可能值)

2) sqlnet.ora中的配置过期时间

3) oracle db用户配置文件的配置

您必须在配置文件配置中检查空闲时间

select * from dba_profiles where PROFILE = (SELECT profile FROM dba_users WHERE USERNAME =user);
1#如果未启用,建议使用以下数据源连接验证机制:

<validation>
      <validate-on-match>true</validate-on-match>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
     <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
</validation>

真的
二,#


...
假的
3#刷新策略=IdleConnections


4 35; use fast fail=true(立即获得新的物理连接)

我尝试通过Jboss空闲超时分钟。但它不会使用Bitronix事务管理器释放DB、Am中的锁。
<validation>
      <validate-on-match>true</validate-on-match>
      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
     <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
</validation>
<xa-pool>
      ...
     <is-same-rm-override>false</is-same-rm-override>
      <no-tx-separate-pools />
</xa-pool>