Topic
  • 3 replies
  • Latest Post - ‏2013-01-08T15:23:44Z by mamwl1
SystemAdmin
SystemAdmin
8523 Posts

Pinned topic messages marked using browse-with-mark

‏2013-01-07T15:26:47Z |
the messages are not being consumed by MDB , I get the below error for Websphere MQ 7

com.ibm.msg.client.jms.internal.JmsQueueSessionImpl
WebSphere classes for JMS attempted to get a message for
delivery to an message listener, that had previously been marked
using browse-with-mark, but the message was not there.

Any pointers?

Thanks
Updated on 2013-01-08T15:23:44Z at 2013-01-08T15:23:44Z by mamwl1
  • SystemAdmin
    SystemAdmin
    8523 Posts

    Re: messages marked using browse-with-mark

    ‏2013-01-08T13:01:08Z  
    Messages that are passed to an MDB to be consumed, are first browsed by a dispatcher task. This task marks the message to say that it is being dealt with and then passes the MDB the Message Token which uniquely refers to the message (even more uniquely than Message ID which may not be unique if it is user generated).

    The MDB when driven attempts to MQGET the message using this Message Token. That message may not be there any more, perhaps because it has expired, or some other program has retrieved it without using the co-operative marking process (i.e. ignoring the marks), or because someone has CLEARed the queue, or some other reason I can't think of just now.

    Is anything else using that queue?

    Cheers
    Morag
  • SystemAdmin
    SystemAdmin
    8523 Posts

    Re: messages marked using browse-with-mark

    ‏2013-01-08T14:56:33Z  
    Messages that are passed to an MDB to be consumed, are first browsed by a dispatcher task. This task marks the message to say that it is being dealt with and then passes the MDB the Message Token which uniquely refers to the message (even more uniquely than Message ID which may not be unique if it is user generated).

    The MDB when driven attempts to MQGET the message using this Message Token. That message may not be there any more, perhaps because it has expired, or some other program has retrieved it without using the co-operative marking process (i.e. ignoring the marks), or because someone has CLEARed the queue, or some other reason I can't think of just now.

    Is anything else using that queue?

    Cheers
    Morag
    Morag,

    There is centralized queue and there are 3 MDB's which access the queue, when the message is put to centralized queue, I see the error and current depth is 0
    however the input handle increases and I cleared all the queues, restarted the WAS server , still same problem
  • mamwl1
    mamwl1
    39 Posts

    Re: messages marked using browse-with-mark

    ‏2013-01-08T15:23:44Z  
    Morag,

    There is centralized queue and there are 3 MDB's which access the queue, when the message is put to centralized queue, I see the error and current depth is 0
    however the input handle increases and I cleared all the queues, restarted the WAS server , still same problem
    Hi,

    As Morag says, it could be your browse mark timeout expiring. The default timeout is 5 seconds which might not be enough if your MDB is doing a lot of processing.
    You could try changing this by using the "ALTER QMGR MARKINT(<some interval in milliseconds>)" MQSC command. Note that this affects the whole queue manager.

    Also what version of the WMQ resource adapter are you running with? You can figure this out by looking for the WMSG1703I message in your WAS SystemOut.log. I have a feeling that message was output by mistake for some of the earlier versions of code.

    Regards, Matt.