[Seasar-user:21195] Re: [Teeda]不規則にConcurrentModificationExceptionが発生する

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2011年 12月 7日 (水) 02:45:06 JST


小林 (koichik) です.

同じセッションに対するリクエストが並行しているようなので,
RequestDumpFilter などを使ってリクエストが重なる要因を
調べてみてください.

>     ・発生している状況下ではレスポンスが返るまでに時間がかかる(5秒〜10秒)ことが頻繁にありました。
>       これも特定の画面ではなくアプリケーション全体にわたってランダム(DBアクセスしないページでも)に発生

この状況でユーザが待ちきれずにリロードなどすると
問題が発生しやすいかもしれません.
ヒープが不足して GC が頻発しているとか?


On Tue, 06 Dec 2011 19:14:47 +0900, 加藤浩一 <[E-MAIL ADDRESS DELETED]> wrote:

> いつもお世話になっております。加藤と申します。
> 
> Teedaを使ったシステムで画面にConcurrentModificationExceptionのメッセージが
> 表示される現象が発生しているのですが、現象に再現性がないため調査が難航しております。
> 心当たりのある方、手がかりとなる情報でもよいので教えていただけないでしょうか。
> 
> ■環境
>     WindowsServer2003
>     JDK1.6.0_06
>     Tomcat6.0
>     S2Container2.4.30
>     Teeda 1.0.13-sp10
> 
> ■状況
>     ・画面のメッセージ領域(allMessages)に以下メッセージが表示され、スタックトレースが記録されます。
>        [WTDA0204]例外(java.util.ConcurrentModificationException)が発生しましたが、例外メッセージが設定されていません。
>     ・アプリケーションのどの画面でも発生します
>       但し、毎回ではなく同じ操作手順でも出たり出なかったりします。
>     ・ブラウザの複数ウィンドウ(タブ)での同時操作は行っていません、フレームも使っていません。
>       teedaのレイアウトは使っています。
>     ・発生している状況下ではレスポンスが返るまでに時間がかかる(5秒〜10秒)ことが頻繁にありました。
>       これも特定の画面ではなくアプリケーション全体にわたってランダム(DBアクセスしないページでも)に発生
>     ・2年程稼働しているシステムですが、当現象は本日(12/6)初めて発生しました。
>    アプリケーションの変更は11/5以降行っておりません。
> 
> ■スタックトレース
> org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl - 
> java.util.ConcurrentModificationException
> 	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
> 	at java.util.AbstractList$Itr.next(AbstractList.java:343)
> 	at org.seasar.teeda.extension.render.TBodyRenderer.encodeEnd(TBodyRenderer.java:84)
> 	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:348)
> 	at org.seasar.teeda.core.util.RendererUtil.renderChild(RendererUtil.java:330)
> 	at org.seasar.teeda.core.util.RendererUtil.renderChildren(RendererUtil.java:340)
> 	at org.seasar.teeda.extension.render.TViewRootRenderer.encodeBegin(TViewRootRenderer.java:65)
> 	at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:330)
> 	at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:100)
> 	at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:247)
> 	at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:184)
> 	at org.seasar.teeda.extension.taglib.TViewTag.doStartTag(TViewTag.java:98)
> 	at org.seasar.teeda.extension.html.processor.ElementProcessorImpl.processTag(ElementProcessorImpl.java:145)
> 	at org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:138)
> 	at org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:119)
> 	at org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:157)
> 	at org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:143)
> 	at org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:39)
> 	at org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
> 	at org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:131)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:101)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:70)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at jp.co.xxxx.filter.NDCFilter.doFilter(NDCFilter.java:44)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
> 	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
> 	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
> 	at java.lang.Thread.run(Thread.java:619)
> 
> 以上、宜しくお願い致します。
> _______________________________________________
> 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 メーリングリストの案内