[Seasar-user:8353] Re: [S2Struts]コンポーネントが見つかりませんについて教えてください。

田中 修 [E-MAIL ADDRESS DELETED]
2007年 6月 15日 (金) 11:00:07 JST


田中修です。

でも不思議です。
s2Daoは正常に動作しています。
なぜs2Strutsは駄目なのでしょう?


> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]]On Behalf Of 田中 修
> Sent: Friday, June 15, 2007 10:18 AM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:8350] Re:[S2Struts]コンポーネントが見つかりません
> について教えてください。
> 
> 
> sugaさん
> 
> 丁寧な説明ありがとうございます。
> 田中修です。
> 
> アプリやjarの数が多すぎてどのjarやアプリで駄目になるのか見つけられると
> は思えません・・・
> staticにアプリケーション固有情報を持つのは一般的なのでしょうか?
> staticは単一オブジェクトだと思っているので
> どのような使われかたをしたとしても、
> その単一オブジェクトで起動を保証するように使うものだと思っていました。
> 
> 説明有難うございます。
> > -----Original Message-----
> > From: [E-MAIL ADDRESS DELETED]
> > [mailto:[E-MAIL ADDRESS DELETED]]On Behalf Of suga
> > Sent: Friday, June 15, 2007 9:37 AM
> > To: [E-MAIL ADDRESS DELETED]
> > Subject: [Seasar-user:8347] Re:[S2Struts]コンポーネントが見つかりませ
>> > について教えてください。
> > 
> > 
> > suga です。
> > 
> > On 6/15/07, 田中 修 <[E-MAIL ADDRESS DELETED]> wrote:
> > > アプリのWEB-INF/libにjarを置くと
> > > tomcatの配備処理で、
> > > OSにWINDOWSを使っているとjarがオブジェクトを掴んだままになり
> > > jarの削除ができなくなります。
> > > アプリが完全に削除できずに配備が失敗し
> > > 中途半端なエイリアスのみが残る状態が発生します。
> > 
> > これは「Windows だから」ではない可能性があります。
> > アプリケーションまたはフレームワークのいずれかのクラスが jar の中のフ
>> > イルを
> > 参照している場合、そのクラスがアンロードされる前のタイミングで参照さ
>> > ている
> > 方の jar ファイルを削除しようとして失敗することがあります。
> > この場合は jar 削除の順番の都合で削除されませんが、Web アプリの
> >  undeploy 処理
> > で正しく解放するようにすれば解決できます。
> > (ただしフレームワークに手を入れないと解決できない場合もあります)
> > 
> > 
> > また、アプリケーションまたはフレームワークの造りによっては、システム
>> > ラス
> > ローダーでロードされたクラスから Web アプリのクラスローダーでロードさ
>> > た
> > クラスを参照されることがあり、その場合には Web アプリのクラスローダー
>> > 解放されなくなります。
> > こうなるとファイルは削除されたとしても、オブジェクトはメモリ上に残り
>> > ける
> > ことになり、もしこの中のオブジェクトが外部のファイルなどを掴んでいる
>> > 合、
> > そのファイルはアプリケーションサーバを終了するまで手放されないことに
>> > ります。
> > 
> > 
> > > 中途半端なエイリアスを削除するために、
> > > サーバー止めエイリアスをリモートで削除し起動しなおさなければならな
>> > 。
> > > リリースは頻繁に発生しますし、かといってその度にリリースに関係ない
>> > のアプリは止めたくない。
> > >
> > > shared/libに置いて動くように、解決方法を見つける必要がありそうです
>> > 
> > 正しく undeploy されるようにしたいということが目的であれば、
> > shared/lib に
> > 置いて動くようにすることだけが解決策ではありません。
> > おそらく前述の問題を調査する方が、shared/lib に置けるようにすることよ
>> > も
> > 比較的簡単だと思います。(それでも大変ですが)
> > 
> > shared/lib に置けるようにするには、Seasar 関連に限らず、全ライブラリ
>> > static フィールドにアプリケーション固有の情報を持たないようにする必要
>> > あります。
> > これはパフォーマンスのためにキャッシュを static フィールドに持つよう
>> > しているライブラリが軒並み使えない、あるいは変更する必要があるため、
> > ほとんどの場合現実的ではないと思います。
> > 
> > 
> > # 手っ取り早いのは Tomcat を複数立ち上げるとか……。
> > 
> > -- 
> > suga ( [E-MAIL ADDRESS DELETED] )
> > _______________________________________________
> > 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 メーリングリストの案内