1

以下の例外が特定のサーバーで発生しています。問題は一貫していません。

org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException:
Connection is not associated with a managed connection.org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@49828f4c
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:296)
    at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:320)
    at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:213)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:141)
    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:104)
    at org.springframework.jdbc.support.JdbcAccessor.getExceptionTranslator(JdbcAccessor.java:99)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:969)
    at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1003)
    at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:144)
    at com.watsons.tfo.sp.dao.SPSaveTransactionDetail.execute(SupplierPromotionDaoImpl.java:3354)
    at com.watsons.tfo.sp.dao.SupplierPromotionDaoImpl.savePromoTransaction(SupplierPromotionDaoImpl.java:422)
    at com.watsons.tfo.sp.service.SupplierPromotionServiceImpl.savePromoTransaction(SupplierPromotionServiceImpl.java:158)
    at sun.reflect.GeneratedMethodAccessor1010.invoke(Unknown Source)

--

org.springframework.dao.RecoverableDataAccessException: CallableStatementCallback; SQL [{call PKG_TFO_SUPPLIER_PROMOTION.PR_INS_SAVE_TRANSACTION_DET(?, ?)}]; No more data to read from socket; nested exception is java.sql.SQLRecoverableException: No more data to read from socket
    at com.watsons.tfo.sp.service.SupplierPromotionServiceImpl.savePromoTransaction(SupplierPromotionServiceImpl.java:160)
    at sun.reflect.GeneratedMethodAccessor1010.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at $Proxy206.savePromoTransaction(Unknown Source)
    at com.watsons.tfo.sp.controller.SupplierPromoTransactionController.saveSupplierPromoTransaction(SupplierPromoTransactionController.java:1077)
    at com.watsons.tfo.sp.controller.SupplierPromoTransactionController$$FastClassByCGLIB$$8994f9f9.invoke(<generated>)

最初は、古い接続が原因だと思ったので、oracle-ds.xml に古い接続チェッカーを追加しました。しかし、再び問題が発生しました

これを解決するのを手伝ってください。

4

1 に答える 1

1

CachedConnection マネージャーの無効化

   <Valve className="org.jboss.web.tomcat.tc5.jca.CachedConnectionValve"
    cachedConnectionManagerObjectName="jboss.jca:service=CachedConnectionManager"
    transactionManagerObjectName="jboss:service=TransactionManager" />

上記のタグは server.xml に記載されています。これcachedconnectionvalve should be turned off in production server

Web リクエストが終了すると、CCV はすべての JCA 接続を自動的に閉じます。本番環境では、これを無効にする必要があります。

パフォーマンスとスケーラビリティに直接影響する 2 つの主な構成パラメーターがあります。それは、キャッシュ接続マネージャーと HTTP セッション レプリケーションです。

CachedConnectionManager は、デバッグ モードでサーブレット コンテナー内にあるように構成されます。本番構成でも構成されていますが、デバッグ モードはオフになっています。

server.xml ファイルの最後に CachedConnectionValve をコメントしました。

META-INF/jboss-service.xml の CachedConnectionManager についてもコメントしました。

「接続は管理された接続に関連付けられていません」というメッセージが表示されなくなり、アプリケーションは正常に動作しています。

アップデート:

Oracle ログ ファイルに同じエラーのログがもう 1 つ見つかりました...

Oracle バージョン: Oracle データベース 11.2.0.2

すなわち XMLSEQUENC/EEXTRACT FAILS WITH ORA-7445[__INTEL_NEW_MEMCPY()+5395]

これは、Oracle DB バージョンの XML 処理のバグです。

オラクルの人からの指示を受けて、オラクルのパッチ (11666959) を更新しました。

同じことがオラクルのWebサイトにも記載されています。

11666959 is required for the release utility; XMLSEQUENC/EEXTRACT FAILS WITH ORA-7445[__INTEL_NEW_MEMCPY()+5395] IN 11.2.0.2
于 2012-10-13T04:34:12.097 に答える