amigos guj,
eu estou tentando gerenciar as conexões pelo DBCP e C3P0 no final acabei ficando com o DBCP (ultima versão). Nos dois pool aconteceu a mesma coisa, as conexões vão crescendo até aguardar o termino do timewait do banco. O correto seria se houver alguma conexão ativa então usa-la e não abrir mais. Outra coisa que resolveu e funcionou testado nos dois pools, foi a reconexão automatica, quando o banco cair (não precisando reiniciar o jboss)
o que pode estar dando de errado quanto as conexões e configuracoes
commons-dbcp-1.4.jar e commons-pool-1.2.jar
<hibernate-configuration>
<session-factory>
<!-- Configurações de conexão ao banco de dados -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@endereco:1521:Banco</property>
<property name="connection.username">user</property>
<property name="connection.password">senha</property>
<!-- Pool de conexão http://commons.apache.org/dbcp/configuration.html -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.DBCPConnectionProvider</property>
<property name="hibernate.dbcp.initialSize">1</property>
<property name="hibernate.dbcp.validationQuery">select 1 from dual</property>
<property name="hibernate.dbcp.maxActive">25</property>
<property name="hibernate.dbcp.minIdle">1</property>
<property name="hibernate.dbcp.maxIdle">5</property>
<property name="hibernate.dbcp.maxWait">10000</property>
<property name="hibernate.dbcp.testOnBorrow">true</property>
<property name="hibernate.dbcp.testWhileIdle">true</property>
<property name="hibernate.dbcp.testOnReturn">true</property>
<property name="hibernate.dbcp.removeAbandoned">true</property>
<property name="hibernate.dbcp.removeAbandonedTimeout">10</property>
<property name="hibernate.dbcp.logAbandoned">true</property>
<property name="hibernate.dbcp.minEvictableIdleTimeMillis">10000</property>
<property name="hibernate.dbcp.timeBetweenEvictionRunsMillis">10000</property>
<property name="hibernate.dbcp.numTestsPerEvictionRun">3</property>
<!-- Dialeto SQL -->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- Desabilita o cache de segundo nível -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="cache.use_query_cache">false</property>
<property name="cache.use_minimal_puts">false</property>
<!--property name="max_fetch_depth">10</property-->
<!-- Escreve as SQL executadas em STDOUT -->
<property name="show_sql">false</property>
<property name="format_sql">false</property>
<!-- Configurações de tamanho do Batch -->
<property name="jdbc.batch_size">50</property>
<!-- Liga o método getCurrentSession() à thread -->
<property name="current_session_context_class">thread</property>
<!-- Drop and re-create the database schema on startup -->
<!--<property name="hbm2ddl.auto">validate</property>-->
<!-- Log4j completo -->
<!--property name="org.hibernate.SQL">ALL</property-->
mapeamentos
mapeamentos
mapeamentos...
fiz testes tando com DBCP e C3P0