Topic
6 replies Latest Post - ‏2012-06-18T14:58:59Z by swlinn
umav
umav
22 Posts
ACCEPTED ANSWER

Pinned topic MQ Queue manager units of work and uncommitted messages in MQ

‏2012-06-10T01:43:11Z |
Hi,

We have a DataPower MQ Queue manager object which has units of work set to 1 and automatic backout set to on. There are some of the queues in the queue manager where we read messages from a MPG. There is a queue where we only write messages to, never read from it.

In some cases we write to the queue as a dynamic backend for the MPG. There are a couple of cases where we write to the queue using dp:url-open

Occasionally there are uncommitted messages in the queue that we are writing to. Our MQ administrator told us that datapower is showing as one of the readers from the queue.

Here are the questions that I have:

a) Does the "units of work" apply even when we write to the queue?

b) Is there anything wrong in the way we are using dp:url-open as below that could result in uncommitted messages now and then?

<xsl:variable name="urlResult">
<dp:url-open target="{$dpconfig:dynamicRoute}" response="responsecode-ignore">
<xsl:copy-of select="/"/>
</dp:url-open>
</xsl:variable>

<xsl:choose>
<xsl:when test="$urlResult/url-open/responsecode ='0'"/>
<xsl:otherwise>
<dp:reject>
Could not send to the MQ backend <xsl:value-of select="$urlResult"/>
</dp:reject>
</xsl:otherwise>
</xsl:choose>

Thanks
Uma
Updated on 2012-06-18T14:58:59Z at 2012-06-18T14:58:59Z by swlinn
  • swlinn
    swlinn
    1327 Posts
    ACCEPTED ANSWER

    Re: MQ Queue manager units of work and uncommitted messages in MQ

    ‏2012-06-11T12:15:41Z  in response to umav
    What is your backside url? Does it provide the sync and transactional parameters? It could be with transactional that the backside GETs are uncommitted until the response is successfully sent to the client?

    Regards,
    Steve
    • umav
      umav
      22 Posts
      ACCEPTED ANSWER

      Re: MQ Queue manager units of work and uncommitted messages in MQ

      ‏2012-06-11T13:05:45Z  in response to swlinn
      Hi Steve

      We have not used sync or transactional in the URL, it is the basic URL
      dpmq://Sandbox-QM/?RequestQueue=MY_QUEUE

      This is also not a request/reply queue. We are just sending messages to a queue and want to be sure we successfully sent message to this queue, there is no reply queue involved.

      Thanks
      Uma
      • msiebler
        msiebler
        136 Posts
        ACCEPTED ANSWER

        Re: MQ Queue manager units of work and uncommitted messages in MQ

        ‏2012-06-11T14:10:40Z  in response to umav
        It is a best prctice to ue 2 different MQ QM objects for the get and put operations; that may help.
  • umav
    umav
    22 Posts
    ACCEPTED ANSWER

    Re: MQ Queue manager units of work and uncommitted messages in MQ

    ‏2012-06-15T16:51:55Z  in response to umav
    Any other ideas on how to take care of this? There definitely seems to be something in datapower which is holding on to connections. When we disable and then reenable the datapower queue manager object the uncommitted messages seem to be released and things are working again.
    • ytshen
      ytshen
      12 Posts
      ACCEPTED ANSWER

      Re: MQ Queue manager units of work and uncommitted messages in MQ

      ‏2012-06-18T05:17:18Z  in response to umav
      The uncommit message will occur every time or just a few time? And how about the traffic under stress or not? Did the mpgw use the same MQ QM object for MQ front side handler? I'll suggest you to use two different QM object to work around for your purpose or you could open PMR and provide your config to be investigate by IBM support.
    • swlinn
      swlinn
      1327 Posts
      ACCEPTED ANSWER

      Re: MQ Queue manager units of work and uncommitted messages in MQ

      ‏2012-06-18T14:58:59Z  in response to umav
      >>>> "There definitely seems to be something in datapower which is holding on to connections" ...

      Are you specifying a cache timeout on your DP QM Configuration?

      Regards,
      Steve