hi,
I am using a message driven bean deployed in JBoss 4.0.2 to listen to a queue 
in WebSphere MQ 5.3. Randomly after processing about couple of thousand 
messages (sometimes hundreds) it stops responding and no further messages are 
picked up from the queue. 
Here is the mdb code:

  |  public void onMessage (Message message)
  |     {
  |             try{
  |                     if (message instanceof TextMessage) {
  |                             //Initialize the handler
  |                             VOTSMessageHandler handler = new 
VOTSMessageHandler();
  |                             
  |                             //Cast message to JMS TextMessage
  |                             TextMessage msg = (TextMessage)message;         
        
  |                             
  |                             //Extract message from the JMS TextMessage into 
a stringbuffer
  |                             StringBuffer text = new 
StringBuffer(msg.getText());
  |                             
  |                             //Extract the message type from the message 
body (VOTS--> first 6 characters)
  |                             String msgType = text.substring(0,6);
  |                             
  |                             //Log the receipt of the message for debugging
  |                             CmsLog.getMessageLog().info("Message received 
with message ID "+ msgType+ " containing : "+ msg.getText());
  |                             
  |                             //invoke the handler method for further 
processing
  |                             
handler.getParsedMessage(text.toString(),msgType);      
  |                             
  |                     }
  |             }
  |             catch(Exception e){
  |                     //Rollback when any exception is thrown
  |                     this.context.setRollbackOnly();
  |                     
  |                     //Log the exception for debugging
  |                     CmsLog.getProcessLog().error("VOTS Message Processing 
Failed : ");
  |             }
  |     }
  | 


jboss.xml

  | <jboss>
  |   <enterprise-beans>
  |     <message-driven>
  |       <ejb-name>VOTSMessageBean</ejb-name>
  |       <destination-jndi-name>HCPDCMS/FROM.VOTS</destination-jndi-name>
  |       <configuration-name>Singleton Message Driven Bean</configuration-name>
  |       <resource-ref> 
  |         <res-ref-name>HCPDCMS/FROM.VOTS</res-ref-name> 
  |         <jndi-name>HCPDCMS/MQ_HCPDCMS_QCF</jndi-name> 
  |       </resource-ref>
  |     </message-driven>
  |   </enterprise-beans>
  | </jboss>
  | 
  | 


ejb-jar.xml

  | 
  | <ejb-jar>
  |     <enterprise-beans>              
  |             <message-driven>
  |                     <ejb-name>VOTSMessageBean</ejb-name>
  |                     
<ejb-class>com.vai.cms.ejb.message.vots.VOTSMessageBean</ejb-class>
  |                     <transaction-type>Container</transaction-type>          
  |                     <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
  |                     <message-driven-destination>
  |                             
<destination-type>javax.jms.Queue</destination-type>
  |                     </message-driven-destination>   
  |                     <resource-ref>
  |                             <res-ref-name>HCPDCMS/FROM.VOTS</res-ref-name> 
  |                             
<res-type>com.vai.cms.jmx.wsmq.WSMQConnectionFactory</res-type>
  |                             <res-auth>Container</res-auth>
  |                     </resource-ref>                                         
                
  |             </message-driven>
  |     </enterprise-beans>     
  |     <assembly-descriptor>
  |             <container-transaction>
  |                     <method>
  |                             <ejb-name>VOTSMessageBean</ejb-name>
  |                             <method-name>onMessage</method-name>
  |                             <method-params>
  |                                     
<method-param>javax.jms.Message</method-param>
  |                             </method-params>
  |                     </method>
  |                     <trans-attribute>RequiresNew</trans-attribute>
  |             </container-transaction>
  |     </assembly-descriptor>
  | </ejb-jar>
  | 

After analyzing the thread dump, I see a deadlock that I cannot understand. 
Here is the thread:


  | "MQQueueAgent (FROM.VOTS)" daemon prio=5 tid=0x47c30230 nid=0x240c in 
Object.wait() [0x4d04f000..0x4d04fbec]
  |         at java.lang.Object.wait(Native Method)
  |         - waiting on <0x0acbcea0> (a java.util.ArrayList)
  |         at java.lang.Object.wait(Object.java:474)
  |         at 
org.jboss.jms.asf.StdServerSessionPool.getServerSession(StdServerSessionPool.java:206)
  |         - locked <0x0acbcea0> (a java.util.ArrayList)
  |         at 
com.ibm.mq.jms.MQConnectionConsumer.deliverNow(MQConnectionConsumer.java:592)
  |         at 
com.ibm.mq.jms.MQConnectionConsumer.deliver(MQConnectionConsumer.java:554)
  |         at com.ibm.mq.jms.MQQueueAgent.deliver(MQQueueAgent.java:723)
  |         - locked <0x0acbcf40> (a java.util.Vector)
  |         at 
com.ibm.mq.jms.MQQueueAgentThread.processMessage(MQQueueAgentThread.java:763)
  |         at 
com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:933)
  |         at java.lang.Thread.run(Thread.java:595)
  | 

It is obviously waiting on the same object that it locked (in bold). Does 
anybody have any idea how to fix this?

Any pointer will be appreicated!
Thanks.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3943043#3943043

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3943043


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to