The following test client confirms that simply closing a Connection will not
delete any created temporary queues. Performed w/ JBM 1.3 and EAP 4.2. This
example requires the consumer be closed and the temp Q explicitly deleted to
cause removal of the temp Q. This conflicts with JEE JavaDoc, which states
that closing the connection will remove temporary queues.
Further, if the connection is simply closed, the temp Q appears to be a
permanent resource leak within the broker (confirmed w/ JNDIView).
Please advise. If the answer is "move to 1.4", please confirm that this issue
is resolved in 1.4...I am unable to find any info in the JIRA.
package com.cisco.nm.comet.api.test;
|
| import javax.jms.Connection;
| import javax.jms.ConnectionFactory;
| import javax.jms.JMSException;
| import javax.jms.MessageConsumer;
| import javax.jms.MessageProducer;
| import javax.jms.Queue;
| import javax.jms.Session;
| import javax.jms.TemporaryQueue;
| import javax.naming.InitialContext;
| import javax.naming.NamingException;
|
| public class JMSTempQDelete
| {
| private static final String requestQueueName =
"queue/cduRequestRouterQueue";
|
| public static void main(String args[])
| {
| try
| {
| // Get the JNDI context.
| //
| InitialContext ctx = new InitialContext();
|
| // Lookup the connection factory and create connection.
| //
| ConnectionFactory factory =
(ConnectionFactory)ctx.lookup("ConnectionFactory");
| Connection connection = factory.createConnection();
|
| // Create the response session, temp reply Q, and response
consumer.
| //
| Session responseSession = connection.createSession(false,
| Session.AUTO_ACKNOWLEDGE);
| TemporaryQueue responseQueue =
responseSession.createTemporaryQueue();
| MessageConsumer consumer =
responseSession.createConsumer(responseQueue);
|
| // JBM 1.3. It is neccessary to close consumer and explicitly
| // delete temp Q to remove the temp Q from the broker.
| //
| // This conflicts with info at
http://java.sun.com/javaee/5/docs/api/ ...
| // "Closing a connection causes all temporary destinations to
be deleted"
| //
| consumer.close();
| responseQueue.delete();
|
| connection.stop();
| connection.close();
| }
| catch (NamingException e)
| {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
| catch (JMSException e)
| {
| // TODO Auto-generated catch block
| e.printStackTrace();
| }
| }
| }
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4115592#4115592
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4115592
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user