2017-10-02 7 views
0

Exécution d'une application sur JBoss eap 7.0. J'ai un MDB qui référence également une source de données XA (oracle) pour conserver les données. Après une longue période de temps sans utilisation (plusieurs heures), l'invocation suivante onMessage qui fait écrire à DB, obtient erreur ci-dessousMDB onMessage échoue avec une connexion JDBC fermée

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 

Si j'établirons valider sur match = true, ou est-il une meilleure approche pour s'assurer que la connexion groupée est valide et active?

MISE À JOUR: config changé:

   <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> 

erreur encore obtenir.

+0

Les paramètres de validation du pool de connexion sont obligatoires pour toutes les sources de données. ~~~ true ~~~ –

+0

Vérifiez que les éléments is-same-rm-override et no-tx-separate-pools sont explicitement déclarés dans chaque source de données xa impliquée par Oracle spécifique (https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html-single/configuration_guide/# example_oracle_xa_datasource) ... false

+0

OK merci va essayer. – OldProgrammer

Répondre

1

Oui Paramètres de validation de pool de connexion est obligatoire pour toutes les sources de données:

<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> 

Vérifiez également le est-même rm-override et non--tx-bassins pour éléments sont explicitement déclarés dans chaque xa-datasource impliquée par Oracle spécifique (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>