接続プーリングを使用してOracle9iリリース9.2.0.4データベースからデータベース接続を取得するアプリケーションがあります。アプリケーションはSJSAS 8.1でホストされ、ドライバはojdbc14.jar
バージョン10.1.0.4です。JDBC getConnectionタイムアウトの問題
私が持っている問題はdatasource.getConnection()
メソッドは、DBがダウンしているときに例外をスローするのに約40秒かかります!これは、DBの停止中にアプリケーションが過負荷になる原因となっています。私はデータソースでLoginTimeout=8
を設定しようとしましたが効果はありません。
私は
<jdbc-connection-pool connection-validation-method="table"
datasource-classname="oracle.jdbc.pool.OracleDataSource"
fail-all-connections="true"
idle-time out-in-seconds="600"
is-connection-validation-required="true"
is-isolation-level-guaranteed="false"
max-pool-size="100"
max-wait-time-in-millis="8000"
name="mydb"
pool-resize-quantity="80"
res-type="javax.sql.DataSource"
steady-pool-size="20"
validation-table-name="dual">
<property name="url" value="jdbc:oracle:thin:@server1:1521:mydb"/>
<property name="user" value="user1"/>
<property name="LoginTimeout" value="8"/>
<property name="password" value="pass1"/>
</jdbc-connection-pool>
を使用しているデータソースは、以下を参照してくださいいずれか助けてくださいことはできますか?与えられたタイムアウトでタイムアウトするには、getConnection()
メソッドが必要です。
質問は「DBがダウンしている」ときです。そうすればあなたの答え全体が無関係になります。 – EJP
これは関連しています。最初の3つの箇条書きは、DB側ではなくクライアント側で行うすべての作業です。それは、クライアント側のタイムアウトを早くすることです。 – mamboking