PDA

View Full Version : improve performance on DelegatingPhaseListenerMulticaster


titiwangsa
Jun 14th, 2007, 03:29 AM
hello to all
i'm using jsf + spring
i notice that the DelegatingPhaseListenerMulticaster
will always find phase listner bean and executes them
nothing wrong with that.
its what the DelegatingPhaseListenerMulticaster is supposed to do.
but i notice that
from this

- locked <3391a880> (a java.util.concurrent.ConcurrentHashMap)
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeanNamesForType(DefaultList ableBeanFactory.java:196)
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeansOfType(DefaultListableB eanFactory.java:242)
at org.springframework.context.support.AbstractApplic ationContext.getBeansOfType(AbstractApplicationCon text.java:796)
at org.springframework.beans.factory.BeanFactoryUtils .beansOfTypeIncludingAncestors(BeanFactoryUtils.ja va:257)
at org.springframework.web.jsf.DelegatingPhaseListene rMulticaster.getDelegates(DelegatingPhaseListenerM ulticaster.java:99)
at org.springframework.web.jsf.DelegatingPhaseListene rMulticaster.afterPhase(DelegatingPhaseListenerMul ticaster.java:80)
at org.apache.myfaces.lifecycle.PhaseListenerManager. informPhaseListenersAfter(PhaseListenerManager.jav a:92)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute Phase(LifecycleImpl.java:99)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute (LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServl et.java:139)


that it finds the delegates on every phase.

my question is, is there a way i can cache the delegate beans so that
these lines

- locked <3391a880> (a java.util.concurrent.ConcurrentHashMap)
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeanNamesForType(DefaultList ableBeanFactory.java:196)
at org.springframework.beans.factory.support.DefaultL istableBeanFactory.getBeansOfType(DefaultListableB eanFactory.java:242)
at org.springframework.context.support.AbstractApplic ationContext.getBeansOfType(AbstractApplicationCon text.java:796)
at org.springframework.beans.factory.BeanFactoryUtils .beansOfTypeIncludingAncestors(BeanFactoryUtils.ja va:257)


are not executed on every phase..

this is because my threads are locked


bash-3.2# grep "3391a880" 559-catalina.out | sort | uniq -c | sort -n
1 - locked <3391a880> (a java.util.concurrent.ConcurrentHashMap)
178 - waiting to lock <3391a880> (a java.util.concurrent.ConcurrentHashMap)
bash-3.2#


any help is greatly appreciated.