1 Reply Latest reply: Dec 10, 2012 3:47 AM by René van Wijk RSS

    valid JMS Message status

    Edward
      Hello All,

      I have two WLS domains. One WLS 10.3.X, another is WLS 8.1.X
      Each domain have one queue each (e.g. 10.3.X => Q1 & 8.1.X => Q2) and the 10.3.X domain have been configured with a MessageBridge to deliver the messages from Q1 to Q2

      Each domain have ConnectionFactories XA enabled and the Bridge adapter is also set to "eis.jms.WLSConnectionFactoryJNDIXA"

      Now the Bridge is showing active, but if we put a test message in Q1, it is taking long to be delivered to Q2. There is no error in the logs (Debug Flgs have also been enabled).
      Sometimes it is also not being delivered at all.

      During this, the status of the message in the Q1 is showing "receive transaction".

      So can anyone tell me :

      1> what are the valid status of any message in wls jms queues and what are the meaning of them.
      2> what is the lifecycle of a message.


      Thanks in advance
        • 1. Re: valid JMS Message status
          René van Wijk
          http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24391/weblogic/jms/extensions/JMSMessageInfo.html#JMSMessageInfo(long,%20int,%20java.lang.String,%20long,%20java.lang.String,%20weblogic.jms.extensions.WLMessage,%20java.lang.String,%20boolean)

          "visible - The message is visible on the destination and may be consumed.
          send - The message is pending because it is associated with an in progress send operation.
          receive - The message is pending because it has been received by a consumer but not yet acknowledged.
          transaction - The message is associated with a transactional “send” or “receive” operation that is in progress.
          ordered - The message belongs to a Unit-of-Order (UOO).
          delayed - The message is pending because it has a scheduled delivery time or is otherwise delayed.
          expired - The message has expired and is no longer available for consumption.
          redelivery-count-exceeded - The message has exceeded the redelivery count set for the destination and is no longer available for consumption.
          paused - The message is pending because of a destination pause operation .
          sequenced - The message that is part of a SAF sequence.
          unit-of-work-component - The message is part of an Unit-of-Work (UOW).
          deleted - The message is marked for deletion."

          You can enable message life cycle logging
          - http://docs.oracle.com/cd/E24329_01/web.1211/e24385/troubleshoot.htm#i1128815

          "The message life cycle is an external view of the events that a JMS message traverses through once it has been accepted by the JMS server, either through the JMS APIs or the JMS Message Management APIs. Message life cycle logging provides an administrator with easy access to information about the existence and status of JMS messages from the JMS server viewpoint. In particular, each message log contains information about basic life cycle events such as message production, consumption, and removal."

          There is also a WLST script provided here (Re: Example using of getMessage(s) with JMS error queues? for browsing messages on a given destination.