Мы используем Spring + Hibernate на сервере приложений Jboss.Мы использовали пул соединений Jboss для всех наших потребностей в пулах соединений приложений, используя файл * -ds.xml следующим образом:
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>dev_1</user-name>
<password>*********</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>15</max-pool-size> // production system has more than 80 connections
<idle-timeout-minutes>1</idle-timeout-minutes>
В последнее время мы видим повторяющиеся исключения «Сброс соединения» и «Нет управляемых соединений».Мы используем управление транзакциями Spring, поэтому мы вручную не закрываем никаких соединений.Нужно ли закрывать соединения вручную или мы должны отказаться от пула Jboss Connection и использовать механизм пула соединений c3po, или мы можем использовать их оба вместе.
Наши свойства гибернации в Sessionfactory ...
<property name="hibernateProperties">
<props>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
<prop key="hibernate.jdbc.factory_class">net.bull.javamelody.HibernateBatcherFactory</prop>
<prop key="hibernate.use_streams_for_binary">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.query_cache_factory">com.cisco.ipcentral.hibernate.cache.StandardQueryCacheFactory</prop>
<!-- applicationContext hibernateProperties merge-point -->
</props>
</property>