Outbound MQS WebSphere interface

Clovertech Forums Read Only Archives Cloverleaf Cloverleaf Outbound MQS WebSphere interface

  • Creator
    Topic
  • #52929
    Daniel Lee
    Participant

      QDX 5.4

      AIX 6.1

      We are attempting to communicate with WebShere queues to/from Cloverleaf.

    Viewing 7 reply threads
    • Author
      Replies
      • #75966
        Daniel Lee
        Participant

          I figured I’d update this in case anyone else stumbles across this in the future.  Evidently I needed one of the “Put Msg Options” to be “MQPMO_SYNCPOINT”.  This doesn’t make sense to me as IBM’s definition of this setting is as follows:

          Quote:

          The request is to operate within the normal unit-of-work protocols. The message is not visible outside the unit of work until the unit of work is committed. If the unit of work is backed out, the message is deleted.

          You would think that would mean it would error on the side of letting an application pick it up before it was done writing it.  But it works like a champ when I have that attribute set so I’ll go with it.

        • #75967
          Peter Heggie
          Participant

            Just curious – what do you have for the commit interval? Also, what do you get if you set the put options to PMO_NO_SYNCPOINT – is the message still unavailable until the thread is stopped?

            Peter Heggie
            PeterHeggie@crouse.org

          • #75968
            Daniel Lee
            Participant

              I’m doing some volume testing, but currently I have the commit interval at ‘1’.  I would like to keep that setting unless I find issues as the Cloverleaf documentation warns about an issue that can occur between the time the message is read and commited that could make the message(s) be sent multiple times.  I’m thinking that a lower commit interval would minimize the number of duplicates sent if there’s an issue.  (I could keep track of the msg ID’s in SQL light and check every one but this is a result interface so that would be overkill.  If it were a charge interface I’d consider it.)

              I’m assuming that MQPMO_NO_SYNCPOINT was what it was set to when I left it blank.  IBM’s documentation says that if you leave it blank than it defaults to one or the other.  I’m suspecting that if I use “NO_SYNCPOINT” that I will get the initial behavior that I observed.  I’ll try it and will update this thread if the results are other than expected.

            • #75969
              Daniel Lee
              Participant

                I was wrong.  If I set the “Put Msg Options” to “MQPMO_NO_SYNCPOINT” the interface seems to function correctly as well.  I guess it’s just a problem with leaving it blank.  I’ll probably stick with “MQPMO_SYCPOINT” as I would like it to finish commiting the messages before they are visible in the queue.

                Do you have experience with MQ interfaces Peter?

              • #75970
                Peter Heggie
                Participant

                  Not with Cloverleaf. I was an MQ administrator/developer for many years on z/OS, AIX and Windows. I’ve seen third party MQ adapters (ex: SeeBeyond) that had ‘non-standard’ default behavior and it was helpful to be explicit in the options.

                  Peter Heggie
                  PeterHeggie@crouse.org

                • #75971
                  Daniel Lee
                  Participant

                    Do you have any sugestions or things to consider when choosing a commit interval, Read interval, max messages, etc?

                    So far it appears there is little to no latency in the transfer of messages to/from queues.  If I set my read interval to 2 seconds and my max read to 100 messages and my commit interval to 1 it can pull 500 messages off the queue in 15 seconds.  That’s including the regsub command I have to strip the MQ header off.

                  • #75972
                    Peter Heggie
                    Participant

                      I have not worked with MQ in Cloverleaf, so I’m falling back on general principles which you already know. Unless you are trying for high performance, I’d use the settings for maximum reliability – commit after 1, max messages to read 1. Read interval looks like something you can change without affecting reliability.

                      Coming from an MQ background, I’m always worried about delivering the message only once, and raising the commit interval opens you up for possible redelivery – don’t know if that will cause a problem – but you won’t lose a message on the MQ side. With ADT, maybe it does not matter if an ancillary gets a duplicate message.

                      I’d like to hear what other people have experienced with MQ in Cloverleaf. Just recently I ran some volume tests where I basically dumped 10,000 messages at a time into a small set of stream-lined threads, and I just could not get the performance to go any faster than 17 msgs/second in my particular configuration, so increasing the number of messages read from MQ may not be useful above a certain point. I’m no expert in CL performance, so I hope someone else chimes in.

                      Peter Heggie
                      PeterHeggie@crouse.org

                    • #75973
                      Daniel Lee
                      Participant

                        Thanks for your input on this.  It kind of shows me I’m on the right track.  I have been able to dump 500 messages into a queue in 8 seconds and read all 500 of them from a queue within 8 seconds too.  However, I have to choose a read interval of at least 1 and if I set my max read messages to 1 as well that means I’m capped out at 1 message per second which may not be good enough.  I’ll have to check the traffic on that interface.

                        Thanks again! Any other advice you have is very appreciated!

                    Viewing 7 reply threads
                    • The forum ‘Cloverleaf’ is closed to new topics and replies.