You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Titi Wangsa <bl...@gmail.com> on 2007/06/13 08:38:52 UTC

myfaces Too much locking?

hello to all..
i'm using myfaces 1.1.5 and tomahawak 1.1.5
my application hang frequently

here is a stack on one of my threads
"TP-Processor280" daemon prio=1 tid=0x0889b1e0 nid=0xab2 waiting for
monitor entry [0x2c658000..0x2c659f30]
        at java.util.Collections$SynchronizedMap.get(Collections.java:1979)
        - waiting to lock <0x523ad908> (a java.util.Collections$SynchronizedMap)
        at java.beans.Introspector.getBeanInfo(Introspector.java:157)
        at javax.faces.component._ComponentAttributesMap.getPropertyDescriptor(_ComponentAttributesMap.java:346)
        at javax.faces.component._ComponentAttributesMap.put(_ComponentAttributesMap.java:306)
        at org.apache.myfaces.shared_impl.taglib.UIComponentTagUtils.setBooleanProperty(UIComponentTagUtils.java:134)
        at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.setBooleanProperty(UIComponentBodyTagBase.java:163)
        at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.setProperties(UIComponentBodyTagBase.java:106)
        at org.apache.myfaces.taglib.core.VerbatimTag.setProperties(VerbatimTag.java:53)
        at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:597)
        at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:315)
        at org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_f_005fverbatim_005f0(meta_jsp.java:179)
        at org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_t_005fbuffer_005f0(meta_jsp.java:157)
        at org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_f_005fsubview_005f0(meta_jsp.java:121)
        at org.apache.jsp.jcs_005fcommon.meta_jsp._jspService(meta_jsp.java:74)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
        at org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:154)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)

and when i grep the log file
[root@opss tomcat1]# grep 0x523ad908 logs/catalina.out  | sort | uniq -c
      2         - locked <0x523ad908> (a java.util.Collections$SynchronizedMap)
    261         - waiting to lock <0x523ad908> (a
java.util.Collections$SynchronizedMap)

there are 261 threads waiting to lock the java.util.Collections$SynchronizedMap

my question is,
how can i modify my app so it does not hang..?
any help?

Re: myfaces Too much locking?

Posted by Titi Wangsa <bl...@gmail.com>.
i think it when i have a lot of t:buffer..
most operation to render a page are read-only..
t:buffer seems to be a write operation..
the write operation causes the lock..
is this so?
can anyone confirm this?
the more t:buffer i use the more locks i have, causing a serious
performance penalty.

Re: myfaces Too much locking?

Posted by Werner Punz <we...@gmail.com>.
Ok the synchronized collection is necessary, but my question goes
towards along the lines of thinking around the box, could it be
that you have something serious going on in one of the setter or getter
methods of a bean which causes a hang or lock on the server side?
Maybe a database related problem (table lock or something else)
with db code called in a setter or getter method.

It seems to hang on a boolean accessor method.


Cheers

Werner


Titi Wangsa schrieb:
> hello to all..
> i'm using myfaces 1.1.5 and tomahawak 1.1.5
> my application hang frequently
> 
> here is a stack on one of my threads
> "TP-Processor280" daemon prio=1 tid=0x0889b1e0 nid=0xab2 waiting for
> monitor entry [0x2c658000..0x2c659f30]
>        at java.util.Collections$SynchronizedMap.get(Collections.java:1979)
>        - waiting to lock <0x523ad908> (a
> java.util.Collections$SynchronizedMap)
>        at java.beans.Introspector.getBeanInfo(Introspector.java:157)
>        at
> javax.faces.component._ComponentAttributesMap.getPropertyDescriptor(_ComponentAttributesMap.java:346)
> 
>        at
> javax.faces.component._ComponentAttributesMap.put(_ComponentAttributesMap.java:306)
> 
>        at
> org.apache.myfaces.shared_impl.taglib.UIComponentTagUtils.setBooleanProperty(UIComponentTagUtils.java:134)
> 
>        at
> org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.setBooleanProperty(UIComponentBodyTagBase.java:163)
> 
>        at
> org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.setProperties(UIComponentBodyTagBase.java:106)
> 
>        at
> org.apache.myfaces.taglib.core.VerbatimTag.setProperties(VerbatimTag.java:53)
> 
>        at
> javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:597)
>        at
> javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:315)
>        at
> org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_f_005fverbatim_005f0(meta_jsp.java:179)
> 
>        at
> org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_t_005fbuffer_005f0(meta_jsp.java:157)
> 
>        at
> org.apache.jsp.jcs_005fcommon.meta_jsp._jspx_meth_f_005fsubview_005f0(meta_jsp.java:121)
> 
>        at
> org.apache.jsp.jcs_005fcommon.meta_jsp._jspService(meta_jsp.java:74)
>        at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
> 
>        at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
>        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
> 
>        at
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:965)
> 
>        at
> org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:154)
>        at org.apache.jsp.index_jsp._jspService(index_jsp.java:106)
>        at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
> 
>        at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
>        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>        at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
> 
>        at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
> 
>        at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
> 
> 
> and when i grep the log file
> [root@opss tomcat1]# grep 0x523ad908 logs/catalina.out  | sort | uniq -c
>      2         - locked <0x523ad908> (a
> java.util.Collections$SynchronizedMap)
>    261         - waiting to lock <0x523ad908> (a
> java.util.Collections$SynchronizedMap)
> 
> there are 261 threads waiting to lock the
> java.util.Collections$SynchronizedMap
> 
> my question is,
> how can i modify my app so it does not hang..?
> any help?
>