Estou tendo uns problemas com o pool do jboss. Quando acontece algum imprevisto com o banco de dados e a aplicação perde a conexão com o banco (banco fora do ar), esta não está conseguindo recuperar o pool e aplicação não consegue mais pegar uma conexão válida, mesmo depois de o banco ter voltado.
Código do meu datasource:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>nomeDS</jndi-name>
<connection-url>
jdbc:oracle:thin:@ip:porta:sid
</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>usuario</user-name>
<password>senha</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
<!-- Parâmetros do pool de conexões -->
<min-pool-size>5</min-pool-size>
<max-pool-size>100</max-pool-size>
<blocking-timeout-millis>5000</blocking-timeout-millis>
<idle-timeout-minutes>15</idle-timeout-minutes>
<!-- Valida a conexão quando ela é retirada do pool -->
<validate-on-match>true</validate-on-match>
<!-- Comando sql chamado quando uma nova conexão é criada -->
<new-connection-sql>SELECT SYSDATE FROM DUAL</new-connection-sql>
<!-- Comando sql chamado quando uma nova conexão é obtida do pool -->
<check-valid-connection-sql>SELECT SYSDATE FROM DUAL</check-valid-connection-sql>
<!-- Consultas de no máximo 5 minutos -->
<query-timeout>300</query-timeout>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
Código do hibernate.cfg
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="">
<!-- Database connection settings -->
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<property name="connection.datasource">java:/nomeDS</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">false</property>
<!-- Mapped resources -->
<mapping class="class"/>
<mapping class="class"/>
</session-factory>
</hibernate-configuration>
Estou usando o Jboss 4.2, o banco é o Oracle, o driver que estou usando é o ojdbc14 versão 10.2.0.3.0. Como eu poderia proceder para corrigir este problema?