[Seasar-user:21295] Re: インスタンスのSCOPEに関して

鈴木 順 [E-MAIL ADDRESS DELETED]
2012年 3月 24日 (土) 19:39:28 JST


小林さん

お世話になっております。鈴木です。

調査をしてみて、分かった点がありますので、以下ご教授下さい。
そのRequestでnewされたものが使われる場合と、使われない場合で、
呼んでいるルートが違いました、

> 問題のObjectはinstance="request"でapp.diconに定義されいる。(定数アノテーションは削除)

の問題のObjectは処理としてはすごい末端でして、
XXXLogicからしか呼ばれないのですが、
XXXLogicはいたるところから呼ばれます。
XXXLogic自体は、LogicなのでProtoTypeだと思うんですけど、
XXXLogicを読んでいるもの自身が例えばSingletonだったりする場合に、
そのSingletonのものが使われるたびに、
XXXLogicはsetしなおされるもののでしょうか?

私は単純に、instance="request"としておけば、
リクエスト毎にnewされ、そのリクエスト内で
様々な呼び出しルートで呼ばれても、画一のものになると
考えてしまっているのですが、この部分の正しい仕様をご教授下さい。

仮に上記が私の誤りであった際には、以下の点もご教授下さい。
requestと言うプロパティを定義しておくと、自動的に
requestがセットされると思うのですが、
このrequest自体は、毎回その時のRequestがセットされるでしょうか?

以上 申し訳ありませんが、ご教授下さい。




On Thu, 22 Mar 2012 16:22:35 +0900
鈴木 順 <[E-MAIL ADDRESS DELETED]> wrote:

> 
> 小林さん
> 
> お世話になっております。鈴木です。
> 
> > 定数アノテーションを削除し、app.diconのみの記述とし、実行してみます。
> 
> 事象の方は、改善されませんでした。
> 
> 現状整理すると、
> 問題のObjectはinstance="request"でapp.diconに定義されいる。(定数アノテーションは削除)
> 問題のObjectを利用するObjectはSMART_DEPLOYでS2に登録される、XXXXLogic
> 問題のObjectのコンストラクタにログを仕込んだ所、S2init時と、リクエスト発生時に呼ばれている
> 問題のObjectの実処理にログを仕込んでHashCodeを出力した所、3回に1度程度、S2init時に生成されている物が使われている
> 
> と言う事になります。
> 
> 申し訳ありませんが、調査にご協力の程宜しくお願いいたします。
> 
> 以上
> 
> 
> On Thu, 22 Mar 2012 14:53:50 +0900
> 鈴木 順 <[E-MAIL ADDRESS DELETED]> wrote:
> 
> > 
> > 小林さん
> > 
> > お世話になっております。鈴木です。
> > 
> > > 定数アノテーションを記述したコンポーネントは SMART deploy で
> > > 自動登録されるコンポーネントですか?
> > > それとも dicon に明示的に記述していますか?
> > > 
> > > もし後者なら,dicon で instance="request" を明記すると
> > > どうなりますか?
> > 
> > app.dicon に明示的に記述しております。
> > また、今確認したら、定数アノテーションでも指定してあるのですが、
> > app.dicon で instance="request" が明記されている状態でした。
> > 
> > 定数アノテーションを削除し、app.diconのみの記述とし、実行してみます。
> > 
> > 
> > On Thu, 22 Mar 2012 02:00:22 +0900
> > Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> > 
> > > 小林 (koichik) です.
> > > 
> > > 定数アノテーションを記述したコンポーネントは SMART deploy で
> > > 自動登録されるコンポーネントですか?
> > > それとも dicon に明示的に記述していますか?
> > > 
> > > もし後者なら,dicon で instance="request" を明記すると
> > > どうなりますか?
> > > 
> > > On Wed, 21 Mar 2012 23:42:03 +0900, 鈴木 順 <[E-MAIL ADDRESS DELETED]> wrote:
> > > 
> > > > 
> > > > お世話になっております。鈴木です。
> > > > 
> > > > とある事象に悩んでおりますので、相談させてください。
> > > > 
> > > > 【事象】
> > > > public static final String COMPONENT = "instance = request";
> > > > と指定し、app.diconで定義しているObjectがあります。
> > > > 
> > > > 意図としては、Request単位でキャッシュしたい値があり、
> > > > それを実現する為に、上記のような定義をしております。
> > > > 
> > > > 発生している事象ですが、実際の処理の際に、
> > > > リクエストで生成された上記Objectではないものが、
> > > > 実際の処理に利用されている場合があります。(3回に一度位です)
> > > > 実際にコンストラクタにログを仕込みHashCodeで確認した結果、
> > > > S2起動時にもObjectがnewされ、後続のリクエスト処理の際にも、
> > > > その際に生成されたObjectが利用されているように見えます。
> > > > 
> > > > デバッグなども可能ですので、調査すべき箇所をご教授下さい。
> > > > 
> > > > 尚、このObjectは、SMART_DEPLOYで、S2に登録される、XXXXLogicが参照しております。
> > > > 
> > > > また、
> > > > Teeda
> > > > 1.0.13-sp10-SNAPSHOT
> > > > 
> > > > S2
> > > > 2.4.44
> > > > 
> > > > を利用しております。
> > > > 
> > > > 以上 宜しくお願いいたします。
> > > > 
> > > > 
> > > > 
> > > > 
> > > > _______________________________________________
> > > > Seasar-user mailing list
> > > > [E-MAIL ADDRESS DELETED]
> > > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > > 
> > > 
> > > -- 
> > > {
> > >   name: "Koichi Kobayashi",
> > >   mail: "[E-MAIL ADDRESS DELETED]",
> > >   blog: "http://d.hatena.ne.jp/koichik/",
> > >   twitter: "@koichik"
> > > }
> > > 
> > > _______________________________________________
> > > Seasar-user mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user



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