Ishaan
Ishaan

Reputation: 21

JBoss auto reconnect with database when database is restarted/disconnect

Does any version of JBoss supports auto reconnect with database when there is disconnect between database and JBoss?. I tried with the below configuration in

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

Upvotes: 2

Views: 9994

Answers (2)

Pavel Vlasov
Pavel Vlasov

Reputation: 4341

An example working for JBoss EAP 6.4 (based on 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>

Unlike select 1 from dual, it validates connection via a vendor specific mechanism.

Upvotes: 1

Bhuwan Gautam
Bhuwan Gautam

Reputation: 1269

I am using jboss-eap-6.1 and its working perfectly. Modify jboss-eap-6.1/standalone/configuration/standalone.xml file and add the following lines inside each <xa-datasource> tag.

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

Upvotes: 6

Related Questions