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

田中 修 [E-MAIL ADDRESS DELETED]
2007年 6月 15日 (金) 10:17:40 JST


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 メーリングリストの案内