2013-09-23 3 views
1

Est-ce qu'une version de JBoss prend en charge la reconnexion automatique avec la base de données lorsqu'il y a déconnexion entre la base de données et JBoss ?. J'ai essayé avec la configuration ci-dessous dansReconnexion automatique JBoss avec la base de données au redémarrage de la base de données/déconnexion

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <datasources>  
    <local-tx-datasource> 
    <jndi-name>sampleDS</jndi-name> 
    <min-pool-size>1</min-pool-size> 
    <max-pool-size>5</max-pool-size> 
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
    <connection-url>jdbc:oracle:thin:@<ip>:<databaseport>:<sip></connection-url> 
    <user-name>username</user-name> 
    <password>password</password> 
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name> 
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> 
    <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql> 
<failOverReadOnly>false</failOverReadOnly> 
<autoReconnect>true</autoReconnect> 
    <maxReconnects>50</maxReconnects> 
    <initialTimeout>15</initialTimeout> 
    </local-tx-datasource> 

+1

C'est un sujet assez complexe. Essayez de chercher quelque chose à propos de "DCD" - "détection de connexion morte", Jboss'es 'ExceptionSorter' et' TCP keep-alive'. Théoriquement, cela devrait être facile, mais un véritable déploiement de production introduit de nombreuses surprises. – ibre5041

+0

Quels problèmes avez-vous? – Beryllium

Répondre

3

J'utilise jboss-pae-6.1 et son parfait état de fonctionnement. Modifiez le fichier jboss-eap-6.1/standalone/configuration/standalone.xml et ajoutez les lignes suivantes dans chaque balise <xa-datasource>.

   <validation> 
        <check-valid-connection-sql>select 1</check-valid-connection-sql> 
        <background-validation>true</background-validation> 
        <background-validation-millis>15000</background-validation-millis> 
       </validation> 
+1

Merci. Fonctionne pour mon EAP 6.4, bien que dans une étiquette différente - ''. Les trois paramètres requis. –

0

Un exemple de travail pour JBoss EAP 6.4 (basé sur JBoss AS 7.x) + Oracle:

<datasource> 
    <validation> 
     <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> 
     <background-validation>true</background-validation> 
     <background-validation-millis>5000</background-validation-millis> 
    </validation> 

Contrairement select 1 from dual, il valide la connexion par l'intermédiaire d'un mécanisme spécifique du fournisseur.

Questions connexes