2017-10-02 71 views
0

JBoss eap 7.0でアプリケーションを実行しています。私はデータを保持するためにXAデータソース(oracle)も参照するMDBを持っています。 DBへの書き込みをしていない使用(数時間)、次のonMessage呼び出しの長いタイムスパンの後、閉じたJDBC接続でMDB onMessageが失敗する

org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection 


    Caused by: java.sql.SQLException: javax.resource.ResourceException: 
IJ000457: Unchecked throwable in managedConnectionReconnected() 
cl=org[email protected]178ff38 
2[state=DESTROYED managed 
[email protected]289860 connection handles=0 lastReturned=1506796773697 lastValidated=1506796773525 lastCheckedOut=1506947349429 trackByTx=false 
[email protected]5968abc8 
[email protected][pool=HIF- 
BannerPU] 
[email protected][xaResource=org.jboss.jca.adapters.j 
[email protected] pad=false overrideRmValue=null 
productName=Oracle productVersion=Oracle Database 12c Enterprise Edition 
Release 12.2.0.1.0 - 64bit Production jndiName=java:/jdbc/HIF-BannerPU] 
txSync=null 

以下のエラーは、私が検証・オン・マッチ= trueを設定する必要があります取得、またはそこが優れていますプールされた接続が有効でアクティブであることを確認するアプローチ

UPDATE:まだエラーを取得

   <validation> 
        <validate-on-match>true</validate-on-match> 
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.Or‌​acleValidConnectionC‌​hecker"/> 
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.Or‌​acleExceptionSorter" /> 
       </validation> 
       <xa-pool> 
        <is-same-rm-override>false</is-same-rm-override> 
        <no-tx-separate-pools /> 
       </xa-pool> 

:に設定を変更しました。

+0

はい接続プールの検証設定は、すべてのデータソースで必須です。 ~~~ <検証・オン・試合>真 <有効な接続チェッカークラス名= "org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker "> ~~ –

+0

is-same-rm-overrideおよびno-tx-separate-pools要素が、Oracle固有の関連する各xa-datasourceで明示的に宣言されていることを確認します(https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html-single/configuration_guide /#example_oracle_xa_datasource) ... <ある-同じ-RM-オーバーライド>偽 <無TX-セパレートプール/>

+0

OKおかげでそれをしようとします。 – OldProgrammer

答えて

1

はい接続プールの検証設定のすべてのデータ・ソースのために必須である:

<validation> 

<validate-on-match>true</validate-on-match> <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.Or‌​acleValidConnectionC‌​hecker"></valid-conn‌​ection-checker> 

<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.Or‌​acleExceptionSorter"‌​></exception-sorter> 

</validation> 

または、同じ-RM-オーバーライド及び非TX-別-プール要素が明示的にそれぞれの中で宣言されていることを確認Oracle固有のxa-datasource(https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html-single/configuration_guide/#example_oracle_xa_datasource

<xa-pool> ... 
<is-same-rm-override>false</is-same-rm-override> 
<no-tx-separate-pools /> 
</xa-pool> 
関連する問題