Hi We are busy finishing our project which uses WW1.3. Unfortunately we are having follwing problem when doing stress/load testing. This may point to a thread safe issue... our BEA app server (8.1sp1) warns us after some stress testing with following messages (there are more but I think these two show the problem enough): <Oct 20, 2003
1:14:50 PM MEST> <Warning> <WebLogicServer> <BEA-000337>
<ExecuteThread: '15' for queue: 'weblogic.kernel.Default' has been busy for
"620" seconds working on the request "Http Request: /account/bookings.jsp",
which is more than the configured time (StuckThreadMaxTime) of "600"
seconds.>
<Oct 20, 2003
1:14:50 PM MEST> <Warning> <WebLogicServer> <BEA-000337>
<ExecuteThread: '22' for queue: 'weblogic.kernel.Default' has been busy for
"943" seconds working on the request "Http Request:
/account/accountOverview.jsp", which is more than the configured time
(StuckThreadMaxTime) of "600" seconds.>
and when we make a dump the mentioned threads hang at the exact same points in webwork: "ExecuteThread: '15' for queue:
'weblogic.kernel.Default'" daemon prio=5 tid=0xd1f1a8 nid=0x2e runnable
[cc280000..cc281994]
at
java.util.HashMap.get(HashMap.java:316)
at
webwork.util.Query.getQuery(Query.java:29)
at
webwork.util.ValueStack.findValue(ValueStack.java:323)
at
webwork.view.taglib.WebWorkBodyTagSupport.findValue(WebWorkBodyTagSupport.java:57)
at
webwork.view.taglib.ui.ComponentTag.doEndTag(ComponentTag.java:152)
at
webwork.view.taglib.ui.table.WebTable.doEndTag(WebTable.java:661)
at
jsp_servlet._account.__bookings._jspService(__bookings.java:2852)
at
weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
...
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
"ExecuteThread: '22' for queue:
'weblogic.kernel.Default'" daemon prio=5 tid=0xa9ec18 nid=0x35 runnable
[cbb80000..cbb81994]
at
java.util.HashMap.get(HashMap.java:316)
at
webwork.util.Query.getQuery(Query.java:29)
at
webwork.util.ValueStack.findValue(ValueStack.java:323)
at
webwork.view.taglib.WebWorkBodyTagSupport.findValue(WebWorkBodyTagSupport.java:57)
at
webwork.view.taglib.ui.ComponentTag.doEndTag(ComponentTag.java:152)
at
webwork.view.taglib.ui.table.WebTable.doEndTag(WebTable.java:661)
at
jsp_servlet._account.__accountoverview._jspService(__accountoverview.java:973)
at
weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
...
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
We have had a look at the code and found that using a not synchronized access to the static HashMap in the webwork.util.Query object could leed to these problems. What do you think? Any help on this matter is really appreciated! Cheers and TIA -Paolo |