0

Spring cxf Web サービス アプリケーションを JBOSS サーバーにデプロイしています。サービスは正常に動作していますが、たまに (サーバーの起動後 5 ~ 6 日以内に) エラーが発生し、"Could not open JDBC Connection for transaction; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get接続、プールエラー、アイドルオブジェクトの待機タイムアウト」、およびその特定のサービスがダウンする

このアプリケーション内には約 17 のサービスがあり、サーバーを再起動するまで、この DB 接続の問題が発生したサービスのみがダウンします。

その他のサービスは稼働中です。

以下は、私の JDBC テンプレート構成です。

<bean id="dataSource" destroy-method="close"
        class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="initialSize" value="10" />
        <property name="maxIdle" value="10" />
        <property name="maxActive" value="100" />
        <property name="maxWait" value="1000" />
        <property name="validationQuery" value="select 1 from sysibm.sysdummy1" />
        <property name="testOnBorrow" value="true" />
        <property name="testWhileIdle" value="true" />
        <property name="timeBetweenEvictionRunsMillis" value="1200000" />
        <property name="minEvictableIdleTimeMillis" value="1800000" />
        <property name="numTestsPerEvictionRun" value="5" />
        <property name="defaultAutoCommit" value="false" />
    </bean>

どうぞよろしくお願いいたします。

4

3 に答える 3

0

データソースを org.springframework.jdbc.datasource.DriverManagerDataSource に変更してみてください。

JBoss を使用してデータ ソースを構成し、Java EE-jndi ルックアップを実行することをお勧めします。 http://techdive.in/spring/spring-jndi-datasource-configuration-jboss

于 2011-08-10T18:20:35.943 に答える
0

JBOSS が管理する JNDI データ ソースに切り替えることをお勧めします。

于 2011-08-08T20:21:04.773 に答える
0

接続リークのように聞こえるか、データベース接続を長期間保持する非常に長時間実行されるプロセスがあり、最終的に接続プールを使い果たしているようです。また、可能性は低いですが、データベースのレイテンシが非常に高く、無効な接続がプールに表示され、無効な接続を認識して新しい接続を確立し、その検証に指定した 1 秒よりも長い時間がかかる可能性もあります。プール。

于 2011-08-09T00:29:18.457 に答える