0

春と休止状態のアプリケーションを使用しています。C3P0 接続プールを使用して Oracle データベースに接続しています。しかし、頻繁に例外を下回ります。

Database failure Exception 
java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:746)
    at org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:776)

それは C3P0 構成と関係がありますか? 以下は c3p0 の設定です。

<bean id="someDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${driverClassName}" />
            <property name="jdbcUrl" value="${url}" />
            <property name="user" value="${username}" />
            <property name="password" value="${password}" />
            <!-- pool sizing -->
        <property name="initialPoolSize" value="3" />
        <property name="minPoolSize" value="6" />
        <property name="maxPoolSize" value="25" />
        <property name="acquireIncrement" value="3" />
        <property name="maxStatements" value="${common.db.max.statements}" />
        <!-- retries -->
        <property name="acquireRetryAttempts" value="1" />
        <property name="acquireRetryDelay" value="1000" /> <!-- 1s -->

            <property name="preferredTestQuery" value="select sysdate from dual" />
      </bean>

ありがとう!

4

1 に答える 1

0

応答を返すのに時間がかかりすぎるクエリがあります。例外トレースは、例外応答の最終スタックのようです。

例外応答の「causedBy」トレースをキャプチャすると、実行時間が非常に長い正確なコード ロジックを特定できます。

お役に立てれば!

于 2013-01-28T15:17:39.850 に答える