2012-02-09 2 views
1

私のプロジェクトでは、struts、hibernateおよびspring、oracle db、WebLogicサーバーが使用されます。接続が管理上無効になったときにトランザクションがコミットされる

多くのテーブルを挿入するトランザクション(約20)があります。トランザクションで実行されていることは確かです。

今や、テーブルが完全に挿入されていないことがある(0.001?の確率)ことがわかりました。 は10個のテーブルを正常に挿入したように見えます。

以下は、春からのエラーログです。

ExecuteThread: '8' キューの 'weblogic.kernel.Default(セルフチューニング)'] SQLErrorCodesFactory:データベース製品名を抽出中にエラー - 空のエラーコードにフォールバック org.springframework.jdbc.support .MetaDataAccessException:DatabaseMetaDataの抽出中にエラーが発生しました。ネストされた例外はjava.sql.SQLExceptionです。Connectionが管理上無効になっています。後で試してください。

接続が管理上無効になっている場合、spring(またはhibernateのトランザクションマネージャまたはweblogic)は何を行いますか。

+0

あなたは、トランザクションで実行していることを「かなり確信している」以上のものが必要です。非常に確実にしてください。 – skaffman

答えて

0

私はWeblogicのエキスパートではありませんが、プール管理に関連すると聞きました... Weblogicサーバーの修正を確認できますか(使用しているバージョンがわからない場合).... 状況によってはあなたのプールは十分に速く満たされていないので、利用可能な接続はありません....私はプールがデータベースがすぐに十分に答えるとすぐに標準的なコンテキストに戻ることができるはずだと思います...(ちょっと推測します)

関連する問題