2 Replies Latest reply on Dec 30, 2008 9:11 PM by Ji-Woong Choi

    Waiting lock during performance test(log4j locking)

    Ji-Woong Choi Newbie

      I post my problem because I didn't find locking issue on this forum.

      I'm under Web Service BMT using JBoss EAP 4.3 CP03 and testing tool is LoadRunner which will be increased concurrent 20 to 2000 users.

      There was so high CPU usage during load test, so I got a thread dump from running instance.

      JDK : BEA JRockit 1.5.0 ia64
      OS : RHEL 5.2
      WAS : JBoss EAP 4.3 CP03

      I think this is a general issue related log4j.
      I tried to comment log4j configuration for JBoss WS "org/jboss/ws/core/jaxws" pacakge in $SERVER_HOME/conf/jboss-log4j.xml, but I couldn't find the logger category for JBoss WS.

      Here is stacktrace in thread dump. 40 of thread(total 60) is waiting for getting log4j.

      -- Blocked trying to get lock: org/apache/log4j/spi/RootLogger@0x25d4a58[thin lock]
       at jrockit/vm/Threads.sleep(I)V(Native Method)
       at jrockit/vm/Locks.waitForThinRelease(Locks.java:1208)[optimized]
       at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1341)[optimized]
       at jrockit/vm/Locks.monitorEnterSecondStage(Locks.java:1258)[optimized]
       at org/apache/log4j/Category.callAppenders(Category.java:201)[optimized]
       at org/apache/log4j/Category.forcedLog(Category.java:388)[inlined]
       at org/apache/log4j/Category.log(Category.java:853)[inlined]
       at org/jboss/logging/Log4jLoggerPlugin.debug(Log4jLoggerPlugin.java:129)[optimized]
       at org/jboss/logging/Logger.debug(Logger.java:160)[inlined]
       at org/jboss/ws/core/jaxws/handler/HandlerDelegateJAXWS.callRequestHandlerChain(HandlerDelegateJAXWS.java:75)[optimized]
       at org/jboss/ws/core/server/ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:170)[optimized]
       at org/jboss/wsf/stack/jbws/RequestHandlerImpl.processRequest(RequestHandlerImpl.java:424)[optimized]
       at org/jboss/wsf/stack/jbws/RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:287)[inlined]
       at org/jboss/wsf/stack/jbws/RequestHandlerImpl.doPost(RequestHandlerImpl.java:197)[inlined]
       at org/jboss/wsf/stack/jbws/RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:123)[inlined]
       at org/jboss/wsf/stack/jbws/EndpointServlet.service(EndpointServlet.java:84)[optimized]
       at javax/servlet/http/HttpServlet.service(HttpServlet.java:717)[optimized]
       at org/apache/catalina/core/ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)[inlined]
       at org/apache/catalina/core/ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)[optimized]
       at org/jboss/web/tomcat/filters/ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)[optimized]
       at org/apache/catalina/core/ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)[inlined]


      How do I fix this problem? Where could I change log4j category for JBoss WS?

      Thank in advance.
      JW