Asynchronous jms consumer

Hi all
I want to create an asynchronous jms consumer.
The problem is that i do not want create a message driven bean.
I have a session bean that dynamically read from data base the name of the queue listened.
So i wonder if exists a way for implementing a asynchronous jms consumer.
Please help!!!
Regards

Yes there is - it's called a Listener and needs to run in a separate thread. If you're already using EJB why don't you want to use MDBs?

Similar Messages

  • JMS Consumer error

    I am having an JMS Consumer in a esb service to trigger a bpel process.However the consumer gives the following error when invoked
    ORABPEL-11206
    Invalid input to translator.
    The Inbound Opaque translator recieved invalid input value : null for argument : InputStream/Result.
    This is because the translator was invoked with invalid arguments. Contact oracle support if error is not fixable.
         at oracle.tip.pc.services.translation.xlators.opaque.OpaqueTranslator.translateFromNative(OpaqueTranslator.java:153)
         at oracle.tip.adapter.jms.inbound.JmsConsumer.translateFromNative(JmsConsumer.java:649)
         at oracle.tip.adapter.jms.inbound.JmsConsumer.sendInboundMessage(JmsConsumer.java:552)
         at oracle.tip.adapter.jms.inbound.JmsConsumer.send(JmsConsumer.java:388)
         at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:308)
         at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(WorkWrapper.java:242)
         at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWrapper.java:215)
         at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrapper.java:190)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:825)
         at java.lang.Thread.run(Thread.java:595)
    I am using opaque schema element as the payload may vary.
    Can you pls help me resolve this issue.

    Hi,
    Thanks a lot for your response. The oc4j-ra.xml is located in C:\product\10.1.3.1\OracleAS_1\j2ee\home\application-deployments\default\JmsAdapter
    Entry is :
    <connector-factory location="TestRequestQueueJNDI" connector-name="Jms Adapter">
              <config-property name="connectionFactoryLocation" value="TestJMSCF"/>
              <config-property name="factoryProperties" value="java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory; java.naming.provider.url=t3://hostName:port; java.naming.security.principal=weblogic;java.naming.security.credentials=weblogic"/>
              <config-property name="acknowledgeMode" value="AUTO_ACKNOWLEDGE"/>
              <config-property name="isTopic" value="false"/>
              <config-property name="isTransacted" value="false"/>
              <config-property name="username" value="weblogic"/>
              <config-property name="password" value="weblogic"/>
              <connection-pooling use="none">
              </connection-pooling>
              <security-config use="none">
              </security-config>
         </connector-factory>
    Thanks
    Chandra

  • Wht will happen if  JMS Consumer thread gets a TMF Error

    Hi
    If anybody knows the implementation of various providers of JMS how they will behave , when a TMF error [ Invalid transaction / Obsolete transaction] is thrown to the Consumer thread.
    Consider this as the scenario.
    Consumer Thread starts it transaction
    does a fetch on the database
    Getting TMF error Invalid transaction for a Active transaction.
    ie
    Say curently Consumer thread is having 892346 as transaction id.
    but TMF throws Invalid trnsaction for transaction 892333 but it's thorwn to the JMS Consumer thread when it's under the transaction 892346.
    SO error occurs Consume rthread will throw it to the application which causes abnormal termination.
    Have anyone came across this scenario ? If so U r welcome.
    Also anyone have any idea of JMS venodrs how they ll behave in this scenario ?

    Hi
    If anybody knows the implementation of various providers of JMS how they will behave , when a TMF error [ Invalid transaction / Obsolete transaction] is thrown to the Consumer thread.
    Consider this as the scenario.
    Consumer Thread starts it transaction
    does a fetch on the database
    Getting TMF error Invalid transaction for a Active transaction.
    ie
    Say curently Consumer thread is having 892346 as transaction id.
    but TMF throws Invalid trnsaction for transaction 892333 but it's thorwn to the JMS Consumer thread when it's under the transaction 892346.
    SO error occurs Consume rthread will throw it to the application which causes abnormal termination.
    Have anyone came across this scenario ? If so U r welcome.
    Also anyone have any idea of JMS venodrs how they ll behave in this scenario ?

  • JMS consumer is not receiving any messages. am i missing something ?

    Hi bellow is the consumer code, my consumer is not receiving any messages even though there are messages in the queue. I have tried to debug the code. but the consumer is not calling the onMessage() method even though there are messages in the queue. Please guide me on the same. if i am missing something.
    package org.icrm.cons;
    import javax.jms.Connection;
    import javax.jms.Destination;
    import javax.jms.ExceptionListener;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.apache.activemq.ActiveMQConnectionFactory;
    public class JConsumer implements ExceptionListener,MessageListener{
         public static void main(String[] args){
              JConsumer consumer = new JConsumer();
              System.out.println("here 1");
              consumer.consumeMessage("MyQueue");
         public void consumeMessage(String queueName){
              try{
                   System.out.println("here 2");
                   ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
                   Connection connection = connectionFactory.createConnection();
                   connection.start();
                   connection.setExceptionListener(this);
                   Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                   Destination destination = session.createQueue(queueName);
                   MessageConsumer consumer = session.createConsumer(destination);
                   //ASync
                   consumer.setMessageListener(this);
                   //Sync
                   /*Message message = consumer.receive(1000);
                   TextMessage textMessage = (TextMessage)message;
                   String text = textMessage.getText();
                   System.out.println("Received : " + text);
                   consumer.close();
                   session.close();
                   connection.close();
              }catch(Exception e){
                   System.out.println("Caught: " + e);
                   e.printStackTrace();
         public void onException(JMSException arg0) {
              System.out.println("JMS Exception occured.  Shutting down client.");
         public void onMessage(Message message) {
              try{
                   TextMessage textMessage = (TextMessage)message;
                   String text = textMessage.getText();
                   System.out.println("Received: " + text);
              }catch(JMSException e){
                   e.printStackTrace();
    }

    Hey,
    I commented the following line of code. and i got all the messages.
    //consumer.close();
    //session.close();
    //connection.close();but then when should i close the consumer, session and connection object ???

  • Asynchronous - JMS, MDB design

    Hi,
    I am writing a portion of a J2EE application and would like to perform asynchronous processing. Im new to JMS. Following are some questions i have:
    - How does JMS process message, queue and MDB? I mean when a message is send to a queue, how does it know which MDB should be receiving the message?
    - Im using JBoss which has JMS support. Under normal circumtances, is it all right to use the default queue that comes with the JMSProvider (i.e. the application server in this case)? Or should we write some other codes for create queue?
    - In terms of design, should one MDB only performs a single function? The reason for this is that a MDB seems to only have a single 'onMessage' method?
    Thanks much.
    Veny

    - How does JMS process message, queue and MDB? I mean when a message is send to a queue, how does it know which MDB should be receiving the message?
    Beans are randomly selected from pool, very much similar to 'stateless session bean'.
    - I'm using JBoss which has JMS support. Under normal circumstances, is it all right to use the default queue that comes with the JMSProvider (i.e. the application server in this case)? Or should we write some other codes for create queue?
    You may want to create your own app specific queue(s) unless you are writing 'Hello MDB' application.
    - In terms of design, should one MDB only perform a single function? The reason for this is that a MDB seems to only have a single 'onMessage' method?
    MDBs are never invoked by client directly and can not maintain conversational state for any specific client. When container receives any message it simply calls 'onMessage' on a randomly picked MDB and pass the message. There is no need and use of any other methods - isn't it?
    Cheers,
    Sudhaker Raj
    http://thej2ee.com

  • JMS Consume message array

    Hello everybody,
    I'm using Oracle SOA Suite 11. I have some transactions and create an object like
    <data>
    <id>1</id>
    <value>aa</value>
    <a>aa</a>
    </data>
    I put many of these object to JMS Queue.
    In another process I want to take set of these objects from queue and put these data to db. I don't want to take one by one. How can I consume set of these objects from JMS Queue ?
    Thanks,
    Best Regards,

    Hi,
    Can be done with Oracle AQ and Websphere MQ but not with standard JMS as far as I know...
    Receiving messages in a WebSphere MQ message group
    http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fac25700_.htm
    Oracle Streams AQ Operations
    http://docs.oracle.com/cd/B19306_01/server.102/b14257/aq_opers.htm#BCFBJHCG
    There is also message groups for Apache Active MQ (Free?), but not sure if covers what you need...
    http://activemq.apache.org/message-groups.html
    Please let me know if this was helpful...
    Cheers,
    Vlad

  • OSB JMS Consumer

    Hi Friends,
    I have a requirement where I need to develop a OSB service which will:
    1. Poll Message from JMS (A specific schema element)
    2. Write this message to DB using routing (JCA adapter, send schema as is to business service)
    I am able to poll JMS message in OSB, however while routing it to business service that will write to DB using JCA adapter I am facing following error.
    OSB Replace action failed updating variable "body": Error parsing XML: {err}FORG0005: expected exactly one item, got 0 items
    Although I can print the JMS message by "$body/." meaning I have an element.
    Could you please shade some light on this?
    Thanks,
    Sachin

    Are you mediator for schema transformation? This error is faced mostly when source request schema fails to map destination schema (DB interface).

  • My JMS Consumer receives messages at uneven time gaps

    I have two applications, say APP1 and APP2. Both of these are connected through JMS Bridges.
    APP1 is hosting the PUSH bridge to APP2.
    There was an uneven delay in the messages that are received at APP2.
    I have checked the logs and found that there is a time gap between APP1 posting the message on the JMS queue and APP2 receiving it.
    This is not happening for all the messages that are moving in between these applications, but it is consistently reoccuring.
    Many of the messages are received within 2Secs at APP2.But some of the messages are taking upto 30secs to show up at APP2.
    There is no network load between these applications.
    I want to understand why this is happening? and how to resolve this?
    Could anyone help me out?
    Thanks,
    Aditya
    Edited by: Aditya@AU on Jun 11, 2009 11:59 PM

    Are you using OpenMQ (also known as Glassfish MQ, Java System Message Queue) ? If yes, are you using OpenMQ 4.4's JMS Bridge feature ?

  • Consume JMS Unit-Of-Work message through OSB proxy service

    Hi,
    Anyone know how to consume a JMS Unit-Of-Work (UOW) message using an OSB Proxy Service of JMS type?
    I can submit a unit-of-work JMS message (which consists of multiple constituent messages) using an OSB proxy & business service combination and setting the UOW transport headers appropriately. I can also separately produce and consume Java objects via a JMS queue where the consumption is done via OSB proxy (of java request message type), but these aren't UOW messages.
    Apparently as soon as it is a UOW message then the message consumed is an ObjectMessage ArrayList and one has to use the "Java" request message type for the JMS consumer proxy, but I'm unsure of how to create the concurrent client jar to use it in the same proxy service's JMS transport configuration in order to output the ObjectMessage ArrayList (UOW message). 
    Ideally I'd like to consume a single UOW XML message via an OSB JMS proxy service.
    Any pointers would be appreciated.
    R

    Finally got this working!!
    For posterity: Needed to insert Java Object JMS messages on the OSB JMS producer (Business Service) side with correct UOW jms transport header set in route node. Then consume the Unit-Of-Work message on the other side via jms proxy service with "java" request message type, with appropriate jar containing the Object class as the "Client jar" in the JMS Transport configuration. In the same JMS consumer proxy I had to do a java callout, passing the contents of $body, using java.util.ArrayList and javax.jms.ObjectMessage, as input into a method (.. decodeJavaMessage(ArrayList<ObjectMessage> ...)). In this java callout class you can get to each individual ObjectMessage via typecasting the get() method on the Arraylist to (ObjectMessage) and then just typecast the getObject() on this Objectmessage into your original Java Class (same as what you inserted onto queue originally).
    Hope this saves someone some time in future!

  • Distributed JMS Topic consumer reconnection... How???

    Hi!
              I'm trying to develop a JMS consumer that is connected to a distributed topic located in a 2-machine cluster. The client knows the address of the two servers, so the idea is to catch the JMSException (JMS destination shutdown) with a ExceptionListener (or something like that) if one server fails, and then try to connect to the other one...
              I've been browsing Weblogic docs but I didn't find any example for this.
              How do I implement my consumer? Is there any other approach to my problem?
              Thanks a lot!
              Jorge Granado
              

              Hi Tom:
              Finally I've been able to reconnect my consumer. I took a "clean" one (mine was
              getting too complicated :-) and it worked. I took the TopicReceive sample from
              bea samples and added a "reconnect" method following your recommendations about
              reusing existing ConnectionFactory. I'm beginning to think I was forgetting to
              start the connection, but anyway now it works great. Thanks a lot!
              BTW, could you explain to me how can I change (if possible) in "real-time" the
              MessageSelector properies for an existing consumer? Suppose that I have a consumer
              connected to a topic with a selector like "priority >=2" and I'd like to change
              it to "priority >=3" without restarting the application... Is it possible??
              Thanks again
              Jorge
              Tom Barnes <[email protected].bea.com>
              wrote:
              >Seems like your following the recipe correctly. :-)
              >
              >Could you try this on a platform other than AIX?
              >
              >Are you using the same version of WL jars for client and server?
              >
              >Are you using the new 8.1 "thin client" jars for the client? If
              >so try using weblogic.jar instead (don't put both kinds
              >of jars in your classpath).
              >
              >
              >"Jorge Granado" jorge.granadoATatosorigin.com wrote:
              >
              >> Hi again!
              >>
              >> Well, maybe there's something I don't get, but what I'm trying to do
              >is:
              >>
              >> -Create a topic consumer and connect it to the distributed topic (standard
              >process...)
              >> -Shutdown the server where the consumer is connected...
              >> -Capture the exception
              >> -Close the topic connection
              >> -Create a new one reusing existing topic connection factory (as you
              >told me there's
              >> no need to make a lookup again...)
              >> -Create a topic session over the new topic connection
              >> -Create a subscriber
              >> -Read messages... :-)
              >>
              >> But in 5th step what I get is a new Exception... "Error creating connection
              >to
              >> the server"
              >>
              >> I'm sure I've misunderstood something... :-(
              >>
              >> Thanks again for your patience :-)
              >>
              >> Jorge
              >>
              >> Tom Barnes <[email protected].bea.com>
              >> wrote:
              >>
              >>>No, I don't know what is happening. I wonder if you are
              >>>somehow multi-threading the session? Try closing
              >>>the old connection before reconnecting. And note that
              >>>there is no need to lookup up the CF again, as the old CF
              >>>should work fine (it is a clusterable RMI reference,
              >>>so it can survive failures).
              >>>
              >>>"Jorge Granado" jorge.granadoATatosorigin.com wrote:
              >>>
              >>>>Now I've created a consumer, and when catching the session exception
              >>>
              >>>and try to
              >>>
              >>>>reconnect to another WL instance, when I make the JNDI lookup to my
              >>>
              >>>connection
              >>>
              >>>>factory, instead of getting a weblogic.jms.client.JMSConnectionFactory
              >>>
              >>>what I
              >>>
              >>>>get is an weblogic.jms.frontend.FEConnectionFactory_812_WLStub_812_WLStub.
              >>>
              >>>>This causes a ClassCastException and I can't connect to it. Any idea
              >>>
              >>>what is happening?
              >>>
              >>>>Thanx again :-)
              >>>>
              >>>> Jorge
              >>>>
              >>>>BTW, I'm using WL 8.1 SP2 (AIX platform)
              >>>>
              >>>>Tom Barnes <[email protected].bea.com>
              >>>>wrote:
              >>>>
              >>>>
              >>>>>Hi Jorge,
              >>>>>
              >>>>>Registering exception-listeners and retrying on failure
              >>>>>seems like the right approach. I'm not sure what you
              >>>>>are looking for in an example.
              >>>>>
              >>>>>For more information on JMS clustering, I recommend reading
              >>>>>the JMS Performance Guide white-paper on dev2dev:
              >>>>>
              >>>>>http://dev2dev.bea.com/technologies/jms/index.jsp
              >>>>>
              >>>>>Tom, BEA
              >>>>>
              >>>>>P.S. One thing to realize is that WebLogic distinguishes between
              >>>>>"session" exceptions and "ccnnection" exceptions. Shutting
              >>>>>down JMS without shutting down a client connection's WL
              >>>>>server only generates session exceptions, as the connection
              >>>>>is still valid. To monitor session exceptions, register
              >>>>>a session exception listener (see the weblogic.jms.extensions
              >>>>>package).
              >>>>>
              >>>>>Jorge Granado wrote:
              >>>>>
              >>>>>
              >>>>>
              >>>>>>Hi!
              >>>>>>
              >>>>>>I'm trying to develop a JMS consumer that is connected to a distributed
              >>>>>
              >>>>>topic located in a 2-machine cluster.
              >>>>>
              >>>>>
              >>>>>>The client knows the address of the two servers, so the idea is
              >to
              >>>>>
              >>>>>catch the JMSException (JMS destination shutdown)
              >>>>>
              >>>>>with a ExceptionListener (or something like that) if one server fails,
              >>>>>
              >>>>>and then try to connect to the other one...
              >>>>>
              >>>>>
              >>>>>>I've been browsing Weblogic docs but I didn't find any example for
              >>>>>
              >>>>>this.
              >>>>>
              >>>>>
              >>>>>>How do I implement my consumer? Is there any other approach to my
              >>>
              >>>problem?
              >>>
              >>>>>>Thanks a lot!
              >>>>>>
              >>>>>> Jorge Granado
              >>>>>
              >>
              >
              

  • Producer and Consumer  JMS Connections

    Hello,
    I am writing a JMS provider and I notice that Flex creates a
    JMS connection for a Producer and another JMS connection for a
    Consumer in my test application. Is this normal behavior for Flex
    or do I have a problem with my provider that is causing this?
    Thanks,
    Chris Shafer, George Weiss Associates

    If your goal is to have one JMS Consumer which receives
    messages and broadcasts them to Flex clients, you can do this
    without using the JMS adapter. Write some Java code either as a
    "message driven bean" or using the JMS apis directly to grab the
    JMS messages. You can then convert these messages to flex messages
    and send them to an ActionScriptAdapter flex messaging destination.
    See the Feed.java sample for the code necessary to do this. The
    trickiest part of this is getting the JMS messages in the first
    place. We are working on packaging up our JMS consumer apis so you
    can do this more easily in a future release.

  • Netweaver JMS issues

    I have a stand alone enterprise java application (not an EJB) that currently runs on several servers (one application per server).  This application allows us to do parellel processing for performance reasons.  Another important distinction is that we use a JMS Point-to-Point model with multiple consumers receiving messages off a single queue.  The application is basically a JMS asynchronous message consumer, meaning it implements the javax.jms.MessageListener interface so it has the onMessage method. 
    Currently I have been using JBoss 4.0 as our JMS Provider.  I have had no issues for awhile now with multiple consumers receiving messages off a single queue.  Recently, I have been asked to move to use Netweaver's JMS provider.  I was successful in changing the configurations and sending and receiving messages using the Netweaver JMS provider.  However, it appears that I cannot get multiple consumers to receive messages off a single queue.  I can successfully launch off several of our applications on several servers all listening to the single queue and I can also put multiple messages into that single queue.  However, it appears that only one message consumer can receive a message off the single queue at one time (all the other message consumers seem to wait until the one message is done processing).
    Again, I changed the configurations back to JBoss and everything worked fine (I also did it for OpenJMS and it worked as well).  My quess is that I either did not setup something correctly or I need to make some kind of administative or jms setting.  Any help would be greatly appreciated.
    Just a side note.  If I poll for messages on the single queue instead of using the onMessage() method with multiple message consumers I am able to run parellel processes.

    We are talking P2P with load balancing and scaling for throughput. Moving this to a pub/sub is a bad performance move as typically pub/sub is more time and resource intensive than P2P.
    Just make sure that in your JNDI definition your queue has been marked as shareable. As the JMS spec goes it does not help if the provider side of the queue has the queue marked as not shared. As well if the app reading from the queue through the listener has it opened in exclusive mode all the others are waiting.
    This means some investigation may be needed.
    A) JNDI verify JMSDestination is defined as shareable
    b) programming wise verify that putting the listener to the queue does not make the mode opened as exclusive.
    Typically you would have implemented an MDB. You need to check the number of instances that you have defined for the MDB. As well you may define the same destination with multiple JNDI names and thus set different MDBs on the same queue (but same MDB class).
    There is a world of solutions out there. Pick the one that works for you
    Enjoy
    Message was edited by: F.J. Brandelik
    SAP's implementation of JMS persistence is through a Database. Make sure locking happens at the record level and not at the page level.

  • Message-driven beans Vs JMS

    Hi,
    what does the bean technology add to the JSM by using the message driven beans instead of just using the regular asynchronus JMS?

    that's my question when and why should we chose:
    1. simple asynchronous JMS
    2. message-driven beansYou presumably mean:
    1. "simple" JMS client
    2. MDB JMS client
    That'll depend first on your existing architecture.You'll go for the second option if you're already using EJB , as to leverage your existing IT investment.
    Second, the EJB container gives you a number of services, so you don't have to worry about those yourself: life cycle management, scalability, transaction support, concurrency etc..
    With a plain JMS client, you'll have to handle concurrency yourself, for example, by spawning different JMS instances.
    If you're using an EJB container, that container will instantiate multiple MDB instances to handle multiple messages simultaneously.
    OTOH, The EJB contract implies some limitations of use. For example, an MDB can be associated with only one queue or topic. So if you need a JMS client to be able to handle multiple queues ot topics, you'll need to create multiple MDB clients, or go for a simple non-MDB JMS consumer.

  • JMS Dequeue not working after upgrade from 11gR1 to 11gR2

    Our database was migrated to a new database with new hardware running 11gR2
    enqueue appears to be working as the queue table just grows and grows
    However, my JMS async subscriber is never getting messaged.
    Is there any logical reason for this?
    in select * from all_queues my queue does show ENQUEUE and DEQUEUE enabled
    also
    the user that makes the subscription has DEQUEUE grant priviledge
    Is there anything else that is needed for this to work?
    I have already recreated the queue and queue table and ended up in the same place with no JMS consumer being able to consume.
    when enabling trace on JMS I see
    Caused by: oracle.jms.AQjmsException: JMS-122: Internal error Corrupted message
         at oracle.jms.AQjmsError.throwEx(AQjmsError.java:334)
         at oracle.jms.AQjmsUtil.getTextData(AQjmsUtil.java:718)
         at oracle.jms.AQjmsTextMessage.readGenMessageContainer(AQjmsTextMessage.java:322)
         at oracle.jms.AQjmsTextMessage.<init>(AQjmsTextMessage.java:172)
         at oracle.jms.AQjmsConsumer.dequeue(AQjmsConsumer.java:2481)
    What incompatibilities exist b/w 11gR1 and 11gR2 ... my client is using aqapi 11.1
    Edited by: steffi on Jan 14, 2013 3:14 PM

    It's looking like it was a missing jar in this case the orai18n.jar
    Is there any kind of release notes for how to move working AQ from 11gR1 to 11gR2?

  • JMS ReplyTo - RequestQ and ResponseQ are in different Managed Servers

    Hopefully this brief summary explains the issue:
    1) Two managed servers, ServerA and ServerB
    2) ServerA has JMSServerA with ResponseQ (hosted at t3:\\A)
    3) ServerB has JMSServerB with RequestQ (hosted at t3::\\B)
    a) Standalone JMS client sends message to ServerB RequestQ (t3:\\B) with replyTo field set to ResponseQ hosted by ServerA (t3:\\A)
    b) Standalone JMS consumer onMessage() recieves message, extracts replyTo field, uses its Session (that it created off a connection to JMSServerB (t3:\\B), not t3::\\A)
    and so when the replyTo message is sent, i.e.
    producer = session.createProducer( replyToDestination); // session is created from a connection to B, not A
    producer.send( replyMessage )
    an exception is generated that says "no available router to destination, . . . "
    How is the connection info supposed to be avail to consumer to know how to create a session on a connection to A so that the replyTo destination hosted by A is reachable?
    (t3:\\A and t3::\B are notional so you get the idea that different physical connections are being used)
    thanks for any insight
    -mike

    Hi Mike,
    It is generally a good goal to try and design applications to be made stateless, so that responses can be processed by any JVM.
    Alternatively, if the response message is ephemeral -- only needed for the life of the client JVM - then I would consider using dynamically created JMS temporary queues instead of configured queues, with each client JVM creating a temporary queue when it starts.
    Finally, if the responses must be long-lived, and your app can't be stateless, then, in general the easiest approach with a simple distributed response queue is to change the application to create consumers on each member. You can try the co-location approach that you mentioned if its known the app will always be running co-located with the distributed destination member that it works with - this type of approach tends to be incompatible with "service migration" style HA.
    Hope this helps,
    Tom

Maybe you are looking for