我有一个运行的MDB将数据发布到oracle数据库。 XA数据源configuration为:
<xa-datasource jndi-name="java:/jdbc/HIF-BannerPU" pool-name="HIF-BannerPU" enabled="true" spy="true" use-ccm="true" statistics-enabled="false"> <xa-datasource-property name="URL"> ${hif-db-url} </xa-datasource-property> <driver>OracleJDBCDriver</driver> <security> <user-name>uifsmgr</user-name> <password>u_pick_it</password> </security> <validation> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> <timeout> <set-tx-query-timeout>false</set-tx-query-timeout> <blocking-timeout-millis>0</blocking-timeout-millis> <idle-timeout-minutes>0</idle-timeout-minutes> <query-timeout>0</query-timeout> <use-try-lock>0</use-try-lock> <allocation-retry>0</allocation-retry> <allocation-retry-wait-millis>0</allocation-retry-wait-millis> </timeout> <statement> <share-prepared-statements>true</share-prepared-statements> </statement> </xa-datasource>
运行一段时间(不确定确切的时间跨度,可能几个小时)后,下一个MDB onMessage引发此exception:
Caused by: java.sql.SQLException: javax.resource.ResourceException: IJ000457: Unchecked throwable in managedConnectionReconnected() cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@178ff38 2[state=DESTROYED managed connection=org.jboss.jca.adapters.jdbc.xa.XAManagedConnection@70289860 connection handles=0 lastReturned=1506796773697 lastValidated=1506796773525 lastCheckedOut=1506947349429 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@5968abc8 mcp=SemaphoreConcurrentLinkedQueueManagedConnectionPool@83405c5[pool=HIF-BannerPU] xaResource=XAResourceWrapperImpl@2168086b[xaResource=org.jboss.jca.adapters.j dbc.xa.XAManagedConnection@70289860 pad=false overrideRmValue=null productName=Oracle productVersion=Oracle Database 12c Enterprise Edition
我假设这与连接池validation有关。 不知道该解决scheme是只是设置为true,或者是否有其他configuration要完成。
尝试使用明确的Oracle池标志:
<xa-pool> <is-same-rm-override>false</is-same-rm-override> <no-tx-separate-pools /> ...other settings </xa-pool>
以前有Oracle XAconfiguration的问题 ,不知道是否所有的东西都解决了。