You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by smo <SM...@micropole-univers.com> on 2007/06/29 11:26:25 UTC

Lock in ActiveMQ and Weblogic

Hi!
We are probably facing a lock in the thread sending the messages to
ActiveMQ.
Here is a part of a thread dump :

"ExecuteThread: '10' for queue: 'StrutsQueue'" id=21 idx=0x2c tid=3668
prio=5 alive, in native, waiting, daemon
    -- Waiting for notification on:
edu/emory/mathcs/backport/java/util/concurrent/locks/CondVar@0x1C989330[fat
lock]
    at jrockit/vm/Threads.waitForSignal(J)Z(Native Method)
    at jrockit/vm/Locks.wait(Ljava/lang/Object;J)V(Unknown Source)[inlined]
    at java/lang/Object.wait()V(Native Method)[optimized]
    at
edu/emory/mathcs/backport/java/util/concurrent/locks/CondVar.await()V(CondVar.java:75)
    ^-- Lock released while waiting:
edu/emory/mathcs/backport/java/util/concurrent/locks/CondVar@0x1C989330[fat
lock]
    at
edu/emory/mathcs/backport/java/util/concurrent/ArrayBlockingQueue.take()Ljava/lang/Object;(ArrayBlockingQueue.java:318)
    at
org/apache/activemq/transport/FutureResponse.getResult()Lorg/apache/activemq/command/Response;(FutureResponse.java:42)
    at
org/apache/activemq/transport/ResponseCorrelator.request(Ljava/lang/Object;)Ljava/lang/Object;(ResponseCorrelator.java:75)
    at
org/apache/activemq/ActiveMQConnection.syncSendPacket(Lorg/apache/activemq/command/Command;)Lorg/apache/activemq/command/Response;(ActiveMQConnection.java:1171)
    at
org/apache/activemq/ActiveMQSession.send(Lorg/apache/activemq/ActiveMQMessageProducer;Lorg/apache/activemq/command/ActiveMQDestination;Ljavax/jms/Message;IIJ)V(ActiveMQSession.java:1548)
    at
org/apache/activemq/ActiveMQMessageProducer.send(Ljavax/jms/Destination;Ljavax/jms/Message;IIJ)V(ActiveMQMessageProducer.java:465)
    at
org/apache/activemq/ActiveMQMessageProducer.send(Ljavax/jms/Message;)V(ActiveMQMessageProducer.java:356)
    at
org/springframework/jms/core/JmsTemplate102.doSend(Ljavax/jms/MessageProducer;Ljavax/jms/Message;)V(JmsTemplate102.java:228)
    at
org/springframework/jms/core/JmsTemplate.doSend(Ljavax/jms/Session;Ljavax/jms/Destination;Lorg/springframework/jms/core/MessageCreator;)V(JmsTemplate.java:510)
    at
org/springframework/jms/core/JmsTemplate$2.doInJms(Ljavax/jms/Session;)Ljava/lang/Object;(JmsTemplate.java:476)
    at
org/springframework/jms/core/JmsTemplate.execute(Lorg/springframework/jms/core/SessionCallback;Z)Ljava/lang/Object;(JmsTemplate.java:427)
    at
org/springframework/jms/core/JmsTemplate.send(Ljavax/jms/Destination;Lorg/springframework/jms/core/MessageCreator;)V(JmsTemplate.java:474)
    at
org/springframework/jms/core/JmsTemplate.send(Lorg/springframework/jms/core/MessageCreator;)V(JmsTemplate.java:466)
    at
parcours/dude/jmsactivemq102/Producteur.send(Ljava/io/Serializable;)V(Producteur.java:46)
    at
parcours/dude/AppelDude.sendToJms(Ljava/lang/Object;)V(AppelDude.java:87)
    at
parcours/dude/AppelDude.call(Ljava/lang/Object;)Ljava/lang/Object;(AppelDude.java:170)
    at
parcours/dossier/entretien/ReglesFluxEntretienMAJActionsOffres.envoieFluxActionEntretien(Lparcours/commun/log/Log;Ljava/lang/String;Lparcours/noyau/bean/esb/DemandeurBean;Lparcours/noyau/bean/esb/DossierJeuneBean;Ljava/util/ArrayList;Lparcours/noyau/bean/esb/EntretienBean;Z)V(ReglesFluxEntretienMAJActionsOffres.java:167)
    at
parcours/dossier/entretien/ReglesFluxEntretienMAJActionsOffres.envoieFlux(Ljavax/servlet/http/HttpSession;Ljava/lang/String;Lparcours/commun/log/Log;Ljava/lang/String;Lparcours/dossier/programmes/SaisieProgrammeForm;Ljava/lang/String;Ljava/lang/String;Lparcours/noyau/bean/esb/DemandeurBean;Lparcours/noyau/bean/esb/DossierJeuneBean;Ljava/util/ArrayList;Lparcours/noyau/bean/esb/EntretienBean;ZZ)V(ReglesFluxEntretienMAJActionsOffres.java:66)
    at
parcours/dossier/entretien/EnregistreEntretienAction.executeAction(Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;(EnregistreEntretienAction.java:243)
    at
parcours/struts/action/ParcoursAction.perform(Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;(ParcoursAction.java:279)[optimized]
    at
org/apache/struts/action/ActionServlet.processActionPerform(Lorg/apache/struts/action/Action;Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;(ActionServlet.java:1676)[inlined]
    at
parcours/struts/action/ParcoursActionServlet.processActionPerform(Lorg/apache/struts/action/Action;Lorg/apache/struts/action/ActionMapping;Lorg/apache/struts/action/ActionForm;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Lorg/apache/struts/action/ActionForward;(ParcoursActionServlet.java:360)[optimized]
    at
org/apache/struts/action/ActionServlet.process(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ActionServlet.java:1474)[optimized]
    at
parcours/struts/action/ParcoursActionServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ParcoursActionServlet.java:244)[optimized]
    at
javax/servlet/http/HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(HttpServlet.java:853)[optimized]
    at
weblogic/servlet/internal/ServletStubImpl$ServletInvocationAction.run()Ljava/lang/Object;(ServletStubImpl.java:1077)[inlined]
    at
weblogic/servlet/internal/ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lweblogic/servlet/internal/FilterChainImpl;)V(ServletStubImpl.java:370)[optimized]
    at
weblogic/servlet/internal/ServletStubImpl.invokeServlet(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ServletStubImpl.java:348)[inlined]
    at
weblogic/servlet/internal/WebAppServletContext$ServletInvocationAction.run()Ljava/lang/Object;(WebAppServletContext.java:7046)[optimized]
    at
weblogic/security/acl/internal/AuthenticatedSubject.doAs(Lweblogic/security/subject/AbstractSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(AuthenticatedSubject.java:321)[optimized]
    at
weblogic/security/service/SecurityManager.runAs(Lweblogic/security/acl/internal/AuthenticatedSubject;Lweblogic/security/acl/internal/AuthenticatedSubject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;(SecurityManager.java:121)[inlined]
    at
weblogic/servlet/internal/WebAppServletContext.invokeServlet(Lweblogic/servlet/internal/ServletRequestImpl;Lweblogic/servlet/internal/ServletResponseImpl;)V(WebAppServletContext.java:3732)[optimized]
    at
weblogic/servlet/internal/ServletRequestImpl.execute(Lweblogic/kernel/ExecuteThread;)V(ServletRequestImpl.java:2773)[optimized]
    at
weblogic/kernel/ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:224)[optimized]
    at weblogic/kernel/ExecuteThread.run()V(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(IIII)V(Native Method)
    -- end of trace

The sender is a thread configured using spring 2.0 and weblogic 8.1sp6.
This lock doesn't happen systematically since we manage to correctly send
messages sometimes.

Can somebody explain me this thread dump and the reason the producer is
blocked ?

Thanx!

-- 
View this message in context: http://www.nabble.com/Lock-in-ActiveMQ-and-Weblogic-tf3998854s2354.html#a11357010
Sent from the ActiveMQ - User mailing list archive at Nabble.com.