[Seasar-user:21794] Re: java.lang.LinkageError について(続き)

Hiroyuki Ohnaka [E-MAIL ADDRESS DELETED]
2014年 2月 14日 (金) 21:05:04 JST


大中です。

S2Daoの初期化は、Daoのメソッドが最初に呼ばれた時に行うのですが、
初期化の最中にスレッド間の排他が外れるタイミングがあり、
この時に初期化が並行で走っているようです。

コミッタ間で確認しますが、おそらく不具合なので修正したいと思いますが、
大谷さんのお使いのS2Daoのバージョンはいくつでしょうか?


On Fri, 14 Feb 2014 14:35:14 +0900
Koichi Kobayashi <koichik @ gmail.com> wrote:

> 小林 (koichik) です。
> 
> S2コンテナの初期化時ではなく、HTTPリクエストの受信時に
> AOPを適用した動的クラス生成が行われていますね。
> 
> S2コンテナの初期化時に動的クラス生成が行われるように
> することで、この問題の解決および初回リクエスト時の
> パフォーマンスが改善されるのではないかと思います。
> 
> 具体的な方法はS2Daoに詳しい人お願いします。
> BeanEnhancer (バージョン排他とかModifiedOnlyをサポート
> するもの) をコンテナ初期化時に適用する方法です。
> 
> 
> 
> 2014年2月14日 13:14 <t-ohtani @ kip.co.jp>:
> 
> >
> > お世話になっています。
> > 大谷と申します。
> >
> > S2を大変便利に使用させていただいています。ありがとうございます。
> >
> >
> > 私は、S2を使用した業務パッケージの保守を行っています。
> >
> > 以前、こちらのメーリングリストに以下の投稿をさせていただきました。
> > [Seasar-user:20472] java.lang.LinkageError について
> >
> > 今回の投稿は、この件の続きです。
> >
> >
> > 先日、あるユーザで再度「java.lang.LinkageError」が発生しました。
> >
> >
> > 以前の投稿の際は、
> >
> > AOPでクラス名が重複することはまず無い。以下に該当しているのでは?
> > https://issues.apache.org/bugzilla/show_bug.cgi?id=44041
> >
> > というご回答をいただきました。
> >
> > このため、現象が発生した環境を確認しましたところ、
> > 上記URLに該当する以下のパッチが適用されていました。
> >
> > * [中:2100028]
> >       初回リクエストにおいて、複数のスレッドから同時に同じクラスのロードが
> > 行
> >       われると、java.lang.LinkageErrorが発生し、クラスのロードに失敗する場
> > 合
> >       がある。
> >
> >
> > 現象の発生頻度は、正確には把握しておりませんが、半年に数回程度という感触で
> > す。
> > 現象は、単一ユーザだけでなくいくつかのユーザーで発生しています。
> > (ユーザーの総数は200程度あります。)
> >
> > あるユーザーでは、負荷テストで端末25台から一斉にリクエストを行った際に、
> > 一台だけこの現象が発生したということです。
> >
> > 現象発生時のログを添付させていただきます。
> >
> > お手数ですが、今一度ご確認いただけませんでしょうか?
> >
> > (See attached file: 現象.zip)
> >
> > 以上、よろしくお願いいたします。
> > _______________________________________________
> > Seasar-user mailing list
> > Seasar-user @ ml.seasar.org
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
> 
> 
> -- 
> <signature>
>     <name>Koichi Kobayashi</name>
>     <e-mail>koichik @ gmail.com</e-mail>
> </signature>


-- 
azusa @ gmail <azusa @ fieldnotes.jp>


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