2012-06-21 6 views
0

내 웹 응용 프로그램 (Java jsf icefaces - jboss)은 hibernate을 사용하여 Oracle에 연결됩니다. 그것은 제대로 작동하지만 사용자가 쿼리를 만들려고 할 때 사용자 비활성 기간 (몇 시간)이 있으면 다음 오류가 발생합니다. java.sql.SQLException : Io 예외 : 피어에 의한 연결 재설정 : 소켓 쓰기 오류최대 절전 모드로 Oracle에 연결

응용 프로그램은 3/4 사용자가 사용하므로 열린 연결 수가 매우 적습니다. jboss 서버 재부팅 문제를 해결할 수 있습니다.

<?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> 
     <!-- <property name="connection.datasource">portaleClientiOracleDS</property> -->  
     <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 
     <property name="current_session_context_class">thread</property> 
     <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
     <property name="hibernate.connection.password">Alfre$cost12</property> 
     <property name="hibernate.connection.url">jdbc:oracle:thin:@172.16.216.109:1521:ALFHIST</property> 
     <property name="hibernate.connection.username">ALFRESCOST</property> 
     <!-- <property name="hibernate.default_catalog">ALFRESCOST</property>--> 
     <!-- <property name="hibernate.default_schema">ALFRESCOST</property>--> 
     <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> 
     <property name="show_sql">false</property> 
     <property name="use_outer_join">true</property> 
     <property name="cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property> 

     <property name="c3p0.acquire_increment">1</property> 
     <property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
     <property name="c3p0.max_size">100</property> 
     <property name="c3p0.max_statements">0</property> 
     <property name="c3p0.min_size">10</property> 
     <property name="c3p0.timeout">100</property> 
     <property name="c3p0.preferredTestQuery">SELECT 1 FROM DUAL</property> 
     <property name="c3p0.testConnectionOnCheckout">true</property> 

     <mapping resource="it/pillar/accenture/portaleclienti/businesslayer/clienti/dao/hibernate/mappings/StoricoPillar.hbm.xml"/>  

    </session-factory>  
</hibernate-configuration> 

내가 C3P0 값을 증가시키기 위해 노력했지만, 문제는 그대로 남아 : 아래

는 응용 프로그램에서 사용되는있는 hibernate.cfg.xml을 표시됩니다. 모든 제안을 당신은 아마 더 사용 C3P0있어하지

감사

답변

1

를 부탁드립니다. The documentation는 말한다 :

Hibernate will use its org.hibernate.connection.C3P0ConnectionProvider for connection pooling if you set hibernate.c3p0.* properties. If you would like to use Proxool, refer to the packaged hibernate.properties and the Hibernate web site for more information.

The following is an example hibernate.properties file for c3p0:

hibernate.connection.driver_class = org.postgresql.Driver 
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase 
hibernate.connection.username = myuser 
hibernate.connection.password = secret 
hibernate.c3p0.min_size=5 
hibernate.c3p0.max_size=20 
hibernate.c3p0.timeout=1800 
hibernate.c3p0.max_statements=50 
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect 

그래서 속성이 hibernate.c3p0.xxx하지 c3p0.xxx해야한다.

+0

게시물을 보내 주셔서 감사합니다. 불행히도 문제를 해결하지 못했습니다 ... 사용자가 쿼리를 만들려고 할 때 첫 번째 오류가 발생하는 것으로 나타났습니다. java.sql.SQLException : Io 예외 : 읽기 시간 초과 그런 다음 if 사용자가 다른 쿼리를 만들면 오류가 입니다. java.sql.SQLException : Io 예외 : 피어에 의한 연결 재설정 : 소켓 쓰기 오류 나는 미쳐 가고 있습니다 .... – Michele

관련 문제