2017-03-20 67 views
0

我正在使用wildfly-8.2.0.Final與oracle 12c和ojdbc6。我配置了XA數據源來連接oracle數據庫。一旦服務器啓動而忙碌,一切都看起來不錯,但如果應用程序服務器是閒置超過30分鐘,我得到以下異常:JBoss在30分鐘閒置後丟棄連接(Jboss XA數據源與Oracle)

調試消息:

失敗的DataBaseConnectionMgr.createNewProperties()()原因代碼 潛臺詞:異常消息:值java.sql.SQLException: javax.resource.ResourceException:IJ000457:在 managedConnectionReconnected() cl=org[email protected]401c2dca [狀態未檢查拋出=銷燬 管理 connection = org.jboss.jca.adapters .jdbc.xa.XAManagedConnection @ 7a0249a7 連接句柄= 0 lastUse = 1489587052205 trackByTx =假 [email protected]4581a705 MCP = SemaphoreArrayListManagedConnectionPool @ 6887a22d [池= JDBC/ORACLE/IMCTXDataSource] 的XAResource = XAResourceWrapperImpl @ 3a0fa21c [[email protected]0249a7 墊=假overrideRmValue =假PRODUCTNAME =甲骨文 的ProductVersion = Oracle數據庫12c中企業版發行 12.1。 0.2.0 - 64bit生產與分區,真正的應用集羣,自動存儲管理,OLAP,高級分析和 真正的應用測試選項 jndiName = java:jboss/datasources/IMCTXDataSource] txSync = n ULL] 異常堆棧跟蹤: org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:154) com.unisys.trans.shared.util.jdbc.DataBaseConnectionMngr.createNewProperties(DataBaseConnectionMngr.java:515 )

<xa-pool> 
    <min-pool-size>1</min-pool-size> 
    <max-pool-size>30</max-pool-size> 
    <prefill>false</prefill> 
    <use-strict-min>false</use-strict-min> 
    <flush-strategy>FailingConnectionOnly</flush-strategy> 
    <is-same-rm-override>false</is-same-rm-override> 
    <no-tx-separate-pools>true</no-tx-separate-pools> 
    <pad-xid>false</pad-xid> 
    <wrap-xa-resource>true</wrap-xa-resource> 
</xa-pool> 

回答

1

我知道3個機制來終止空閒連接。

1)Jboss idle-timeout-minutes。你不設置它,它的默認值是15分鐘。 (最不可能)

2)配置在sqlnet.ora中的expire_time sqlnet.ora expiretime

3)的Oracle數據庫的用戶配置文件的配置。 create profile

您必須檢查配置文件配置中的idle_time。

select * from dba_profiles where PROFILE = (SELECT profile FROM dba_users WHERE USERNAME =user); 
0

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> 

2#

<xa-pool> 
     ... 
    <is-same-rm-override>false</is-same-rm-override> 
     <no-tx-separate-pools /> 
</xa-pool> 

3#齊平安策略= IdleConnections

4 #use-fast-fail = true(立即獲得新的物理連接)