Jboss - Problemas com o pool de conexão [AJUDA]

1 resposta
R

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?

1 Resposta

A

Esse é um problema.

É difícil para o jBoss ficar olhando todo minuto, esperando o banco voltar. Tenha certeza de que a infraestrutura está bem cuidada para q não aconteça isso.

Uma alternativa é dar um redeploy no datasource para ele tentar conectar novamente.

Criado 25 de fevereiro de 2011
Ultima resposta 25 de fev. de 2011
Respostas 1
Participantes 2