Distributed queue weblogic 6.1

          hi,
          i have simulated distributed queues on 6.1.
          there are 2 wls in a cluster. jndireplication is set to 'false' for the queues
          in both these servers.
          the queuenames are same and the jndi name is same as well.
          now i have a remote listener which needs to listen.my question is by connecting
          to one wls in the cluster (for eg server 1) , can i receive messages from the
          queue in server 2(both queues have same name and jndi name and targeted by the
          same conn factory ).
          i have tried , and the listener only seems to listen to the machine which it connects
          to intially and not the entire cluster...
          any help?????
          

          illusionz wrote:
          > hi,
          > i have simulated distributed queues on 6.1.
          > there are 2 wls in a cluster. jndireplication is set to 'false' for the queues
          > in both these servers.
          > the queuenames are same and the jndi name is same as well.
          >
          > now i have a remote listener which needs to listen.my question is by connecting
          > to one wls in the cluster (for eg server 1) , can i receive messages from the
          > queue in server 2(both queues have same name and jndi name and targeted by the
          > same conn factory ).
          > i have tried , and the listener only seems to listen to the machine which it connects
          > to intially and not the entire cluster...
          I'm wondering if you don't realize that JMS consumers
          pin themselves to a particular destination instance
          whence created. The same consumer can't be used to
          to listen to multiple destinations.
          Assuming that you do realize the above,
          this is a deliberate design of the distributed destination emulation
          example from the JMS Performance white-paper that
          you are following. The load-balancing
          decision is made by the connection host. Otherwise there
          would be no way to load-balance queues with the same JNDI name.
          So you have a few choices:
          (1) As Shean Chang states - you can lookup the exact destination via
          createQueue(jmsServerName + "/" + jmsQueueName) - where jmsQueueName
          is not the JNDI name of the destination, it is the configuration
          name.
          (2) Create a differently named/differently jndi-named
          connection factory for each server - and look up that.
          (3) Create a few connections to randomize which
          server's become the connection host.
          >
          > any help?????
          

Similar Messages

  • WebLogic 12.1.2 erases subdeployment on Distributed Queue when targeted to multiple JMS Servers

    Update: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
    Hi,
      I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
      If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
      Following
    http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
      I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
    If I save the subdeployment after setting it during the queue create - it is erased
    <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
    Before:
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    After:
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    Workaround:
    - upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
    - also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
    - you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
      thank you
      /michael

    Update: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
    Hi,
      I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
      If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
      Following
    http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
      I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
    If I save the subdeployment after setting it during the queue create - it is erased
    <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
    Before:
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    After:
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <uniform-distributed-queue name="HousekeeperControlQueue">
        <jndi-name>jms/HousekeeperControlQueue</jndi-name>
      </uniform-distributed-queue>
    </weblogic-jms>
    Workaround:
    - upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
    - also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
    - you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
      thank you
      /michael

  • Creating a MDB and Distributed Queue in Clustered env in weblogic 9.2

    I have created 3 managed servers and all these managed servers are in the cluster.
              Now i create JMS module for this cluster and create the Connection factory 'QUEUE_CF_8' and distributed Queue 'DIS_QUEUE_8' targeting to the cluster.
              I create a MDB and JMS client and deploy them in the cluster.JMS client sends the message to the distributed queue and MDB is listening to the distributed queue
              When i deploy the MDB , it is deploys perfectly . But when i run the client it fails with the following exception
              [java] javax.naming.NameNotFoundException: Unable to resolve 'QUEUE_CF_8'. Resolved '' [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'QUEUE_CF_8'. Resolved '']; remaining name 'QUEUE_CF_8'
              When i view the JNDI tree for all the managed servers , i can see the Connection factory and the distributed queue.
              Also i deploy the MDB to the cluster and no submoduletargets are specified.
              Let me know what is that iam missing.

    <?xml version='1.0' encoding='UTF-8'?>
              <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/90" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xsi:schemaLocation="http://www.bea.com/ns/weblogic/920 http://www.bea.com/ns/weblogic/920.xsd">
              <connection-factory name="Queue_CF_8">
              <sub-deployment-name>Server_group_4</sub-deployment-name>
              <jndi-name>QUEUE_CF_8</jndi-name>
              <security-params>
              <attach-jmsx-user-id>false</attach-jmsx-user-id>
              </security-params>
              </connection-factory>
              <uniform-distributed-queue name="DIS_QUEUE_8">
              <sub-deployment-name>Server_group_4</sub-deployment-name>
              <jndi-name>DIS_QUEUE_8</jndi-name>
              <load-balancing-policy>Round-Robin</load-balancing-policy>
              </uniform-distributed-queue>
              </weblogic-jms>
              But the problem was with the clustering.
              Thanks for your time..

  • Uniform Distributed Queue - Delay in handing over to listener

    Hi,
    We have cluster of two managed servers. We have two physical destinations (queues) configured as uniform distributed queues. With this setup we observed that when a message is put in to the uniform distributed queue, it takes a while before it hands of to the consumer (message driven bean). This we are observing every time a message is delivered. Is there a configuration that we are missing that is causing this behavior?
    Thanks,

    Here are the answers
    How long is "a while"? How are you measuring the delay?
    It is usually around 5 mins. We are measuring the delay using wall clock timings (We have debug statements in the consumer. That are getting printed after 5 mins).Does your config.xml or JMS Module configuration have a "time-to-deliver-override/TimeToDeliverOverride" configured on a destination, or a "default-time-to-deliver/DefaultTimeToDeliver" configured on a connection factory, or does your app use the "setJMSDeliveryTime" extension?
    No. We have not overridden the any of these parameters. See below for jmsmodule.xmlDoes your sender or MDB app happen to have a "sleep( or wait(" encoded in it somewhere?
    No. :-)Did you enable transaction batching on the MDB?
    NoOr you hava you configured a batch delay somehow (this can happen if a SAF Agent or Bridge is in the flow)? No
    Are you using Error Destinations?
    No
    jms-module.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
    <connection-factory name="inventoryWSQueueCF">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryWSQueueCF</jndi-name>
    <transaction-params>
    <xa-connection-factory-enabled>true</xa-connection-factory-enabled>
    </transaction-params>
    </connection-factory>
    <connection-factory name="inventoryTPQueueCF">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryTPQueueCF</jndi-name>
    <transaction-params>
    <xa-connection-factory-enabled>true</xa-connection-factory-enabled>
    </transaction-params>
    </connection-factory>
    <connection-factory name="inventoryWSQueueAlternateCF">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryWSQueueAlternateCF</jndi-name>
    <transaction-params>
    <xa-connection-factory-enabled>true</xa-connection-factory-enabled>
    </transaction-params>
    </connection-factory>
    <uniform-distributed-queue name="inventoryWSQueue">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryWSQueue</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>10</forward-delay>
    </uniform-distributed-queue>
    <uniform-distributed-queue name="inventoryWSQueueAlternate">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryWSQueueAlternate</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    <forward-delay>10</forward-delay>
    </uniform-distributed-queue>
    <uniform-distributed-queue name="inventoryTPQueue">
    <sub-deployment-name>inv_jms_server</sub-deployment-name>
    <jndi-name>inventoryTPQueue</jndi-name>
    <load-balancing-policy>Round-Robin</load-balancing-policy>
    </uniform-distributed-queue>
    </weblogic-jms>
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  • Issue with Distributed Queue and WebLogic Clustering

    Hi, When a message is received by distributed queue, MDB is processing the message on two managed servers. There seems to be issue with clustering and the physical queues present on both the managed servers are receving the message.
    Our environment configuration details are as below:
    One Web logic Cluster with 2 nodes (2 managed web logic servers).
    One MDB deployed on the cluster listening to a queue with JNDI name “xng/jms/CODEventsQueue”
    One Distributed queue with two members on the two nodes of the cluster, and with JNDI name “xng/jms/CODEventsQueue”
    Two members of the distributed queue deployed on two JMS servers, which are separately deployed on each managed server .
    And the distributed queue is deployed on the cluster.
    Any help is appreciated.
    Thanks
    Sampath

    It is not clear to me how you concluded that "both the managed servers are receiving the message". Did you monitor the queues' statistics, or did you see both MDB instances received the same message?
    It looks like that you using a weighted distributed queue. Do the two physical queues that compose the distributed queue have their own JNDI names? If so, what are they?
    Have you tried to use a uniform distributed queue and see if the same behavior shows up?
    You can find more about uniform distributed destination at
    http://edocs.bea.com/wls/docs103/jms/dds.html#wp1313713
    BTW, which WebLogic Server releases are you using? Could you provide the distributed queue configuration?
    Thanks,
    Dongbo

  • Can distributed queues be implemented in weblogic 6.1

              hi,
              i am currently using weblogic 6.1 with 3 machines on a cluster.when using jms
              there seems to be no way to use distributed queues on the machine.this feature
              is however supported in weblogic 7.0.is there any workaround for this.this wuld
              essentially mean a single point of failure as the queue wuld be present on only
              1 wlserver and the other 2 servers though in cluster wuldnt have any reference
              to this queue..
              any help???
              

    The JMS Performance Guide white-paper contains examples
              of doing exactly this. You can find it here:
              http://dev2dev.bea.com/technologies/jms/index.jsp
              Illusionz wrote:
              > hi,
              > i am currently using weblogic 6.1 with 3 machines on a cluster.when using jms
              > there seems to be no way to use distributed queues on the machine.this feature
              > is however supported in weblogic 7.0.is there any workaround for this.this wuld
              > essentially mean a single point of failure as the queue wuld be present on only
              > 1 wlserver and the other 2 servers though in cluster wuldnt have any reference
              > to this queue..
              > any help???
              

  • JMS Timestamp in a Uniform Distributed Queue on Weblogic Console

    Dear Experts,
    I should need a clarification on how JMS Timestamp is valorized in a Uniform Distributed Queue. I explain me better :
    I will use the JMS Timestamp to re-order messages fetched from the Uniform Distributed Queue. Is it reliable ? How can I synchronize the this JMS property to be sure it is not dependent from physical machine where Uniform Distributed Queue is deployed ?
    Thanks a lot,
    Mike

    Try posting this in the weblogic jms forum : WebLogic Server - JMS where you might get help from Tom Barnes who is the weblogic jms development team lead.
    As far as I know time synchronization across machines should be a routine task for system admins. We had windows environment , where it was done using windows time service. The time server was configured on the domain controller and the time service running on the windows nodes periodically resynchronized its time with that of the time server.

  • Monitoring jms distributed queue on WebLogic 8.1 via MBeans

    Good afternon,
    please do you have someone java code (only basic enough !) for jmx monitoring jms distributed queue on weblogic 8.1 (Monitor all Active JMS Destinations and there Consumers, Consumers High, Consumers Total and so on..). Think should be used JMSDestinationRuntimeMBean interface but have no idea how write the code.
    Thank you for any hint
    Lada Dvorak

    This is a simple jmx sample code based on WLS 8.x
    import javax.naming.Context;
    import java.util.Set;
    import java.util.Iterator;
    import java.io.PrintWriter;
    import java.io.FileOutputStream;
    import weblogic.jndi.Environment;
    import weblogic.management.MBeanHome;
    import weblogic.management.WebLogicMBean;
    import weblogic.management.WebLogicObjectName;
    public class ListAllMBeans{   
         public static void main(String args[]) {       
              String url = "t3://localhost:7001";
              String username = "weblogic";
              String password = "weblogic";
              PrintWriter pWriter = null; // print without buffering
    try {            //Obtaining an MBeanHome Using JNDI           
                   Environment env = new Environment();
                   env.setProviderUrl(url);
                   env.setSecurityPrincipal(username);
                   env.setSecurityCredentials(password);
                   Context ctx = env.getInitialContext();
                   MBeanHome home = (MBeanHome)ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    Set allMBeans = home.getAllMBeans();
                   System.out.println("Size: " + allMBeans.size());
                   for (Iterator itr = allMBeans.iterator(); itr.hasNext(); ) {              
                        WebLogicMBean mbean = (WebLogicMBean)itr.next();
                        WebLogicObjectName objectName = mbean.getObjectName();
                        pWriter = new PrintWriter(new FileOutputStream("JMXType.txt", true), true);
                        pWriter.println(objectName.getName() + " is a(n) " + mbean.getType());
                        //System.out.println(objectName.getName() + " is a(n) " + mbean.getType());
              }catch(Exception e){           
                   System.out.println(e);
    I hope this will be helpful to you.

  • JMS for WebLogic Server 9.2. Members of distribute queues

    I don't understand concept of the distributed queues. As far as I understand, distributed queues consist of physical queues. How do I create physical queus for distributed queues ? What is the Members tab for Distributed queue ? If I have non-persistent distributed queu , can I have a distributed q that points to the cluster that doesn't have a JMS ?

    Hi,
    I was able to figure out the root cause. I was using the primitive data type "int" for primary key and foreign key for one of the beans in the relationship. After I changed it to "Integer" wrapper type, the issue got resolved.
    -Vinod

  • How to process one message at a time on a distributed queue

    I have a situation where I need to execute/process a task of a type
              asynchronously and this should be done one at a time. To do that I am thinking of setting
              up a distributed queue (for load balancing and failover). Now I have
              this requirement that only one task should be processed at one time. So
              for example if two messages (m1 followed by m2) are sent to distributed
              queue and I have the distributed queue which points to two physical
              queues on two different instances of weblogic(wl1 and wl2), the
              distributed queue will likely send m1 to wl1 and m2 to wl2 (assuming
              distributed queue is setup with round robin policy). If m1 has started
              executing/processing in my MDB on wl1, I do not want start processing
              m2 on wl2 untill m1 has been processed by wl1. Is it possible to do
              this on weblogic 8.1 JMS?
              If this is not supported I was thinking of implementing a database
              based locking framework and each mdb will use that framework to check
              if a task of a particular type is being processed before processing a
              new task. Also in this case I will need to use max. 1 mdb for each
              queue on each weblogic server.
              --Navjeet                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Hello navjeet,
              I don't think there are any parameters that you can set on a distributed queue to ensure messages are handled in the sequential manner you describe so it looks like you will have to implement your own locking mechanism.
              In reposponse to your other question you can set the number of MDbeans in the free pool to 1 (or the number of queues you have) in the MDBean deployment descriptor.
              see:
              http://e-docs.bea.com/wls/docs81/ejb/message_beans.html#1120592
              Cheers,
              Hoos

  • Messages in Distributed Queue remain on one JMSServer in Cluster

    Hi,
              the situation is as follows:
              We're having Distributed Queues on a two-Node server setup. A queue therefore exists two times, once on each JMSServer on each node.
              Forward-Delay has been set on the DistibutedQueue to value 1 second (we tested with values 0 and 10, too).
              External Java client (both cluster nodes in the provider_url for initialcontext) connects to the DistributedQueue and sends messages. In the weblogic console you can see these messages on the physical queue on the JMSServer, let's call it QueueA on NodeA.
              An external java process to consume messages (again both clusters nodes in the jndi-connection-string) is started to consume messages. Because of round-robin it sometimes get's connections to QueueB (part of same DistributedQueue as QueueA, but on the other node in the cluster).
              When connected to QueueB on NodeB no single message is received. You can even see in the weblogic console that QueueA on NodeA has zero consumers and 50 messages, QueueB on NodeB has zero messages but one consumer.
              When we restart the consumer java process and it randomly get's connected to QueueA on NodeA it consumes fine, as it should.
              Should'nt Forward-Delay do exactly this? Transport messages from QueueA on NodeA with zero consumers to QueueB on NodeB which actually has consumers?
              Any help would be appreciated.
              Axel van Lil

    Hi,
              thanks for your answer. We opened a support case today for this issue... I don't know. Cluster seems to run fine, no warnings, no exceptions.
              The next step of this issue is the following (just to give an idea of our upcoming problems :-)
              External Java process listens on QueueA on NodeA (QueueA is part of a Distributed Queue). Currently receives all the messages located on that queue. We kill NodeA on that machine to simulate failover.
              The external process failovers immediately to NodeB (which is good! proven by netstat and debugger) but just doesn't receive messages even though there are messages in that queue! It seems that the new consumer is just being forgotten by the BEA server.
              I don't know... somehow our configuration is quirked... or the BEA implementation doesn't work at all...
              Rgds,
              Axel

  • Distributed queue usage with custom queue listeners in cluster

    Hi,
    Can someone help in solving the issue. We have a web application which will create consumers(threads in infinite loop) for an inbound queue(name comes from DB table) and after doing certain process result will be pushed to outbound queue(name comes from DB table).
    When application runs in single managed server(without clustering) every thing works fine.
    If I want to deploy the same application in two managed servers (with are under same cluster) which talks to same DB how to handle above scenario
    1. Create 2 JMS servers one on each managed server(on different machines)
    2. Create queue one for each JMS server
    3. Create distributed queue and add above two queues as members of it
    4. Create connection factory and target it to cluster
    After creating above instrastructure(similar infrastructure will be created for inbound and outbound queue), can I use distributed queue JNDI name to create listeners(threads) to read messages? Or do I need to create listeners for each individual member in the distributed queue?
    I know that while sending message to distributed queue, I can create sender on distributed queue and weblogic automatically takes care of sending the message to appropriate member in the DQ, but how it works for distributed queue?
    Also, want to know how can I access distributed queue? For example, if managed server 1 is accessed by http://10.11.134.24:7001 and managed server 2 is accessed by http://10.11.134.25:7001. which URL I need use in JNDI context provider URL to access distributed queue? can I use any URL will it make any difference?
    Generally for servlets/JSPs we create proxy server to access it through cluster, instead of directly using managed server URLs. But how it works for distributed queue?
    Thanks
    Santhosh
    Edited by: user8676720 on Oct 4, 2011 8:35 AM

              Yes.
              It turns out that if replicate local queue jndi name in cluster is set to false
              the message did not get forward :(
              Dongbo Xiao <[email protected]> wrote:
              >Sorry, the attribute is ForwardDelay, not ForwardPolicy.
              >
              >Dongbo
              >
              >Dongbo Xiao wrote:
              >
              >> Hi Eran,
              >>
              >> Have you set up the ForwardPolicy for the Distributed Queue?
              >> By default, the ForwardPolicy is -1, which turns off the forwarding.
              >>
              >> Dongbo
              >>
              >> eran wrote:
              >>
              >> > Hello,
              >> > I have 2 nodes in cluster each one has a pinned JMS server with a
              >queue QueueA
              >> > and QueueA2
              >> > respectively both mebers in a distributed destination dist_queue.
              >> > There is a consumer on QueueA only (startup class).
              >> > In case of a message sent to QueueA2 a consumer is created for QueueA2
              >automaticly
              >> > (seen in the admin console) out of the blue, and the message do not
              >get forward
              >> > to QueueA where my consumer is listening.
              >> > Monitoring JMS connections of both servers shows only my consumers'
              >connection.
              >> > Our application depends on the forward feature.
              >> > Am I doing something wrong? any ideas?
              >> >
              >> > Thanks.
              >> > Eran
              >
              

  • Message payload logging for Uniform Distribute Queue

    Hi All,
    We have a requirement to log the message payload, of every jms message received in a Uniform Distribute Queue in Weblogic.
    Please let us know how can we achieve this.
    Thanks.

    If you want to avoid use of the Path Service, then the alternative is to make the destination members highly available. This will help ensure that the host member for a particular UOO is up.
    One approach to HA is to configure "service migration". For more information see the Automatic Service Migration white-paper at
    http://www.oracle.com/technology/products/weblogic/pdf/weblogic-automatic-service-migration-whitepaper.pdf
    In addition, I recommend referencing Best Practices for JMS Beginners and Advanced Users
    http://docs.oracle.com/cd/E17904_01/web.1111/e13738/best_practice.htm#JMSAD455 to help with WL configuration in general.
    Hope this helps,
    Tom

  • JMS Uniform Distribute Queue Unit Of Order, problem when one node goes down

    Hi ,
    I have the following code which post a message (with Unit of Order set ) to a Uniform Distribute Queue in a cluster with two member servers (server1 and server2).
    --UDQ is targeted to a subdeployment that is mapped to two JMS servers pointing to each member servers
    --Connection Factory is using default targeting ( i tried mapping to Sub deployment also)
    javax.naming.InitialContext serverContext = new javax.naming.InitialContext();
    javax.jms.QueueConnectionFactory qConnFactory = (javax.jms.QueueConnectionFactory)serverContext.lookup(jmsQConnFactoryName);
    javax.jms.QueueConnection qConn = (javax.jms.QueueConnection)qConnFactory.createConnection();
    javax.jms.QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    javax.jms.Queue q = ( javax.jms.Queue)serverContext.lookup(jmsQName);
    weblogic.jms.extensions.WLMessageProducer qSender = (weblogic.jms.extensions.WLMessageProducer) qSession.createProducer(q);
    qSender.setUnitOfOrder("MyUnitOfOrder");
    javax.jms.ObjectMessage message = qSession.createObjectMessage();
    HashMap<String, Object> map = new HashMap<String, Object>();
    map.put("something", "SomeObject");
    message.setObject(map);
    qSender.send(message);
    } catch (Exception e) {           
    Steps followed:
    1. Post a message from "server1"
    2. Message picked up by "server2"
    3. Everything fine
    4. Shutdown "server2"
    5. Post a message from "server1"
    6. ERROR: "hashed member of MyAppJMSModule!MyDistributedQ is MyAppJMSModule!MyJMSServer-2@MyDistributedQ which is not available"
    WebLogic version : 10.3.5
    Is there a way (other than configuring Path Service ) to make this code work "with unit of order" for a UDQ even if some member servers go down ?
    Thanks very much for your time.

    If you want to avoid use of the Path Service, then the alternative is to make the destination members highly available. This will help ensure that the host member for a particular UOO is up.
    One approach to HA is to configure "service migration". For more information see the Automatic Service Migration white-paper at
    http://www.oracle.com/technology/products/weblogic/pdf/weblogic-automatic-service-migration-whitepaper.pdf
    In addition, I recommend referencing Best Practices for JMS Beginners and Advanced Users
    http://docs.oracle.com/cd/E17904_01/web.1111/e13738/best_practice.htm#JMSAD455 to help with WL configuration in general.
    Hope this helps,
    Tom

  • Looking up a distributed queue with two persistent stores using two JMS Svr

    I am trying to do the following:
    1. Setup a distributed queue, i have two servers which are part of the cluster:
    Server A: t3://localhost:7003
    Server B: t3://localhost:7005
    I go in and create two jms servers:
    JMS Server JA: Target on Server A
    JMS Server JB: Target on Server B
    Now as the jms servers need to use a seperate persistent store for each one of them i create two persistent stores.
    2. Now from my MDB which is deployed on another server i lookup the queue using
    t3://localhost:7003,localhost:7005 as the provider url
    My problem is that i always end up listening to the messages on the first jms server and never get to read the messages on jms server JB as i guess i am able to connect to JMS Server JA so i never try and connect to JB? What to do about this?
    Edited by: user4828945 on Mar 23, 2009 2:32 PM

    Allocation of consumers wouldn't take into account the number of messages on the queue - they'd be allocated randomly. The scenario you're proposing shouldn't happen though - WebLogic Server takes into account whether a member has consumers when sending to a distributed destination, but otherwise, assuming that Queue 1 and Queue 2 both have consumers, then distribution of load will be equal. It's not the amount of consumers that determine how many messages get sent to a distributed destination member - it's whether it has members at all.
    Assuming that did occur initially though, you'd expect processing to be a little bit more intensive on the server with the queue holding 30 messages. It would pretty quickly even up though.
    From that point forward, it would be somewhere between difficult and impossible to get to the second scenario, where you have an unequal number of messages in each distributed destination member, unless the work being sent with each message to an MDB can vary significantly in how long it would take to process.
    Assuming (and it's a big if) you could get to that scenario, then the MDBs wouldn't switch over - they stay connected to a particular distributed destination member. And it's their connection to a member as a consumer that controls how WebLogic Server load balances messages (assuming default configuration) so that's part of what makes it unlikely to get there.
    From going back to first principles in the documentation, it seems like your best result would actually be from deploying the MDB to the cluster - that way, there's no remote connections to JMS queues, and you get a pool of MDBs on each server instance.
    Ref here: http://e-docs.bea.com/wls/docs81/ejb/message_beans.html

Maybe you are looking for

  • Optical drive not working only ejecting DVDs

    Hi guys, I have a Macbook Unibody model no MacBook5,1. The thing is a month back the optical drive stopped working. I insert a DVD, its tries to read it for about 15 seconds and ejects it. Now the funny thing is last night i tried playing Dexter on i

  • How to send an event to external system?

    Hi I am facing problem in sending the event to an external system. Initially I created 2 workflows with different itemtypes. One has send event and other has receive event. This works perfectly when I use the WF_OUT and WF_IN agents of the same syste

  • Which printer is recommended by real users to print on glossy photo paper?

    My MG8100 can't seem to grab the glossy photo paper when I am printing pictures. Very frustrating to spend so much on a machine that is for printing photos and the rollers are plastic and won't grab the glossy paper. Thanks for any suggestions.

  • Updating a Deployed J2EE Application Component

    Hi All, I was going through this link below : http://e-docs.bea.com/wls/docs61/adminguide/utils.html#1139180 Updating a Deployed J2EE Application To update a specific component, enter the following commands: % java weblogic.deploy -port 7001 -host lo

  • Conversions using Calorific Values?

    HI all, My system takes a meter reading in CCF and converts consumption to Therms for billing purposes, therefore we use thermal gas billing.  We maintain calorific value districts and daily calorific values for this calculation.  There are (at least