[Seasar-user:15422] Re: 【Seasar2】稼働中にexternalContextがnullとなる

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 8月 19日 (火) 13:00:06 JST


小林 (koichik) です.

Date:    Tue, 19 Aug 2008 12:17:51 +0900
From:    OKADA Ikue <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15421] 【Seasar2】稼働中にexternalContextがnullとなる

> まだ再現条件が絞り込めていないのですが、このように、稼働中に
> externalContextがnullとなる状況が発生する可能性があるのでしょうか。

S2Container#setExternalContext() に null を
渡せばそうなる可能性はあるのですが,現時的には
考えにくいです.

それよりは,毎回 S2Container のインスタンスが
作られていて,ある時点からメモリ不足等でそれが
出来なくなり,それ以降は外部コンテキストが設定
されないままになっているという方が可能性が高いかと.

SAStruts 側についてはそういうことはないと
思うので,

> アプリケーションサーバ上では、SAStrutsを使うWebアプリケーションのほかに
> MessageDrivenBeanが稼動し、MessageDrivenBeanの#ejbCreate()内で
> SingletonS2Container#getContainer()でコンテナを取得しています。
> その後、MessageListener#onMessage()が呼び出された際に、コンテナから
> #getComponent()でコンポーネントを取得し、処理を行っています。

こっちの方が気になります.
実は MDB 側でメッセージを処理する度にコンテナが
作成されたりはしていないでしょうか?
コンテナ作成時のログが毎回出力されていないか
確認してみてください.

また,SAStruts だけと MDB だけとで (あるいは
それぞれを別サーバで) 連続稼働させると
どうなるか,試してみてはいかがでしょうか.
そうすれば,少なくとも SAStruts 側か MDB 側か,
問題を切り分けることは出来るので.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内