We are using JBossMQ  with JBoss version 4.0.2 and 4.0.4  

We have a configuration with a JMS client connected to JMS queues.  There are 
two JMS queues a request queue and response queue.   The web app running under 
JBoss can submit requests for statistical analysis to the request queue. The 
JMS client listens to the request queue processes the request and puts the 
result on the result queue.   The web app listens to the result queue picks up 
the results and displays them. 

Everything works fine until we do heavy stress testing.  Note that we are using 
 DeliveryMode.NON_PERSISTENT . After many successful messages have been sent 
and processed, we get the exception:


"javax.jms.IllegalStateException: The connection is closed"  when trying to 
send back the result via JMS.

The code to send the results back is:

try {
        
        // Is there a way to test the  queueConnection here so that 
        // I can reestablish the connection if it is broken or closed ??

                        
        QueueSession resultSession = 
                                       queueConnection.createQueueSession(false,
                                                 QueueSession.AUTO_ACKNOWLEDGE);
                
        ObjectMessage msg = resultSession.createObjectMessage(result);
                        
        Queue resultQueue = (Queue) resultDestination;
                
        QueueSender resultSender =  
                                          
resultSession.createSender(resultQueue);
                
        resultSender.send(msg, DeliveryMode.NON_PERSISTENT,
                                        Message.DEFAULT_PRIORITY,  
                                        Message.DEFAULT_TIME_TO_LIVE);
                        
        resultSender.close();
        resultSession.close();
} catch (JMSException ex) {
        logger.error("Caught JMS exception when trying to send result.");
        logger.error(ex);
} catch (Exception ex) {
        logger.error("Caught exception when trying to send result.");
        logger.error(ex);
}   

Two questions:

a) Is this a bug in the JBossMQ?  We are not getting a JMS onException() call 
for the borken/closed connection like you would for ping timeout. 

b)  Is there a way to test the status of the connection (i.e. someting like a 
method  connection.isClosed() )  to see if it is broken  or closed so that the 
connection can be reestablished?

Thanks.. 





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

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3997630
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to