2011-10-13 266 views
0

我們在Jboss應用服務器中使用Spring + Hibernate。我們一直在使用使用* -ds.xml文件的Jboss連接池爲我們所有的應用程序連接池的需求如下Jboss連接池或休眠連接池

<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連接池並使用c3po連接池機制,或者我們可以將它們一起使用。在SessionFactory的

我們的Hibernate屬性...

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

回答

0

我不熟悉的「JBoss的連接池」,但它聽起來像是你有超時時,或當他們防火牆被切斷連接在游泳池裏。大多數連接池允許您設置一個「驗證查詢」,該連接在分發連接之前運行,以驗證連接是否仍然存在。使用它可以使池在放棄應用程序之前丟棄死連接。

更新:也許您在尋找<check-valid-connection-sql>