[Seasar-user:14879] Re: S2JTA + S2Hibernate で、ConnectionPoolImpl からのコネクション取得に失敗することがある
Noriyuki Mizutani
[E-MAIL ADDRESS DELETED]
2008年 7月 1日 (火) 15:06:05 JST
小林さん
水谷です。
返信ありがとうございます。
2.4.25 のログを整形したものを添付します。
(2つのスレッドが絡んで非常に見づらいため、エクセルで
色付けしました)
当方のアプリケーションの大まかな処理内容ですが、
サーバーアプリケーションに用意されたキューにタスク情報の
ようなものが蓄積するようになっており、複数のエージェント
(別プロセス)が非同期にそれをテイクして処理を行い、
処理結果の永続化をサーバーに依頼するというような感じです。
エージェントは S2RMI を介してサーバーのサービスにアクセス
しています。また、サーバーのサービスには requiredTx を
aspect しています。
ConnectionPoolImpl の maxPoolSize を 1 に設定し、
エージェントを2プロセス起動した状態で現象を再現して
みました。
とりあえず、ログ上で明らかにおかしい箇所は特定できました。
トランザクションの GrobalId を追うと、
背景色黄色のスレッドが開始したトランザクション(10行目)
と同一の GrobalId で、背景色緑色のスレッドで論理的な
コネクションのクローズ(17行目)が行われています。
スレッド間のトランザクション(コネクション?)が干渉して
いるように見えます。
その後の挙動(物理的なコネクションのクローズとか)は
副次的なものでしょうか。
2.4.8 のログはすみませんが少々お待ちください。
Koichi Kobayashi さんは書きました:
> 小林 (koichik) です.
>
> Date: Mon, 30 Jun 2008 22:33:17 +0900
> From: Noriyuki Mizutani <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:14873] S2JTA + S2Hibernate で、ConnectionPoolImpl からのコネクション取得に失敗することがある
>
>
>> s2container を 2.4.8 から 2.4.25 に移行したところ、
>> コネクション取得時に例外(トランザクションのネスト)
>> が発生するようになりました。
>>
>
> 「トランザクションを開始しました」や
> 「論理的なコネクションを取得しました」等,
> S2JTA および S2DBCP のログを一緒に見せてください.
> これらのメッセージは出力レベルが DEBUG なので,
> 出力を止めている場合は有効にしてログを取得してください.
> できれば,2.4.8 と 2.4.25 の両方のログを比較できると
> 助かるかも.
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log.zip
Type: application/x-zip-compressed
Size: 6605 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20080701/a2ae4114/attachment-0001.bin>
Seasar-user メーリングリストの案内