2012-06-21 4 views
0

Мое веб-приложение (Java jsf icefaces - jboss) подключается к Oracle с использованием hibernate. Он работает правильно, но если есть период бездействия пользователя (несколько часов), когда пользователь пытается сделать запрос, возникает эта ошибка: java.sql.SQLException: исключение Io: сброс соединения по ошибке: ошибка записи сокетаПодключение к Oracle с Hibernate

Приложение используется пользователями 3/4, поэтому существует очень небольшое количество открытых соединений. Я могу решить проблему перезагрузки сервера jboss.

Ниже показан hibernate.cfg.xml, используемое приложение:

<?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, но проблема остается неповрежденной. Любые предложения приветствуются

Благодаря

ответ

1

Вы, вероятно, не используя c3p0. 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: время ожидания чтения: Затем, если пользователь делает другой запрос, ошибка java.sql.SQLException: исключение Io: сброс соединения с помощью peer: ошибка записи сокета я схожу с ума .... – Michele

Смежные вопросы