Jms queue clustering

hi,
          Connection to the queue is not establised after a crash of one node
          I'd be grateful if anyone confirmed that my jms clustered queues are configured and handled correctly from API point of view.
          I have:
          - created connection factory targeted to all servers in a cluster
          - all servers in a cluster have its own JMS server
          - created distributed queue targeted to all servers in a cluster
          In a program
          - i lookup one server within a cluster via JNDI and connect to the queue
          - start connection both for consumer and producer
          - consumer and producer implement ExceptionListener
          - in onException method I create a new connection to the second node

hi,
          Connection to the queue is not establised after a crash of one node
          I'd be grateful if anyone confirmed that my jms clustered queues are configured and handled correctly from API point of view.
          I have:
          - created connection factory targeted to all servers in a cluster
          - all servers in a cluster have its own JMS server
          - created distributed queue targeted to all servers in a cluster
          In a program
          - i lookup one server within a cluster via JNDI and connect to the queue
          - start connection both for consumer and producer
          - consumer and producer implement ExceptionListener
          - in onException method I create a new connection to the second node

Similar Messages

  • JMS in clustered weblogic

    Is there any intention of including support for JMS queues clustering? If so, would it include clustering of messages after a server shutdown?
    Thanks

    Hi Ignacio,
    We do not support the JMS API from Coherence. That is one of the APIs that we currently defer to the application server providers, such as BEA. Unfortunately, BEA WebLogic does not currently support Coherence for its clustered queues, but I believe in WebLogic 8.1 you can manually fail-over BEA WebLogic queues in a cluster.
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    Coherence: Easily share live data across a cluster!

  • Data retrieval from JMS queue using single SOA composite in a clustered env

    Hi,
    I have following situation:
    1) A requester SOA composite (Composite1)is reading data from a File
    2) Mediator is routing data received from Composite1 and writing in a JMS queue.
    3) A provider composite (Composite2) is reading from the JMS queue.
    Both Composite1 and Composite2 is deployed in a clustered environment.
    Problem is Composite2 is not able to read data sequentially from JMS Queue sometime (for example out of 30000 transactions its failing once). Here it's a queue and only one producer and only one consumer is there.
    What may cause this issue? I thought a single producer and single consumer on a queue will guarantee FIFO retrieval . Could you please advise where may be the gap?
    Thanks
    Edited by: user1054373 on Sep 18, 2012 11:29 PM

    Hi,
    I thought a single producer and single consumer on a queue will guarantee FIFO retrieval Java Message Service Specification does not guarantee ordered message delivery when applications use distributed queues...
    Using Weblogic Message Unit-of-Order may solve your issue...
    http://docs.oracle.com/cd/E23943_01/web.1111/e13727/uoo.htm#JMSPG389
    Hope this helps...
    Cheers,
    Vlad

  • Single MDB on a clustered JMS queues(2)

    I have 2 JMS servers in a cluster and each server has a JMS queue, which forms the distributed destination. Now I need a MDB to listen on both these queues. Is it possible?
    Thanks
    -Ankur

    Yes - thats the usual purpose of distributed queues, to allow consumers to consume from the distributed queue (wherever its hosted).
    Though distributed destinations are JMS provider specific so do check your providers documentation on using distributed queues. In some providers, like ActiveMQ, distributed queues look and act just like regular queues so they just work from inside a JMS client or MDB.
    James
    http://logicblaze.com/

  • HowTo:Publish Msg to JMS queue deployed in a Weblogic Cluster from a client

    Hello All-
    I am new to Weblogic and need help from this forum. Forgive me for my ignorance. I am learning.
    Below is a brief about the context and the issues that we are facing:
    Background
    =======
    1. We have Oracle Service Bus (OSB) installed on top of Oracle Weblogic Server (ver 10.3). In OSB we have developed a proxy service that listens to a JMS queue for an incoming message
    2. The Weblogic environment is a cluster having 2 managed servers listening to different ports and it is front-ended by a Apache Load Balancer.
    3. Our requirement is to post an XML message from a Java client to the JMS queue which will then initiate the proxy service deployed. We are using t3 protocol to post the message from the client to the JMS queue
    Issue
    ====
    1. To post an XML message from the client, how do we give the address of the JMS queue in the clustered environment to enable failover/loadbalancing if one managed server goes down. I understand from your earlier posts in this forum that directly hitting the JMS queue on a particular managed server will not enable failover/loadbalancing in case one of them goes down
    2. Do we need to modify any config file in the Apache Proxy Plugin?
    3. Do we need to provide the address of the Apache proxy in the client to send the message?
    Kindly clarify and let me know me know if you need any additional information.
    Greatly appreciate your help!!!
    Regards,
    Dibya

    Hi Dibya,
    Please refer to : http://weblogic-wonders.com/weblogic/2010/05/13/apache-proxy-as-static-content-repository/#comment-1379
    Thanks
    Jay SenSharma

  • Phantom JMS Queues with WLST

    Hello,
    I just started using WLST, and I've written a rather long script that creates
    a JMS server and some queues, among other things.
    I based my code on the JMS server creation example, and it works perfectly as
    long as the JMS server doesn't already exist. If it does, I get output like this:
    JMS Server already exists.
    [Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
    *** JMSQueue with name 'myAuditQ' has been created successfully.
    JMS destination is already parented
    Setting Type
    Setting JNDIName
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "loaddm.py", line 16, in doit
    File "setupServer.py", line 274, in ?
    File "<iostream>", line 145, in set
    WLSTException: 'Error occured while performing set : Unknown Error. Use dumpStack()
    to view the error stack trace'
    The line I put the *** by is interesting because the queue that was just created
    already exists, yet the create() does not throw any exceptions.
    Once this happens, I can do something like the following to add to the confusion:
    wls:/mydomain/config> cd('JMSQueue/myAuditQ')
    wls:/mydomain/config/JMSQueue/myAuditQ> ls()
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "<iostream>", line 176, in ls
    WLSTException: 'Error occured while performing ls : Could not find an MBean
    instance while doing getAttribute. Use dumpStack() to view the error stack trace'
    wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
    javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
    ava:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
    at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
    nInfo(Unknown Source)
    at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
    ormationHandler.java:754)
    at weblogic.management.scripting.InformationHandler.la(InformationHandle
    r.java:538)
    at weblogic.management.scripting.InformationHandler.ls(InformationHandle
    r.java:146)
    at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
    :387)
    The code that generates this error is like this:
    try:
    r=create(cNode+'js','JMSServer')
    except Exception:
    print "JMS Server already exists."
    r=getTarget('JMSServer/'+cNode+'js')
    if clustered:
    target=getTarget('Server/'+cNode)
    try:
    r.addTarget(target)
    except Exception:
    print "JMS server is already targeted."
    print r
    for dest,attr in jms.items():
    try:
    q=create(dest+suffix,'JMS'+attr['Type'])
    except Exception:
    print "JMS Destination already exists."
    q=
    getTarget('JMS'+attr['Type']+'/'+dest+suffix)
    try:
    q.setParent(r)
    except Exception:
    print "JMS destination is already parented"
    cd('JMS'+attr['Type']+'/'+dest+suffix)
    for att, val in attr.items():
    print "Setting "+att
    if att != 'Type':
    set(att,val)
    cd('/')

    This seems to be a larger problem that I initially thought. Ideally
    weblogic server will not allow you to create an MBean with same name
    since it will collide with the unique object name for that MBean in the
    MBeanServer. From your posting I did not understand if you were able to
    create an MBean with the same name and did not get a
    InstanceAlreadyExists Exception. If you did get it then seems like there
    is a problem in the way the server is persisting the config.xml. There
    shouldn't be duplicate entries. Please file a support case [email protected].
    Thanks,
    -satya
    Justin Dossey wrote:
    (top replying because of the long post)
    It looks like this was caused by Weblogic 8 allowing WLST to create invalid domain
    configuration (config.xml). I opened config.xml up in an editor and found that
    even though I had been using Try: create(foo)/ except Exception: (getTarget(foo)),
    there were (many) duplicate entries for MBeans in config.xml. For instance, one
    Server was in there four times. Almost every Server had four or more SSL entries
    in config.xml. There were many unparented JMS Queues defined, as well-- this
    is what I believe caused my problem.
    So why does the try create actually create duplicate when an instance already
    exists?
    "Justin Dossey" <[email protected]> wrote:
    Hello,
    I just started using WLST, and I've written a rather long script that
    creates
    a JMS server and some queues, among other things.
    I based my code on the JMS server creation example, and it works perfectly
    as
    long as the JMS server doesn't already exist. If it does, I get output
    like this:
    JMS Server already exists.
    [Caching Stub]Proxy for mydomain:Name=myjs,Type=JMSServer
    *** JMSQueue with name 'myAuditQ' has been created successfully.
    JMS destination is already parented
    Setting Type
    Setting JNDIName
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "loaddm.py", line 16, in doit
    File "setupServer.py", line 274, in ?
    File "<iostream>", line 145, in set
    WLSTException: 'Error occured while performing set : Unknown Error. Use
    dumpStack()
    to view the error stack trace'
    The line I put the *** by is interesting because the queue that was just
    created
    already exists, yet the create() does not throw any exceptions.
    Once this happens, I can do something like the following to add to the
    confusion:
    wls:/mydomain/config> cd('JMSQueue/myAuditQ')
    wls:/mydomain/config/JMSQueue/myAuditQ> ls()
    Traceback (innermost last):
    File "<input>", line 1, in ?
    File "<iostream>", line 176, in ls
    WLSTException: 'Error occured while performing ls : Could not find
    an MBean
    instance while doing getAttribute. Use dumpStack() to view the error
    stack trace'
    wls:/mydomain/config/JMSQueue/myAuditQ> dumpStack()
    javax.management.InstanceNotFoundException: mydomain:Name=myAuditQ,Type=JMSQueue
    at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.j
    ava:108)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:138)
    at weblogic.management.internal.RemoteMBeanServerImpl_812_WLStub.getMBea
    nInfo(Unknown Source)
    at weblogic.management.scripting.InformationHandler.getAllAttributes(Inf
    ormationHandler.java:754)
    at weblogic.management.scripting.InformationHandler.la(InformationHandle
    r.java:538)
    at weblogic.management.scripting.InformationHandler.ls(InformationHandle
    r.java:146)
    at weblogic.management.scripting.WLScriptContext.ls(WLScriptContext.java
    :387)
    The code that generates this error is like this:
    try:
    r=create(cNode+'js','JMSServer')
    except Exception:
    print "JMS Server already exists."
    r=getTarget('JMSServer/'+cNode+'js')
    if clustered:
    target=getTarget('Server/'+cNode)
    try:
    r.addTarget(target)
    except Exception:
    print "JMS server is already targeted."
    print r
    for dest,attr in jms.items():
    try:
    q=create(dest+suffix,'JMS'+attr['Type'])
    except Exception:
    print "JMS Destination already exists."
    q=
    getTarget('JMS'+attr['Type']+'/'+dest+suffix)
    try:
    q.setParent(r)
    except Exception:
    print "JMS destination is already parented"
    cd('JMS'+attr['Type']+'/'+dest+suffix)
    for att, val in attr.items():
    print "Setting "+att
    if att != 'Type':
    set(att,val)
    cd('/')

  • JMS/Queue cluster question

              Hi
              I have some very basic cluster questions on JMS Queues. Lets say Q1>I have 3 WLS
              in cluster. I create the queue in only WLS#1 - then all the other WLS (#2 and #3)
              should have a stub in their JNDI tree for the Queue which points to the Queue in
              #1 - right? Basically what I am trying to acheive is to have the queue in one server
              and all the other servers have a pointer to it - I beleive this is possible in WLS
              cluster - right??
              Q2> Is there any way a client to the queue running on a WLS can tell whether the
              Queue handle its using is local (ie in the same server) or remote. Is the API createQueue(./queuename)
              going to help here??
              Q3>Is there any way to create a Queue dynamically - I guess JMX is the answer -right?
              But I will take this question a bit further - lets say Q1 answer is yes. In this
              case if server #1 crashes - then #2 and #3 have no Queues. So if they try to create
              a replica of the Queue (as on server#1) - pointing to the same filestore - can they
              do it?? - I want only one of them to succed in creating the Queue and also the Queue
              should have all the data of the #1 Queue (1 to 1 replica).
              All I want is the concept of primary and secondary queue in a cluster. Go on using
              the primary queue - but if it fails use the 2ndry queue. Kind of HttpSession replication
              concept in clusters. My cluster purpose is more for failover rather than loadbalancing.
              TIA
              Anamitra
              

              Anamitra wrote:
              > Hi Tom
              > 7.0 is definitely an option for me. So lets take the scenarion on case of JMS cluster
              > and 7.0.
              >
              > I do not understand what u mean by HA framework?
              An HA framework is a third party product that can be used to automatically restart a failed server
              (perhaps on a new machine), and that will guarantee that the same server isn't started in two
              different places (that would be bad). There are few of these HA products, "Veritas" is one of
              them. Note that if you are using JMS file stores or transactions, both of which depend on the disk,
              you must make sure that the files are available on the new machine. One approach to this is to use
              what is known as a "dual-ported" disk.
              > If I am using a cluster of 3 WLS
              > 7.0 servers - as u have said I can create a distrubuted Queue with a fwd delay attribute
              > set to 0 if I have the consumer only in one server say server #1.
              > But still if the server #1 goes down u say that the Queues in server #2 and server
              > #3 will not have access to the messages which were stuck in the server #1 Queue when
              > it went down -right?
              Right, but is there a point in forwarding the messages to your consumer's destination if your
              application is down?
              If your application can tolerate it, you may wish to consider allowing multiple instances of it (one
              per physical destination). That way if something goes down, only those messages are out-of-business
              until the application comes back up...
              >
              >
              > Why cant the other servers see them - they all point to the same store right??
              > thanks
              > Anamitra
              >
              Again, multiple JMS servers can not share a store. Nor can multiple stores share a file. That will
              cause corruption. Multiple stores CAN share a database, but can't use the same tables in the
              database.
              Tom
              >
              > Tom Barnes <[email protected]> wrote:
              > >
              > >
              > >Anamitra wrote:
              > >
              > >> Hi
              > >> I have some very basic cluster questions on JMS Queues. Lets say Q1>I
              > >have 3 WLS
              > >> in cluster. I create the queue in only WLS#1 - then all the other WLS
              > >(#2 and #3)
              > >> should have a stub in their JNDI tree for the Queue which points to the
              > >Queue in
              > >> #1 - right?
              > >
              > >Its not a stub. But essentially right.
              > >
              > >> Basically what I am trying to acheive is to have the queue in one server
              > >> and all the other servers have a pointer to it - I beleive this is possible
              > >in WLS
              > >> cluster - right??
              > >
              > >Certainly.
              > >
              > >>
              > >> Q2> Is there any way a client to the queue running on a WLS can tell whether
              > >the
              > >> Queue handle its using is local (ie in the same server) or remote. Is
              > >the API createQueue(./queuename)
              > >> going to help here??
              > >
              > >That would do it. This returns the queue on the CF side of the established
              > >Connection.
              > >
              > >>
              > >> Q3>Is there any way to create a Queue dynamically - I guess JMX is the
              > >answer -right?
              > >> But I will take this question a bit further - lets say Q1 answer is yes.
              > >In this
              > >> case if server #1 crashes - then #2 and #3 have no Queues. So if they
              > >try to create
              > >> a replica of the Queue (as on server#1) - pointing to the same filestore
              > >- can they
              > >> do it??
              > >> - I want only one of them to succed in creating the Queue and also the
              > >Queue
              > >> should have all the data of the #1 Queue (1 to 1 replica).
              > >
              > >No. Not possible. Corruption city.
              > >Only one server may safely access a store at a time.
              > >If you have an HA framework that can ensure this atomicity fine, or are
              > >willing
              > >to ensure this manually then fine.
              > >
              > >>
              > >>
              > >> All I want is the concept of primary and secondary queue in a cluster.
              > >Go on using
              > >> the primary queue - but if it fails use the 2ndry queue. Kind of HttpSession
              > >replication
              > >> concept in clusters. My cluster purpose is more for failover rather than
              > >loadbalancing.
              > >
              > >If you use 7.0 you could use a distributed destination, with a high weight
              > >on the destination
              > >you want used most. Optionally, 7.0 will automatically forward messages
              > >from distr. dest
              > >members that have no consumers to those that do.
              > >
              > >In 6.1 you can emulate a distributed destination this way (from an upcoming
              > >white-paper):
              > >Approximating Distributed Queues in 6.1
              > >
              > >If you wish to distribute the destination across several servers in a cluster,
              > >use the distributed
              > >destination features built into WL 7.0. If 7.0 is not an option, you can
              > >still approximate a simple
              > >distributed destination when running JMS servers in a &#8220;single-tier&#8221;
              > configuration.
              > > Single-tier indicates
              > >that there is a local JMS server on each server that a connection factory
              > >is targeted at. Here is a
              > >typical scenario, where producers randomly pick which server and consequently
              > >which part of the
              > >distributed destination to produce to, while consumers in the form of MDBs
              > >are pinned to a particular
              > >destination and are replicated homogenously to all destinations:
              > >
              > >· Create JMS servers on multiple servers in the cluster. The servers will
              > >collectively host the
              > >distributed queue &#8220;A&#8221;. Remember, the JMS servers (and WL servers) must
              > >be named differently.
              > >
              > >· Configure a queue on each JMS server. These become the physical destinations
              > >that collectively become
              > >the distributed destination. Each destination should have the same name
              > >"A".
              > >
              > >· Configure each queue to have the same JNDI name &#8220;JNDI_A&#8221;, and also
              > take
              > >care to set the destination&#8217;s
              > >&#8220;JNDINameReplicated&#8221; parameter to false. The &#8220;JNDINameReplicated&#8221;
              > parameter
              > >is available in 7.0, 6.1SP3
              > >or later, or 6.1SP2 with patch CR061106.
              > >
              > >· Create a connection factory, and target it at all servers that have a
              > >JMS server with &#8220;A&#8221;.
              > >
              > >· Target the same MDB pool at each server that has a JMS server with destination
              > >&#8220;A&#8221;, configure its
              > >destination to be &#8220;JNDI_A&#8221;. Do not specify a connection factory URL
              > when
              > >configuring the MDB, as it can
              > >use the server&#8217;s default JNDI context that already contains the destination.
              > >
              > >· Producers look up the connection factory, create a connection, then a
              > >session as usual. Then producers
              > >look up the destination by calling javax.jms.QueueSession.createQueue(String).
              > > The parameter to
              > >createQueue requires a special syntax, the syntax is &#8220;./<queue name>&#8221;,
              > so
              > >&#8220;./A&#8221; works in this example.
              > >This will return a physical destination of the distributed destination that
              > >is local to the producer&#8217;s
              > >connection. This syntax is available on 7.0, 6.1SP3 or later, and 6.1SP2
              > >with patch CR072612.
              > >
              > >This design pattern allows for high availability, as if one server goes
              > >down, the distributed destination
              > >is still available and only the messages on that one server become unavailable.
              > > It also allows for high
              > >scalability as speedup is directly proportional to the number of servers
              > >on which the distributed
              > >destination is deployed.
              > >
              > >
              > >
              > >>
              > >> TIA
              > >> Anamitra
              > >
              > >
              > ><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
              > ><html>
              > >Anamitra wrote:
              > ><blockquote TYPE=CITE>Hi
              > ><br>I have some very basic cluster questions on JMS Queues. Lets say Q1>I
              > >have 3 WLS
              > ><br>in cluster. I create the queue in only WLS#1 - then all the other WLS
              > >(#2 and #3)
              > ><br>should have a stub in their JNDI tree for the Queue which points to
              > >the Queue in
              > ><br>#1 - right?</blockquote>
              > >Its not a stub. But essentially right.
              > ><blockquote TYPE=CITE>Basically what I am trying to acheive is to have
              > >the queue in one server
              > ><br>and all the other servers have a pointer to it - I beleive this is
              > >possible in WLS
              > ><br>cluster - right??</blockquote>
              > >Certainly.
              > ><blockquote TYPE=CITE>
              > ><br>Q2> Is there any way a client to the queue running on a WLS can tell
              > >whether the
              > ><br>Queue handle its using is local (ie in the same server) or remote.
              > >Is the API createQueue(./queuename)
              > ><br>going to help here??</blockquote>
              > >That would do it. This returns the queue on the
              > >CF side of the established Connection.
              > ><blockquote TYPE=CITE>
              > ><br>Q3>Is there any way to create a Queue dynamically - I guess JMX is
              > >the answer -right?
              > ><br>But I will take this question a bit further - lets say Q1 answer is
              > >yes. In this
              > ><br>case if server #1 crashes - then #2 and #3 have no Queues. So if they
              > >try to create
              > ><br>a replica of the Queue (as on server#1) - pointing to the same filestore
              > >- can they
              > ><br>do it?? <br>
              > >- I want only one of them to succed in creating the Queue and also the
              > >Queue
              > ><br>should have all the data of the #1 Queue (1 to 1 replica).</blockquote>
              > >No. Not possible. Corruption city.
              > ><br>Only one server may safely access a store at a time.
              > ><br>If you have an HA framework that can ensure this atomicity fine, or
              > >are willing
              > ><br>to ensure this manually then fine.
              > ><blockquote TYPE=CITE>
              > ><p>All I want is the concept of primary and secondary queue in a cluster.
              > >Go on using
              > ><br>the primary queue - but if it fails use the 2ndry queue. Kind of HttpSession
              > >replication
              > ><br>concept in clusters. My cluster purpose is more for failover rather
              > >than loadbalancing.</blockquote>
              > >If you use 7.0 you could use a distributed destination, with a high weight
              > >on the destination
              > ><br>you want used most. Optionally, 7.0 will automatically
              > >forward messages from distr. dest
              > ><br>members that have no consumers to those that do.
              > ><p><i>In 6.1 you can emulate a distributed destination this way (from an
              > >upcoming white-paper):</i>
              > ><br><i>Approximating Distributed Queues in 6.1</i><i></i>
              > ><p><i>If you wish to distribute the destination across several servers
              > >in a cluster, use the distributed destination features built into WL 7.0.
              > >If 7.0 is not an option, you can still approximate a simple distributed
              > >destination when running JMS servers in a &#8220;single-tier&#8221; configuration.
              > >Single-tier indicates that there is a local JMS server on each server that
              > >a connection factory is targeted at. Here is a typical scenario,
              > >where producers randomly pick which server and consequently which part
              > >of the distributed destination to produce to, while consumers in the form
              > >of MDBs are pinned to a particular destination and are replicated homogenously
              > >to all destinations:</i><i></i>
              > ><p><i>· Create JMS servers on multiple servers in the cluster.
              > >The servers will collectively host the distributed queue &#8220;A&#8221;. Remember,
              > >the JMS servers (and WL servers) must be named differently.</i><i></i>
              > ><p><i>· Configure a queue on each JMS server. These become
              > >the physical destinations that collectively become the distributed destination.
              > >Each destination should have the same name "A".</i><i></i>
              > ><p><i>· Configure each queue to have the same JNDI name &#8220;JNDI_A&#8221;,
              > >and also take care to set the destination&#8217;s &#8220;JNDINameReplicated&#8221;
              > parameter
              > >to false. The &#8220;JNDINameReplicated&#8221; parameter is available in
              > >7.0, 6.1SP3 or later, or 6.1SP2 with patch CR061106.</i><i></i>
              > ><p><i>· Create a connection factory, and target it at all servers
              > >that have a JMS server with &#8220;A&#8221;.</i><i></i>
              > ><p><i>· Target the same MDB pool at each server that has a JMS server
              > >with destination &#8220;A&#8221;, configure its destination to be &#8220;JNDI_A&#8221;.
              > >Do not specify a connection factory URL when configuring the MDB, as it
              > >can use the server&#8217;s default JNDI context that already contains the destination.</i><i></i>
              > ><p><i>· Producers look up the connection factory, create a connection,
              > >then a session as usual. Then producers look up the destination by
              > >calling javax.jms.QueueSession.createQueue(String). The parameter
              > >to createQueue requires a special syntax, the syntax is &#8220;./<queue name>&#8221;,
              > >so &#8220;./A&#8221; works in this example. This will return a physical
              > >destination of the distributed destination that is local to the producer&#8217;s
              > >connection. This syntax is available on 7.0, 6.1SP3 or later,
              > >and 6.1SP2 with patch CR072612.</i><i></i>
              > ><p><i>This design pattern allows for high availability, as if one server
              > >goes down, the distributed destination is still available and only the
              > >messages on that one server become unavailable. It also allows
              > >for high scalability as speedup is directly proportional to the number
              > >of servers on which the distributed destination is deployed.</i>
              > ><br><i></i>
              > ><br><i></i>
              > ><blockquote TYPE=CITE>
              > ><br>TIA
              > ><br>Anamitra</blockquote>
              > ></html>
              > >
              > >
              

  • JMS queue| failover test question

    HI gurus,
    We are planning a failover test to migrate from prod to contingency environment.
    What happens to transactions that may be sitting in the JMS queue when the prod jvms are stopped? Is there a way to migrate them to the cont jvms?We are using jdbc stores and the supporting tables for both prod and cont will exist in the oracle DB, but with different names. Since the CONT jvms will be using different tables for the JMS queues, is there a way to migrate those queued transactions from prod to the CONT side?
    Details of environment
    1) OS for App Server
    Linux x86-64.
    Linux va2xpre03.gdsososos.com 2.6.18-128.1.6.el5 #1 SMP Tue Mar 24 12:05:57 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
    2) App Server type and version
    WLS 10.3.0
    JDK version
    jrockit_160_11
    3)
    Clustered and it is a Prod environment.
    Details:
    UI cluster has 5 servers. There are 4 jvms in each server. Altogether there are 20 jvms in UI cluster
    Recon cluster has 3 servers. There are 4 jvms in each server. Altogether there are 12 jvms in Recon cluster
    regards,
    Thiago Leoncio Guimaraes

    A common practice for handling this type of fail-over is to ensure that the main environment's domain name, server names, store, transaction logs (default store), and JMS configuration all all the same in the contigency environment (basically, differences, if any, are confined to things like URLs and Data Source configuration of DB location). Recovery is accomplished in the fail-over environment by copying over each server's default file store, as well as its JDBC store backing tables, prior to booting the fail-over servers.
    Transaction logs don't need to be copied over if you don't use XA (JTA) in your applications...

  • MDB,MDB container or JMS adapter stops processing messages from JMS queue

    Hi guys,
    we have created a component using Enterprise Java Beans, let's say a product catalog, deployed it on a Glassfish v2 instance, and connected it to a legacy system using JMS and Sun MQ v4.1 as messaging system. The catalog component thus starts one MDB that listens on a JMS queue, let's say a queue named catalog_business_events_in, and waits for incoming messages, i.e. in our case update events. The problem is, that in general this approach works well, but sometimes the MDBs/JMS adapter stops for some reason fetching and processing messages from the JMS queue. We don't know why - no exceptions, etc.. Seems to be a Glassfish EJB container, JMS adapter or Sun MQ configuration issue. It seems to be that our component is not the problem.
    The messages are compressed/uncompressed by Sun MQ automatically. We actually have 2 Sun MQ instances in clustered mode running to have some kind of failover - no HA cluster, yet. Sun MQ instances are accessed from Glassfish instances running in different Glassfish clusters - so we have a dedicated Sun MQ cluster not a Sun MQ instance per Glassfish instance. Each Glassfish instance is configured such that it knows both Sun MQ instances to allow automatic failover.
    Has someone an idea, why the MDBs/ MDB container/ JMS adapter - stops processing messages? We are kind of puzzled as it happens more often now and apparently when traffic is (very) low not high!
    Thanks for your help.
    Cheers,
    Martin
    Edited by: east1979 on Jan 13, 2009 8:06 AM

    Hi Manoj,
    I have a very similar if not identical issue,
    Error while running realtime jobs that read from JMS tables via JMS MQ adapter:
    15/11/12 09:10:08  JMS GET OPERATION ERROR : TIMEOUT.UNABLE TO RECEIVE RESPONSE FROM THE INVOKED DATA SERVICES SERVICE.ADAPTER OPERA
    TION TO CONTINUE.
    15/11/12 09:10:15  Communication Error. See real time job log for details.
    Dump available:
    https://sapmats.wdf.sap.corp/download/download.cgi?id=5C0KZAHA3RSXBJW3ABLMUUT2P5UUKWO2TM3EJDM5W2HGDZUDID
    Version of DS:14.0.3.273
    Any comments?
    Thansk and kind Regards,
    Kenneth

  • JMS in Clustered Environment

    Hi All,
    We have a clustered environment ; instance A and B of the same application server is running. Both the servers are configured for a JMS queue. But when I send message to the queue to refreh certain data, only one server is getting refreshed.
    What can I do for this? Please suggest?
    Regards
    Sajitha

    Hi,
    You should tell us which product you are using. However, I think that you should use a topic rather than a queue because a message that is sent to a clustered queue will be delivered to only one MDB instance.
    Hope it helps
    Arnaud
    www.arjuna.com

  • I want to access JMS Queue in websphere from a client application

    Hello all
    I tried to access a jms queue in the websphere from a client application
    my connection factory jndi name is : MyConn
    my queue name jndi name is : MyQueue
    and here is my code :
    Hashtable environment = new Hashtable();
    environment.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.ibm.websphere.naming.WsnInitialContextFactory");
    environment.put(Context.URL_PKG_PREFIXES, "com.ibm.ws.naming");
    environment.put(Context.PROVIDER_URL, "corbaloc:iiop:localhost:2809");
    return new InitialContext(environment);
    then:
    q = (Queue) ctx.lookup(QJNDIName);
    QueueConnectionFactory connFactory = (QueueConnectionFactory)
    ctx.lookup(ConnFactName);
    I had the following exception :
    javax.naming.NameNotFoundException: Context: networking/nodes/networking/servers/server1, name: MyQueue: First component in name MyQueue not found. Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0
    Can i have any help please ....

    Hi
    You are missing some critical jar files in your class path. It should be namingclient.jar, also please or something similar that is missing in classpath.
    HTH
    VJ

  • Oracle AQ to JMS Queue which is on Oracle Application server

    Hi,
    I am using Oracle Streams AQ Oracle database 10g
    and i have a JMS Queue on oracle Application server.
    how i can Propagate message from Oracle AQ (AQ$_JMS_TEXT_MESSAGE)Queue to JMS Queue. ?
    Thanks,
    Satnani

    Hi Justin,
    Thanks for Reply, but in my case my JMS queue is on Oracle Application Server.
    and i want to propagate message from AQ to JMS queue.
    and none of the document is available to describe how to send message from oracle database AQ to JMS queue which is on application server.
    please help
    Thanks,
    Satnani

  • How to delete the messages from JMS Queue

    Hi,Can anybody help how to delete the messages from the JMS Queue.Thanks in advance.

    You can dequeue the message using a JMS client or delete it using Weblogic Admin Console -
    http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e13952/taskhelp/jms_modules/queues/ManageQueues.html
    Regards,
    Anuj

  • How to read the messages in the JMS Queue using JMX

    Hi,
              I want to read messages in the JMS queue using JMX. I was able to read using QueueBrowser but want to modify priority of the messages using JMX.
              I tried to use JMSDestinationRuntimeMBean but it does not allow us to read messages unless we pass the message Id. Is there any way that I can get all the messages in the queue.
              I am using Weblogic 8.1 SP4
              Can someone please help me in this regard.
              Thanks,
              Kiran.
              Edited by KGudipati at 10/22/2007 1:22 AM

    Hi,
    As far as i know, JMS Object Messages is not supported by XI JMS adapter.
    you need to have the JMS provider to transform the message to bytes messages.
    (Refer to SAP note 856346)

  • How to configure my JMS QUEUE serve only one message at a time?

    Hi All,
    I have requirement where I need to develope a JMS QUEUE in weblogic. This MDB has to serve only one message at a time. Is there any way to configure via annotations or in weblogic server settings ?
    Any help would be really appreciated...
    Thank you,
    K.

    I'm not aware of any way to configure the max pool size via annotations, you might try posting to the EJB newsgroup (please post back the answer). Of course you can set the size via an EJB descriptor, as per the MDB chapter of the Performance and Tuning guide in the edocs.
    By the way, if you have ordered message processing requirements, I highly recommend taking a look at the WebLogic JMS "Unit-of-Order" (UOO) feature as per the UOO chapter of the JMS programmer's guide. For a variety of reasons, the UOO features is often, by far, the best option for handling such requirements. If this feature applies to your use case, then there would be no need to force single threaded message processing in some sort of manual fashion (the feature enforces this for you).
    Tom

Maybe you are looking for

  • I sent my ipod nano for replacement but haven't had confirmation they have received it - how do i contact them?

    Ten days ago i sent my ipod Nano for replacement (using the packaging Apple sent to me).  Since then i have checked the progress online and all it shows is that they sent me the packaging, but not that they had received the ipod.  I need to email or

  • SQL Developer problem. Rows without columns on data tab

    Hello, I have a strange behavior in Oracle SQL Developer Version 2.1.0.63. When I'm trying to open the "Data tab" for some tables, SQL Developer shows data rows but without columns! It seems that I can select different rows but I can't see neither an

  • Are images uploaded from desktop to iPhoto duplicated?

    I just used Migration Assistant to move data from Windows laptop to my new iMac...  The photos that were saved to my desktop were imported into iPhoto.  Does this duplicate the images?  Can I delete the desktop files? Relative Newbie to OS X so thank

  • Pages and Child Templates Not Updating

    I'm having a problem in Dreamweaver CS5 where pages and child templates are not receiving updates made to the parent template. When I update the template, sometimes some files using that template will update, and some will not. Repeatedly updating th

  • How to unlock an iPhone 4s?

    i have just purchased a new Iphone 4s and paid an extra $100 to get it unlocked. it is now overseas as a gift for my fiance and he says he cant get it unlocked and no one can do it for him. how can i unlock it for him from here, in Australia? or if i