1 Reply Latest reply on May 16, 2008 8:03 AM by 666705

    JMSOrderException when sending message on distibuted queue

    666705
      My environment is an enterprise application deployed on a cluster composed by 3 server.
                All jms queue are distibuted on cluster using load balancing policy (Round-Robin or Random) so all messages sent are distributed equally on Servers...
                When I want to process messages that require a serialization dispatching I use Unit of order like:
                
                ((WLMessageProducer)(sender)).setUnitOfOrder(unitOfOrder);
                
                This ensures that message will dispatched only by one server of the cluster so the serialization is guarantee!
                
                But if one of the 3 server is down (it may be possible on cluster environment) sending message using unit of order rise this exception: weblogic.jms.extensions.JMSOrderException
                
                For example, if Server 3 is down the message exception is:
                weblogic.jms.extensions.JMSOrderException: hashed member of {EARName}!{JMSName}!{queueName} is {EARName}!{JMSName}!{JMSserverName}3@{queueName} which is not available
                
                If I use a Random load balancing policy is possible that the hashed member result is a started server, in this case if I'm lucky it works! But It must to work allways!
                
                I will appreciate every advice!
                Thanks!