problem using TemporaryQueue
ionel Mar 1, 2004 7:55 AMHi there,
I have a problem using TemporaryQueues.
Here is my scenario :
Client1 creates a queue on JBoss and connects as a consumer.
The queue name is sent to client2 which use it to act as the producer.
Client2 connects to the given queue, sends datas through it, close and disconnect.
Client1, after receiving what it asked for, close and disconnect then destroy the queue.
This scenario works smoothly when Client1 creates the queue using the RMI adaptor but failed with TemporaryQueue.
JBoss TemporaryQueue names follow this pattern : JMS_TQ<unique_number>
I tried to connect to JMS_TQ# and queue/JMS_TQ# but when creating the producer, it hangs for the server to connect back to itself.
004-03-01 14:07:39,696 [MessageListenerThread - willy/ondemand] DEBUG com.clickoptions.teproxy.jms.proxy.P roxyOnDemandSubscriber - dictionary request received for queue queue/JMS_TQ11 2004-03-01 14:07:39,791 [MessageListenerThread - willy/ondemand] DEBUG org.jboss.mq.referenceable.SpyConnec tionFactoryObjectFactory - Extracting SpyConnectionFactory from reference 2004-03-01 14:07:39,803 [MessageListenerThread - willy/ondemand] DEBUG org.jboss.mq.referenceable.SpyConnec tionFactoryObjectFactory - The GenericConnectionFactory is: GenericConnectionFactory:[server=org.jboss.mq.i l.oil.OILServerIL@3cf62,connectionProperties={OIL_TCPNODELAY_KEY=yes, PingPeriod=60000, OIL_PORT_KEY=8090, ClientILService=org.jboss.mq.il.oil.OILClientILService, OIL_ADDRESS_KEY=191.254.40.95}] 2004-03-01 14:07:39,810 [MessageListenerThread - willy/ondemand] DEBUG org.jboss.mq.GenericConnectionFactor y - Handing out ClientIL: org.jboss.mq.il.oil.OILClientILService 2004-03-01 14:07:39,810 [OILClientILService-6] DEBUG org.jboss.mq.il.oil.OILClientILService - Waiting for t he server to connect to me on port 38546
Surprisingly, when using RMI-created queues, the server connection occurs almost immediatly.
Another point is : the queue initialization is made inside the object constructor (which extends java.lang.Thread) and the creator can call the start() method whereas initialization sequence is not finished.
Why couldn't I use the temporary queue ?
Why does the producer hangs during initialization and why can I call a method on an object that is not totally initialized ?
Thanks,
Ionel