2011-11-10 18 views
2

こんにちは皆、 私は休止状態のORMおよびOracleデータベースを使用しています。ネットワーク障害後にデータベース接続を再確立する - 休止状態

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
    <property name="connection.url">jdbc:oracle:thin:@url</property> 
    <property name="connection.username">username</property> 
    <property name="connection.password">pasword</property> 
    <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>     

    <property name="hibernate.c3p0.min_size">5</property> 
    <property name="hibernate.c3p0.max_size">20</property> 
    <property name="hibernate.c3p0.timeout">300</property> 
    <property name="hibernate.c3p0.max_statements">50</property> 
    <property name="hibernate.c3p0.idle_test_period">3000</property>  
    <property name="hibernate.c3p0.acquire_increment">3</property> 

すべてが正常に動作しますが、私は、アプリケーションを実行するとき、私は、ネットワークケーブルを抜いて、プラグあれば、それは私のDBクエリが失敗agian:私のcfgファイルには、プロパティを以下ました。それは私にエラーを与える

java.sql.SQLException: Io exception: Connection reset by peer: socket write error 

接続を再確立する方法はありますか?

答えて

2

読みください。

詳細については、How To Configure The C3P0 ConnectionPoolを参照してください。 WEB-INF/classesc3p0.propertiesファイルを作成した場合、最もコントロールできるようになりますが、hibernate.cfg.xmlのプロパティをオーバーライドしないようにする必要があります。

まあ、私が書いていた

<c3p0-config> 
<default-config> 
<!-- Configuring Connection  Testing --> 
<!-- property name="automaticTestTable">TEST_EMS_HIBERNATE_CONN</property --> 
<property name="checkoutTimeout">0</property> 
<property name="testConnectionOnCheckout">true</property> 
<property name="testConnectionOnCheckin">false</property> 
<property name="preferredTestQuery">SELECT 1 from dual</property> 
<!-- Configuring Recovery From Database Outages --> 
<property name="acquireRetryAttempts">0</property> 
<property name="acquireRetryDelay">1000</property> 
<property name="breakAfterAcquireFailure">false</property> 
<!-- Configuring to  Debug and Workaround Broken  Client Apps  --> 
<property name="unreturnedConnectionTimeout">1800</property> 
<property name="debugUnreturnedConnectionStackTraces">true</property> 
</default-config> 

のようなC3P0-config.xmlのなどのシステムプロパティ:本当に助け

C3P0_SYS_PROPS="-Dcom.mchange.v2.c3p0.cfg.xml=<FILE-PATH>/c3p0-config.xml -Dcom.mchange.v2.log.MLog=com.mchange.v2.log.FallbackMLog -Dcom.mchange.v2.log.FallbackMLog.DE FAULT_CUTOFF_LEVEL=WARNING"

+0

感謝。 –

+0

あなたを助けてくれてうれしい@Ricky –

0

私が見てきたように、あなたはテスト接続を指定しましたが、それらをテストする方法は指定していません。 http://www.mchange.com/projects/c3p0/index.html#configuring_connection_testingを読んでください。私はあなたがちょうどpreferredTestQueryを追加する必要があると思う、通常それはSELECT 1 FROM DUALのようなものです。 idleConnectionTestPeriodと適切なpreferredTestQuery、例えば、select 1 from dualを設定hibernate.Tryない - もここSomething wrong with Hibernate DB connection pooler c3p0あなたのデータベース接続プールを設定する必要があり