Discussion:
MA88 Reincarnanted? IBM offers the MQ jar files by themselves, officially
Potkay, Peter M (CTO Architecture + Engineering)
2014-09-19 17:01:57 UTC
Permalink
Finally!!!



http://www-01.ibm.com/support/docview.wss?uid=swg21683398&myns=swgws&mynp=OCSSFKSJ&mync=E


Question
How do I obtain just the WebSphere MQ classes for JMS JAR files? I want these JAR files to be used with the MQ Light Service in Bluemix, or to be deployed into a software management tool, or to be used with standalone client applications in my company.
Cause
When developing and running Java(tm) language applications using either the WebSphere MQ V7.5 (and earlier) classes for Java or classes for JMS, you would need to perform either a full server install or install one of the client SupportPacs onto the system where the application would be developed and the system where the application would run. (WebSphere MQ 7.5 introduced the Resource Adapter as a separate download).

This would install too many files, as just the WebSphere MQ classes for Java and classes for JMS files were needed. These files are now available within a self-extracting JAR, to minimize the download and installation size, and the time required to perform the installation.



The instructions they offer to search for this on Fix Central yields no hits, but if you look for all the MQ Fixes you will find the following. Looks like they only made this for MQ version 8 and not 7.*.


"pack: 8.0.0.1-WS-MQ-Install-Java-All
WebSphere MQ JMS and Java 'All Client'

Platforms: AIX 64-bit, pSeries, HPUX 64-bit, IA64, Linux 32-bit,x86, Linux 64-bit,pSeries, Linux 64-bit,x86_64, Linux 64-bit,zSeries, Solaris 64-bit,SPARC, Solaris 64-bit,x86, Windows 32-bit, x86, Windows 64-bit, x86
Applies to versions: 8.0, 8.0.0.1
Upgrades to: 8.0.0.1
Severity: 20 - High Impact/Medium Probability of Occurrence
Categories: Availability, Data
Abstract: WebSphere MQ JMS and Java 'All Client'
Restrictions: license "








Peter Potkay

************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
RW
2014-09-19 18:12:14 UTC
Permalink
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?

I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to
invoke based upon examining the message properties after the message has
been read.

Thoughts? Experiences?

Thanks,
RW

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Roger Lacroix
2014-09-19 18:41:29 UTC
Permalink
Hi,

What about using 1 queue per application module?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
RW
2014-09-19 18:59:28 UTC
Permalink
Hi Roger,

We have no control over the sending application -- the messages are
coming via client attachment from a business partner onto a single queue
we've set up for them to use.

-RW
Post by Roger Lacroix
Hi,
What about using 1 queue per application module?
Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Jefferson Lowrey
2014-09-19 19:07:05 UTC
Permalink
Your front-end program that you talk about using to call the individual
application modules can instead route the messages to new queues.


Thank you,

Jeff Lowrey




From: RW <intj-***@public.gmane.org>
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>



Hi Roger,

We have no control over the sending application -- the messages are coming
via client attachment from a business partner onto a single queue we've
set up for them to use.

-RW



On 9/19/2014 11:41 AM, Roger Lacroix wrote:
Hi,

What about using 1 queue per application module?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc







List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
RW
2014-09-19 19:37:48 UTC
Permalink
Thanks, Jeff -- it could certainly do that...

But my question is mainly about the performance impact message selectors
have on the queue manager when there's a lot of messages in the queue
(several thousand).

Anybody have any experience with this?

Thanks,
RW
Post by Jefferson Lowrey
Your front-end program that you talk about using to call the
individual application modules can instead route the messages to new
queues.
Thank you,
Jeff Lowrey
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
------------------------------------------------------------------------
Hi Roger,
We have no control over the sending application -- the messages are
coming via client attachment from a business partner onto a single
queue we've set up for them to use.
-RW
Hi,
What about using 1 queue per application module?
Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at _http://www.lsoft.com_
<http://www.lsoft.com/>
Post by RW
Archive: _http://listserv.meduniwien.ac.at/archives/mqser-l.html_
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at _http://www.lsoft.com_
<http://www.lsoft.com/>
Archive: _http://listserv.meduniwien.ac.at/archives/mqser-l.html_
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
_http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc_
------------------------------------------------------------------------
_List Archive_
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>- _Manage Your
List Settings_
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1>-
_Unsubscribe_
Instructions for managing your mailing list subscription are provided
in the Listserv General Users Guide available at
_http://www.lsoft.com_ <http://www.lsoft.com/resources/manuals.asp>
------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html>
- Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
Instructions for managing your mailing list subscription are provided
in the Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
____________________________________________________________
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Roger Lacroix
2014-09-19 19:50:44 UTC
Permalink
Hi,

Yes, message selectors will have an impact on performance especially
when the queue is deep. Secondly, why is there so many messages
sitting on the queue that are not being processed?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
Thanks, Jeff -- it could certainly do that...
But my question is mainly about the performance impact message
selectors have on the queue manager when there's a lot of messages
in the queue (several thousand).
Anybody have any experience with this?
Thanks,
RW
Post by Jefferson Lowrey
Your front-end program that you talk about using to call the
individual application modules can instead route the messages to new queues.
Thank you,
Jeff Lowrey
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List
Hi Roger,
We have no control over the sending application -- the messages are
coming via client attachment from a business partner onto a single
queue we've set up for them to use.
-RW
Hi,
What about using 1 queue per application module?
Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
To unsubscribe, write to
and,
Post by RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at
<http://www.lsoft.com/>http://www.lsoft.com
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to
and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at
<http://www.lsoft.com/>http://www.lsoft.com
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
<http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc>http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc
----------
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>List
Archive -
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1>Manage
Your List Settings -
Instructions for managing your mailing list subscription are
provided in the Listserv General Users Guide available at
<http://www.lsoft.com/resources/manuals.asp>http://www.lsoft.com
----------
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>List
Archive -
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1>Manage
Your List Settings -
Instructions for managing your mailing list subscription are
provided in the Listserv General Users Guide available at
<http://www.lsoft.com/resources/manuals.asp>http://www.lsoft.com
____________________________________________________________
[]
----------
<http://listserv.meduniwien.ac.at/archives/mqser-l.html>List Archive
-
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1>Manage
Your List Settings -
Instructions for managing your mailing list subscription are
provided in the Listserv General Users Guide available at
<http://www.lsoft.com/resources/manuals.asp>http://www.lsoft.com
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Jefferson Lowrey
2014-09-19 20:01:12 UTC
Permalink
In general deep queues cause performance issues.

The other thing to keep aware of is "What part of the message are you
selecting against?".

Base MQ can only exercise selectors against mesage headers and properties.
If the messages are coming in from an external source, that you have no
control over, you may not be able to use regular message selectors. If
the data you need to check is in the message body, you would have to use
IBM Integration Bus and it's expanded selector support. And, again,
there's extra work to parse each message, and thus more time needed.



Thank you,

Jeff Lowrey




From: Roger Lacroix <roger.lacroix-***@public.gmane.org>
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Date: 09/19/2014 02:51 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>



Hi,

Yes, message selectors will have an impact on performance especially when
the queue is deep. Secondly, why is there so many messages sitting on the
queue that are not being processed?

Regards,
Roger Lacroix
Capitalware Inc.


At 03:37 PM 9/19/2014, RW wrote:
Thanks, Jeff -- it could certainly do that...

But my question is mainly about the performance impact message selectors
have on the queue manager when there's a lot of messages in the queue
(several thousand).

Anybody have any experience with this?

Thanks,
RW


On 9/19/2014 12:07 PM, Jefferson Lowrey wrote:
Your front-end program that you talk about using to call the individual
application modules can instead route the messages to new queues.


Thank you,

Jeff Lowrey




From: RW <intj-***@public.gmane.org>
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>




Hi Roger,

We have no control over the sending application -- the messages are coming
via client attachment from a business partner onto a single queue we've
set up for them to use.

-RW



On 9/19/2014 11:41 AM, Roger Lacroix wrote:
Hi,

What about using 1 queue per application module?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc







List Archive - Manage Your List Settings - Unsubscribe

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


List Archive - Manage Your List Settings - Unsubscribe

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


____________________________________________________________




List Archive - Manage Your List Settings - Unsubscribe

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Yagudayeva, Irina
2014-09-19 19:41:09 UTC
Permalink
We do. Performance degrades significantly. CPU goes up 10 times.
IBM says that they improved this process in V7 but only when the selector is Message Correlation ID.
Thank you.
Irina

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of RW
Sent: Friday, September 19, 2014 3:38 PM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: Message selectors

Thanks, Jeff -- it could certainly do that...

But my question is mainly about the performance impact message selectors have on the queue manager when there's a lot of messages in the queue (several thousand).

Anybody have any experience with this?

Thanks,
RW

On 9/19/2014 12:07 PM, Jefferson Lowrey wrote:
Your front-end program that you talk about using to call the individual application modules can instead route the messages to new queues.


Thank you,

Jeff Lowrey




From: RW <intj-***@public.gmane.org><mailto:intj-***@public.gmane.org>
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd8hNtF/***@public.gmane.orgNIWIEN.AC.AT>
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org><mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
________________________________



Hi Roger,

We have no control over the sending application -- the messages are coming via client attachment from a business partner onto a single queue we've set up for them to use.

-RW



On 9/19/2014 11:41 AM, Roger Lacroix wrote:
Hi,

What about using 1 queue per application module?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc





________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>


____________________________________________________________
[Loading Image...


________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

________________________________

This email is intended solely for the recipient. It may contain privileged, proprietary or confidential information or material. If you are not the intended recipient, please delete this email and any attachments and notify the sender of the error.

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Shedlock, George
2014-09-19 19:11:25 UTC
Permalink
Another suggestion would be to have the business partners program create a temporary dynamic queue and use that queue name as the REPLYTO queue name.

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of Jefferson Lowrey
Sent: Friday, September 19, 2014 3:07 PM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: Message selectors

Your front-end program that you talk about using to call the individual application modules can instead route the messages to new queues.


Thank you,

Jeff Lowrey




From: RW <intj-***@public.gmane.org<mailto:intj-***@public.gmane.org>>
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd8hNtF/***@public.gmane.orgNIWIEN.AC.AT>
Date: 09/19/2014 02:00 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>>
________________________________



Hi Roger,

We have no control over the sending application -- the messages are coming via client attachment from a business partner onto a single queue we've set up for them to use.

-RW



On 9/19/2014 11:41 AM, Roger Lacroix wrote:
Hi,

What about using 1 queue per application module?

Regards,
Roger Lacroix
Capitalware Inc.
Post by RW
What's the impact of using message selectors on a queue with a lot
of messages? Surely it would degrade performance since the QM has
to sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a
front-end application that reads messages from the queue as they
arrive, with no selectors, which then has logic to choose the
application module to invoke based upon examining the message
properties after the message has been read.
Thoughts? Experiences?
Thanks,
RW
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.lsoft.com_&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=xyaCRHbfyfluB0fIUzKM6tv3oFKJ1zFlNvXcn21FEns&e=>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_archives_mqser-2Dl.html&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=poTfIgiEBk3FF3Wa6VQmt0y0VebaBpjKku5gY8fiuT4&e=>
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.lsoft.com_&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=xyaCRHbfyfluB0fIUzKM6tv3oFKJ1zFlNvXcn21FEns&e=>
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_archives_mqser-2Dl.html&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=poTfIgiEBk3FF3Wa6VQmt0y0VebaBpjKku5gY8fiuT4&e=>
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541c7998580f079972d8amp09duc<https://urldefense.proofpoint.com/v2/url?u=http-3A__thirdpartyoffers.netzero.net_TGL3265_541c7998580f079972d8amp09duc&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=NZD5dQPWo-sZSvQakGlbq7tddQcVWgUKaYpYB0Rnx5c&e=>





________________________________
List Archive<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_archives_mqser-2Dl.html&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=poTfIgiEBk3FF3Wa6VQmt0y0VebaBpjKku5gY8fiuT4&e=> - Manage Your List Settings<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_cgi-2Dbin_wa-3FSUBED1-3Dmqser-2Dl-26A-3D1&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=5fBkxMQAmgMlJTAc9Ya6gK6jCxG5TfxPkRdVjupEq7Y&e=> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.lsoft.com_resources_manuals.asp&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=zKL1r53RaJi-4E7kck7YVHFGPpzcM25G2sdvyCypjrw&e=>

________________________________
List Archive<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_archives_mqser-2Dl.html&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=poTfIgiEBk3FF3Wa6VQmt0y0VebaBpjKku5gY8fiuT4&e=> - Manage Your List Settings<https://urldefense.proofpoint.com/v2/url?u=http-3A__listserv.meduniwien.ac.at_cgi-2Dbin_wa-3FSUBED1-3Dmqser-2Dl-26A-3D1&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=5fBkxMQAmgMlJTAc9Ya6gK6jCxG5TfxPkRdVjupEq7Y&e=> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.lsoft.com_resources_manuals.asp&d=AAMBAg&c=9g4MJkl2VjLjS6R4ei18BA&r=uB-ntpnDBFIYIPKAN9MV-x-FvB91uC-npAN6JlAJjjI&m=6GHkbU_9fPHNpvXISKThoonhftLEJbXWqC5YG3uYE2g&s=zKL1r53RaJi-4E7kck7YVHFGPpzcM25G2sdvyCypjrw&e=>

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
T.Rob
2014-09-19 20:54:56 UTC
Permalink
X-Report-Abuse-To: spam-RAvZ+8ubYLwZD488Lvc0IA6ISnHq+hSGQ0cMyQF+***@public.gmane.org
X-Filter-Fingerprint: IFrWXGses7OKB5S5G8/dJdF8bCbRCAhGucQF+2hmonpA3cTUQ1R++keuE7RDJ8Kg3RbMLUalw1oC
mj99/u+Poh38tEMU4IgC4sNz49qn3HHnhRv/ZJ3kEy8bfiAr+Fb/UpndEJ0YoaLytXXo8BMTaX2p
Mk7LBarWD9Fj4R3eIu5amSKkALoA6KDzkQ8jq89Qglr+eUaqsXi6ilYykBRNmy1w3rhXI7ypWHcC
zReLskSoC1jzfYuYzO5TaopJL1l0EkXKTCB9mgAH2nNvM1GFDcH5C2MO7hTENZJE35bUvwA=
X-Originating-IP: 184.154.225.7
X-SpamExperts-Domain: siteground247.com
X-SpamExperts-Username: 184.154.225.7
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: SB/global_tokens (0.00994892028763)
X-Recommended-Action: accept
X-PMX-Version: 6.1.0.2415318, Antispam-Engine: 2.7.2.2107409,
Antispam-Data: 2014.9.19.211819
X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' AT_TLD 0.1,
FROM_NAME_ONE_WORD 0.05, HTML_00_01 0.05, HTML_00_10 0.05,
BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0,
BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0,
FORGED_MUA_OUTLOOK 0, URI_ENDS_IN_HTML 0, WEBMAIL_SOURCE 0,
WEBMAIL_XOIP 0, WEBMAIL_X_IP_HDR 0, __ANY_URI 0,
__BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0,
__CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0,
__FORWARDED_MSG 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0,
__IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0,
__OUTLOOK_MUA 0, __OUTLOOK_MUA_1 0, __SANE_MSGID 0,
__SUBJ_ALPHA_END 0, __SUBJ_ALPHA_NEGATE 0, __TO_MALFORMED_2 0,
__URI_NS , __USER_AGENT_MS_GENERIC 0'
Sender: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
In-Reply-To: <541C71FE.4060603-***@public.gmane.org>
Precedence: list
List-Help: <http://listserv.meduniwien.ac.at/cgi-bin/wa?LIST=MQSERIES>,
<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?body=INFO%20MQSERIES>
List-Unsubscribe: <mailto:MQSERIES-unsubscribe-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Subscribe: <mailto:MQSERIES-subscribe-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Owner: <mailto:MQSERIES-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Archive: <http://listserv.meduniwien.ac.at/cgi-bin/wa?LIST=MQSERIES>
Archived-At: <http://permalink.gmane.org/gmane.network.mq.devel/18195>

This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of time.
That implies static selection and processing the messages in real time, with
the ability to restart and process messages collected in a queue as an
exception case.

On the other hand, use of selectors on a deep queue assumes something reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.

As others have noted, WMQ selects on things in the message envelope whereas
a custom program or Broker selects based on things in the payload. When you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling program
the msgs that meet the selection criteria.

The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.


Kind regards,
-- T.Rob

T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
RW
2014-09-20 15:44:11 UTC
Permalink
T.Rob, you wrote, "getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection."

Yet my understanding is that there's only a subset of fields in the MQMD
that are indexed, thereby allowing for fast selection. Are you implying
that "modern" queue managers somehow index ALL message properties?

Thanks,
RW
Post by T.Rob
This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of time.
That implies static selection and processing the messages in real time, with
the ability to restart and process messages collected in a queue as an
exception case.
On the other hand, use of selectors on a deep queue assumes something reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.
As others have noted, WMQ selects on things in the message envelope whereas
a custom program or Broker selects based on things in the payload. When you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling program
the msgs that meet the selection criteria.
The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.
Kind regards,
-- T.Rob
T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
T.Rob
2014-09-20 20:33:43 UTC
Permalink
Are you implying that "modern" queue managers somehow index ALL message
properties?





No. I'm implying that having the QMgr select the messages locally and then
send the only the relevant ones over the wire is a *lot* faster than sending
every message over the wire, evaluating the selectors in the client libs,
then having the client libs return to the calling program when they find a
message of interest. If the selection returns every message it won't
matter. But if the selection returns a subset, the performance increase is
proportional to the inverse of the size of the selected subset. The smaller
the selected subset, the greater the difference in performance between QMgr
vs client-side selection.



-- T.Rob



From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of
RW
Sent: Saturday, September 20, 2014 11:44 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: Message selectors



T.Rob, you wrote, "getting high performance requires that you use a modern
client and QMgr which allows the QMgr to perform the selection."

Yet my understanding is that there's only a subset of fields in the MQMD
that are indexed, thereby allowing for fast selection. Are you implying
that "modern" queue managers somehow index ALL message properties?

Thanks,
RW


On 9/19/2014 1:54 PM, T.Rob wrote:



This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of time.
That implies static selection and processing the messages in real time, with
the ability to restart and process messages collected in a queue as an
exception case.

On the other hand, use of selectors on a deep queue assumes something reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.

As others have noted, WMQ selects on things in the message envelope whereas
a custom program or Broker selects based on things in the payload. When you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling program
the msgs that meet the selection criteria.

The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.


Kind regards,
-- T.Rob

T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc








_____

List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> -
Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%
20mqseries>

Instructions for managing your mailing list subscription are provided in the
Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>


To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
RW
2014-09-21 04:06:57 UTC
Permalink
Ah, I see...

Perhaps I should explain further -- the incoming messages all contain a
property that has one of 12 values. There are 12 backend applications,
each designed to handle just one of these property values. The
architect wants each of these 12 applications to open the queue in
shared mode and issue an MQGET with the selector value it's seeking.
Since the property values are not evenly distributed, it's possible one
of the modules will be forcing a sequential read through the queue for
many hundreds (if not thousands) of messages.

My idea is to have a single application read messages from the queue
with no selectors, examine the property value, and pass the message
directly to the appropriate backend application.

Does that clarify the situation?

Thanks,
RW
Post by RW
Are you implying that "modern" queue managers somehow index ALL
message properties?
No. I'm implying that having the QMgr select the messages locally and
then send the only the relevant ones over the wire is a **lot** faster
than sending every message over the wire, evaluating the selectors in
the client libs, then having the client libs return to the calling
program when they find a message of interest. If the selection
returns every message it won't matter. But if the selection returns a
subset, the performance increase is proportional to the inverse of the
size of the selected subset. The smaller the selected subset, the
greater the difference in performance between QMgr vs client-side
selection.
-- T.Rob
Behalf Of *RW
*Sent:* Saturday, September 20, 2014 11:44 AM
*Subject:* Re: Message selectors
T.Rob, you wrote, "getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection."
Yet my understanding is that there's only a subset of fields in the
MQMD that are indexed, thereby allowing for fast selection. Are you
implying that "modern" queue managers somehow index ALL message
properties?
Thanks,
RW
This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of time.
That implies static selection and processing the messages in real time, with
the ability to restart and process messages collected in a queue as an
exception case.
On the other hand, use of selectors on a deep queue assumes something reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.
As others have noted, WMQ selects on things in the message envelope whereas
a custom program or Broker selects based on things in the payload. When you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling program
the msgs that meet the selection criteria.
The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.
Kind regards,
-- T.Rob
T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available athttp://www.lsoft.com
Archive:http://listserv.meduniwien.ac.at/archives/mqser-l.html
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available athttp://www.lsoft.com
Archive:http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc
------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html>
- Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
Instructions for managing your mailing list subscription are provided
in the Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html>
- Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
Instructions for managing your mailing list subscription are provided
in the Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
____________________________________________________________
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Potkay, Peter M (CTO Architecture + Engineering)
2014-09-21 13:37:32 UTC
Permalink
"My idea is to have a single application read messages from the queue with no selectors, examine the property value, and pass the message directly to the appropriate backend application."

A dispatcher.

If the volumes were going to be high and the distribution of 12 wildly uneven AND the consumers were going to be slow meaning the single input queue would frequently have a significant queue depth, this is a very good idea. As long as the dispatcher can quickly hand off messages and go for the next message. But if the dispatcher gets stuck twiddling its thumbs waiting for backend app #10 to finish its previous transaction before it can hand #10 the next message, while other messages pile up, this dispatcher model will actually make overall processing much, much worse. Without the dispatcher at least all 12 backend apps can have concurrent handle on the input queue and the queue manager can be servicing all 12 at once. Granted there may be some higher CPU, and the lonely #12 app that gets one message a day compared to #1 that deals with thousands a minute might find its MQGET call taking a few tenths (?) of a second longer, but overall it would probably work better than the dispatcher. Who cares if you drive the CPU hard - that's what it's there for. But if the dispatcher can hand off the messages quickly and not find itself waiting for one of the 12, maybe even have the power to spawn additional threads of the back end consumers when needed, then go that route.



Peter Potkay

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of RW
Sent: Sunday, September 21, 2014 12:07 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: Message selectors

Ah, I see...

Perhaps I should explain further -- the incoming messages all contain a property that has one of 12 values. There are 12 backend applications, each designed to handle just one of these property values. The architect wants each of these 12 applications to open the queue in shared mode and issue an MQGET with the selector value it's seeking. Since the property values are not evenly distributed, it's possible one of the modules will be forcing a sequential read through the queue for many hundreds (if not thousands) of messages.

My idea is to have a single application read messages from the queue with no selectors, examine the property value, and pass the message directly to the appropriate backend application.

Does that clarify the situation?

Thanks,
RW
Are you implying that "modern" queue managers somehow index ALL message properties?
No. I'm implying that having the QMgr select the messages locally and then send the only the relevant ones over the wire is a *lot* faster than sending every message over the wire, evaluating the selectors in the client libs, then having the client libs return to the calling program when they find a message of interest. If the selection returns every message it won't matter. But if the selection returns a subset, the performance increase is proportional to the inverse of the size of the selected subset. The smaller the selected subset, the greater the difference in performance between QMgr vs client-side selection.

-- T.Rob

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of RW
Sent: Saturday, September 20, 2014 11:44 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Subject: Re: Message selectors

T.Rob, you wrote, "getting high performance requires that you use a modern client and QMgr which allows the QMgr to perform the selection."

Yet my understanding is that there's only a subset of fields in the MQMD that are indexed, thereby allowing for fast selection. Are you implying that "modern" queue managers somehow index ALL message properties?

Thanks,
RW


On 9/19/2014 1:54 PM, T.Rob wrote:



This is not exactly an apples-to-apples comparison. Such a front-end

program would need to know the modules and selection criteria ahead of time.

That implies static selection and processing the messages in real time, with

the ability to restart and process messages collected in a queue as an

exception case.



On the other hand, use of selectors on a deep queue assumes something reads

them *after* they were produced. This implies both dynamic selection and

that reading stored messages is routine rather than the exception.



As others have noted, WMQ selects on things in the message envelope whereas

a custom program or Broker selects based on things in the payload. When you

can use WMQ's selection, getting high performance requires that you use a

modern client and QMgr which allows the QMgr to perform the selection. In

older versions (and, I believe in Compatibility Mode) the client reads all

the messages, evaluates the selectors, then delivers to the calling program

the msgs that meet the selection criteria.



The "right" answer is the one that meets the actual business requirements

and those were not provided with the question so it's hard to provide useful

feedback at this point. The one thing it is easy to recommend is that

whatever you do, make sure that the thing evaluating the selector, whether

that's the QMgr, a Broker instance, or your custom code, runs local on the

same host as the QMgr and uses a Bindings Mode (in memory) connection.





Kind regards,

-- T.Rob



T.Robert Wyatt, Managing partner

IoPT Consulting, LLC

+1 704-443-TROB

https://ioptconsulting.com

https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and,

in the message body (not the subject), write: SIGNOFF MQSERIES

Instructions for managing your mailing list subscription are provided in

the Listserv General Users Guide available at http://www.lsoft.com

Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html

____________________________________________________________

Low-Cost Flood Insurance

Find a policy in your area and get a free flood risk profile!

http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc








________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>


____________________________________________________________
[cid:image001.png-***@public.gmane.org]<http://thirdpartyoffers.netzero.net/TGL3256/?u=http://newsletter.adsonar.com/nwrss/iMapRedirector?placementId=1560786&plid=379054&pid=2070767&ps=36140222&rotation=4&type=2&pos=0&zw=500&zh=70&v=5&url=NA&uid=>[Image removed by sender.]


________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Potkay, Peter M (CTO Architecture + Engineering)
2014-09-21 13:41:27 UTC
Permalink
In other words, if you go the dispatcher route put an MQ queue in front of each of the 12, and put the dispatcher in between the original input queue and the 12 new queues.

But first do some testing to see if this extra complexity is required. It's possible all 12 of your apps running in parallel on the queue are going to be able to keep the queue depth at or near zero and this whole conversation is a moot point.


Peter Potkay

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of Potkay, Peter M (CTO Architecture + Engineering)
Sent: Sunday, September 21, 2014 9:38 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org
Subject: Re: Message selectors

"My idea is to have a single application read messages from the queue with no selectors, examine the property value, and pass the message directly to the appropriate backend application."

A dispatcher.

If the volumes were going to be high and the distribution of 12 wildly uneven AND the consumers were going to be slow meaning the single input queue would frequently have a significant queue depth, this is a very good idea. As long as the dispatcher can quickly hand off messages and go for the next message. But if the dispatcher gets stuck twiddling its thumbs waiting for backend app #10 to finish its previous transaction before it can hand #10 the next message, while other messages pile up, this dispatcher model will actually make overall processing much, much worse. Without the dispatcher at least all 12 backend apps can have concurrent handle on the input queue and the queue manager can be servicing all 12 at once. Granted there may be some higher CPU, and the lonely #12 app that gets one message a day compared to #1 that deals with thousands a minute might find its MQGET call taking a few tenths (?) of a second longer, but overall it would probably work better than the dispatcher. Who cares if you drive the CPU hard - that's what it's there for. But if the dispatcher can hand off the messages quickly and not find itself waiting for one of the 12, maybe even have the power to spawn additional threads of the back end consumers when needed, then go that route.



Peter Potkay

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of RW
Sent: Sunday, September 21, 2014 12:07 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Subject: Re: Message selectors

Ah, I see...

Perhaps I should explain further -- the incoming messages all contain a property that has one of 12 values. There are 12 backend applications, each designed to handle just one of these property values. The architect wants each of these 12 applications to open the queue in shared mode and issue an MQGET with the selector value it's seeking. Since the property values are not evenly distributed, it's possible one of the modules will be forcing a sequential read through the queue for many hundreds (if not thousands) of messages.

My idea is to have a single application read messages from the queue with no selectors, examine the property value, and pass the message directly to the appropriate backend application.

Does that clarify the situation?

Thanks,
RW
Are you implying that "modern" queue managers somehow index ALL message properties?
No. I'm implying that having the QMgr select the messages locally and then send the only the relevant ones over the wire is a *lot* faster than sending every message over the wire, evaluating the selectors in the client libs, then having the client libs return to the calling program when they find a message of interest. If the selection returns every message it won't matter. But if the selection returns a subset, the performance increase is proportional to the inverse of the size of the selected subset. The smaller the selected subset, the greater the difference in performance between QMgr vs client-side selection.

-- T.Rob

From: MQSeries List [mailto:MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org] On Behalf Of RW
Sent: Saturday, September 20, 2014 11:44 AM
To: MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:MQSERIES-0lvw86wZMd9k/***@public.gmane.orgAC.AT>
Subject: Re: Message selectors

T.Rob, you wrote, "getting high performance requires that you use a modern client and QMgr which allows the QMgr to perform the selection."

Yet my understanding is that there's only a subset of fields in the MQMD that are indexed, thereby allowing for fast selection. Are you implying that "modern" queue managers somehow index ALL message properties?

Thanks,
RW


On 9/19/2014 1:54 PM, T.Rob wrote:


This is not exactly an apples-to-apples comparison. Such a front-end

program would need to know the modules and selection criteria ahead of time.

That implies static selection and processing the messages in real time, with

the ability to restart and process messages collected in a queue as an

exception case.



On the other hand, use of selectors on a deep queue assumes something reads

them *after* they were produced. This implies both dynamic selection and

that reading stored messages is routine rather than the exception.



As others have noted, WMQ selects on things in the message envelope whereas

a custom program or Broker selects based on things in the payload. When you

can use WMQ's selection, getting high performance requires that you use a

modern client and QMgr which allows the QMgr to perform the selection. In

older versions (and, I believe in Compatibility Mode) the client reads all

the messages, evaluates the selectors, then delivers to the calling program

the msgs that meet the selection criteria.



The "right" answer is the one that meets the actual business requirements

and those were not provided with the question so it's hard to provide useful

feedback at this point. The one thing it is easy to recommend is that

whatever you do, make sure that the thing evaluating the selector, whether

that's the QMgr, a Broker instance, or your custom code, runs local on the

same host as the QMgr and uses a Bindings Mode (in memory) connection.





Kind regards,

-- T.Rob



T.Robert Wyatt, Managing partner

IoPT Consulting, LLC

+1 704-443-TROB

https://ioptconsulting.com

https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT> and,

in the message body (not the subject), write: SIGNOFF MQSERIES

Instructions for managing your mailing list subscription are provided in

the Listserv General Users Guide available at http://www.lsoft.com

Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html

____________________________________________________________

Low-Cost Flood Insurance

Find a policy in your area and get a free flood risk profile!

http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc








________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>


____________________________________________________________
[cid:image003.png-RFnvSYi0BXSMDaxtU/***@public.gmane.org]<http://thirdpartyoffers.netzero.net/TGL3256/?u=http://newsletter.adsonar.com/nwrss/iMapRedirector?placementId=1560786&plid=379054&pid=2070767&ps=36140222&rotation=4&type=2&pos=0&zw=500&zh=70&v=5&url=NA&uid=>[Image removed by sender.]


________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>

************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************

________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?subject=Unsubscribe&BODY=signoff%20mqseries>

Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
Darren Douch
2014-09-21 18:25:06 UTC
Permalink
Sender: MQSeries List <MQSERIES-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
In-Reply-To: <9BB766F505133C498D6D60FB74AA403C2E680304-Sa/7lAhLIlFOSYu4ox5p5Tfn7f/***@public.gmane.org>
Precedence: list
List-Help: <http://listserv.meduniwien.ac.at/cgi-bin/wa?LIST=MQSERIES>,
<mailto:LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org?body=INFO%20MQSERIES>
List-Unsubscribe: <mailto:MQSERIES-unsubscribe-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Subscribe: <mailto:MQSERIES-subscribe-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Owner: <mailto:MQSERIES-request-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org>
List-Archive: <http://listserv.meduniwien.ac.at/cgi-bin/wa?LIST=MQSERIES>
Archived-At: <http://permalink.gmane.org/gmane.network.mq.devel/18205>

Personally I would prefer to put the dispatcher in anyway. 12 different apps,
all with their own chance of screwing up somewhere down the line (we all spend
enough time and money on testing right?!), all reading from the same queue ...
which one(s) do you point the finger at when 'messages start going missing', or
performance suddenly declines. :)

Just my two penn'orth.

Darren.
Post by Potkay, Peter M (CTO Architecture + Engineering)
In other words, if you go the dispatcher route put an MQ queue in front of
each of the 12, and put the dispatcher in between the original input queue and
the 12 new queues.
But first do some testing to see if this extra complexity is required. It’s
possible all 12 of your apps running in parallel on the queue are going to be
able to keep the queue depth at or near zero and this whole conversation is a
moot point.
*Peter Potkay *
*Potkay, Peter M (CTO Architecture + Engineering)
*Sent:* Sunday, September 21, 2014 9:38 AM
*Subject:* Re: Message selectors
“My idea is to have a single application read messages from the queue with no
selectors, examine the property value, and pass the message directly to the
appropriate backend application.”
A dispatcher.
If the volumes were going to be high and the distribution of 12 wildly uneven
AND the consumers were going to be slow meaning the single input queue would
frequently have a significant queue depth, this is a very good idea. As long
as the dispatcher can quickly hand off messages and go for the next message.
But if the dispatcher gets stuck twiddling its thumbs waiting for backend app
#10 to finish its previous transaction before it can hand #10 the next
message, while other messages pile up, this dispatcher model will actually
make overall processing much, much worse. Without the dispatcher at least all
12 backend apps can have concurrent handle on the input queue and the queue
manager can be servicing all 12 at once. Granted there may be some higher CPU,
and the lonely #12 app that gets one message a day compared to #1 that deals
with thousands a minute might find its MQGET call taking a few tenths (?) of a
second longer, but overall it would probably work better than the dispatcher.
Who cares if you drive the CPU hard – that’s what it’s there for. But if the
dispatcher can hand off the messages quickly and not find itself waiting for
one of the 12, maybe even have the power to spawn additional threads of the
back end consumers when needed, then go that route.
*Peter Potkay *
*Sent:* Sunday, September 21, 2014 12:07 AM
*Subject:* Re: Message selectors
Ah, I see...
Perhaps I should explain further -- the incoming messages all contain a
property that has one of 12 values. There are 12 backend applications, each
designed to handle just one of these property values. The architect wants each
of these 12 applications to open the queue in shared mode and issue an MQGET
with the selector value it's seeking. Since the property values are not evenly
distributed, it's possible one of the modules will be forcing a sequential
read through the queue for many hundreds (if not thousands) of messages.
My idea is to have a single application read messages from the queue with no
selectors, examine the property value, and pass the message directly to the
appropriate backend application.
Does that clarify the situation?
Thanks,
RW
Are you implying that "modern" queue managers somehow index ALL message
properties?
No. I’m implying that having the QMgr select the messages locally and then
send the only the relevant ones over the wire is a **lot** faster than
sending every message over the wire, evaluating the selectors in the
client libs, then having the client libs return to the calling program
when they find a message of interest. If the selection returns every
message it won’t matter. But if the selection returns a subset, the
performance increase is proportional to the inverse of the size of the
selected subset. The smaller the selected subset, the greater the
difference in performance between QMgr vs client-side selection.
-- T.Rob
Behalf Of *RW
*Sent:* Saturday, September 20, 2014 11:44 AM
*Subject:* Re: Message selectors
T.Rob, you wrote, "getting high performance requires that you use a modern
client and QMgr which allows the QMgr to perform the selection."
Yet my understanding is that there's only a subset of fields in the MQMD
that are indexed, thereby allowing for fast selection. Are you implying
that "modern" queue managers somehow index ALL message properties?
Thanks,
RW
This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of time.
That implies static selection and processing the messages in real time, with
the ability to restart and process messages collected in a queue as an
exception case.
On the other hand, use of selectors on a deep queue assumes something reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.
As others have noted, WMQ selects on things in the message envelope whereas
a custom program or Broker selects based on things in the payload. When you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling program
the msgs that meet the selection criteria.
The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.
Kind regards,
-- T.Rob
T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available athttp://www.lsoft.com
Archive:http://listserv.meduniwien.ac.at/archives/mqser-l.html
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available athttp://www.lsoft.com
Archive:http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc
--------------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> -
Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
--------------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> -
Manage Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> -
Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
____________________________________________________________
<http://thirdpartyoffers.netzero.net/TGL3256/?u=http://newsletter.adsonar.com/nwrss/iMapRedirector?placementId=1560786&plid=379054&pid=2070767&ps=36140222&rotation=4&type=2&pos=0&zw=500&zh=70&v=5&url=NA&uid=>Image
removed by sender.
--------------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage
Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe
Instructions for managing your mailing list subscription are provided in the
Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of
addressee and may contain proprietary, confidential and/or privileged
information. If you are not the intended recipient, any use, copying,
disclosure, dissemination or distribution is strictly prohibited. If you are
not the intended recipient, please notify the sender immediately by return
e-mail, delete this communication and destroy all copies.
************************************************************
--------------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage
Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe
Instructions for managing your mailing list subscription are provided in the
Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of
addressee and may contain proprietary, confidential and/or privileged
information. If you are not the intended recipient, any use, copying,
disclosure, dissemination or distribution is strictly prohibited. If you are
not the intended recipient, please notify the sender immediately by return
e-mail, delete this communication and destroy all copies.
************************************************************
--------------------------------------------------------------------------------
List Archive <http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage
Your List Settings
<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe
Instructions for managing your mailing list subscription are provided in the
Listserv General Users Guide available at http://www.lsoft.com
<http://www.lsoft.com/resources/manuals.asp>
To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Jefferson Lowrey
2014-09-22 12:47:03 UTC
Permalink
I believe that even with modern qmgr/clients, the qmgr still doesn't index
the queue on anything other than correlid/msgid.

That said, the fact that you do actually have the thing you want to filter
on in a property is better than if it were in the message data. And it's
going to be faster on a v7.5/v8 qmgr than on a 7.1/7.0.1 qmgr, "in
general".

I still think you should "pass the message directly to the appropriate
backend application" by putting it on another queue, rather than making
any kind of interprocess communication directly, or worse making a
synchronous request of some kind. This is exactly the kind of thing that
queues are good for. Then you can scale up the instances of each backend
application to meet the demand and ensure that none of the intermediate
queues get terribly deep.

And can troubleshoot problems individually, rather than having to figure
out who's got the routing application stuck.

Thank you,

Jeff Lowrey




From: RW <***@NETZERO.NET>
To: ***@LISTSERV.MEDUNIWIEN.AC.AT
Date: 09/20/2014 11:07 PM
Subject: Re: [MQSERIES] Message selectors
Sent by: MQSeries List <***@LISTSERV.MEDUNIWIEN.AC.AT>



Ah, I see...

Perhaps I should explain further -- the incoming messages all contain a
property that has one of 12 values. There are 12 backend applications,
each designed to handle just one of these property values. The architect
wants each of these 12 applications to open the queue in shared mode and
issue an MQGET with the selector value it's seeking. Since the property
values are not evenly distributed, it's possible one of the modules will
be forcing a sequential read through the queue for many hundreds (if not
thousands) of messages.

My idea is to have a single application read messages from the queue with
no selectors, examine the property value, and pass the message directly to
the appropriate backend application.

Does that clarify the situation?

Thanks,
RW
Are you implying that "modern" queue managers somehow index ALL message
properties?


No. I’m implying that having the QMgr select the messages locally and
then send the only the relevant ones over the wire is a *lot* faster than
sending every message over the wire, evaluating the selectors in the
client libs, then having the client libs return to the calling program
when they find a message of interest. If the selection returns every
message it won’t matter. But if the selection returns a subset, the
performance increase is proportional to the inverse of the size of the
selected subset. The smaller the selected subset, the greater the
difference in performance between QMgr vs client-side selection.

-- T.Rob

From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf
Of RW
Sent: Saturday, September 20, 2014 11:44 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT
Subject: Re: Message selectors

T.Rob, you wrote, "getting high performance requires that you use a modern
client and QMgr which allows the QMgr to perform the selection."

Yet my understanding is that there's only a subset of fields in the MQMD
that are indexed, thereby allowing for fast selection. Are you implying
that "modern" queue managers somehow index ALL message properties?

Thanks,
RW


On 9/19/2014 1:54 PM, T.Rob wrote:

This is not exactly an apples-to-apples comparison. Such a front-end
program would need to know the modules and selection criteria ahead of
time.
That implies static selection and processing the messages in real time,
with
the ability to restart and process messages collected in a queue as an
exception case.

On the other hand, use of selectors on a deep queue assumes something
reads
them *after* they were produced. This implies both dynamic selection and
that reading stored messages is routine rather than the exception.

As others have noted, WMQ selects on things in the message envelope
whereas
a custom program or Broker selects based on things in the payload. When
you
can use WMQ's selection, getting high performance requires that you use a
modern client and QMgr which allows the QMgr to perform the selection. In
older versions (and, I believe in Compatibility Mode) the client reads all
the messages, evaluates the selectors, then delivers to the calling
program
the msgs that meet the selection criteria.

The "right" answer is the one that meets the actual business requirements
and those were not provided with the question so it's hard to provide
useful
feedback at this point. The one thing it is easy to recommend is that
whatever you do, make sure that the thing evaluating the selector, whether
that's the QMgr, a Broker instance, or your custom code, runs local on the
same host as the QMgr and uses a Bindings Mode (in memory) connection.


Kind regards,
-- T.Rob

T.Robert Wyatt, Managing partner
IoPT Consulting, LLC
+1 704-443-TROB
https://ioptconsulting.com
https://twitter.com/tdotrob
-----Original Message-----
Behalf
Of RW
Sent: Friday, September 19, 2014 14:12 PM
Subject: Message selectors
What's the impact of using message selectors on a queue with a lot of
messages? Surely it would degrade performance since the QM has to
sequentially search the queue?
I'm having a discussion with an architect who wants to use message
selectors in order to have a series of application modules that only
retrieve relevant messages for processing. I'm suggesting a front-end
application that reads messages from the queue as they arrive, with no
selectors, which then has logic to choose the application module to invoke
based upon examining the message properties after the message has been
read.
Thoughts? Experiences?
Thanks,
RW
message body (not the subject), write: SIGNOFF MQSERIES Instructions for
managing your mailing list subscription are provided in the Listserv
General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
To unsubscribe, write to ***@LISTSERV.MEDUNIWIEN.AC.AT and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
____________________________________________________________
Low-Cost Flood Insurance
Find a policy in your area and get a free flood risk profile!
http://thirdpartyoffers.netzero.net/TGL3265/541ca3c6708c723c67e0amp05duc






List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


____________________________________________________________




List Archive - Manage Your List Settings - Unsubscribe
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com


To unsubscribe, write to ***@LISTSERV.MEDUNIWIEN.AC.AT and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html

Bruce Lerner
2014-09-20 14:22:15 UTC
Permalink
MQ is designed for message creation, movement, delivery and consumption. MQ is not a database management application. Queues are not database rows. MQ implements the SQL-92 subset as a feature - once described as like a trailer-hitch on a VW Beetle.

If you application requires both long-term message storage and a full set of SQL, perhaps your app should offload messages to an actual database. From there, your apps can more efficiently (CPU) select from any/all rows/columns.

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Bruce Lerner
2014-09-21 15:14:00 UTC
Permalink
RW wrote: “My idea is to have a single application read messages from the queue with no selectors, examine the property value, and pass the message directly to the appropriate backend application.”

As mentioned in another post, this is a dispatcher.

My concerns with a single front-end dispatcher app is the potential (likely?) backlog and single point of failure (SPOF) it imposes.
You could instantiate multiple dispatcher apps to minimize both backlog and SPOF.

A simpler design, having n consumers, each selecting the message it is designed to process from a single shared queue seems a less complicated design. This design allows for a 2nd or 3rd instance of a specific consumer to be started to meet the demand for high-volumes of messages.

Please don't get target-locked on hardware (CPU) utilization, how MQ handles SQL-92, or other "internals." Focus, instead, on business process. Internals change with each new release of MQ.

To unsubscribe, write to LISTSERV-0lvw86wZMd9k/bWDasg6f+***@public.gmane.org and,
in the message body (not the subject), write: SIGNOFF MQSERIES
Loading...