ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Request Reply Model

Post new topic  Reply to topic Goto page Previous  1, 2
 Request Reply Model « View previous topic :: View next topic » 
Author Message
bruce2359
PostPosted: Thu Oct 27, 2011 6:07 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9475
Location: US: west coast, almost. Otherwise, enroute.

It does; but it only illustrates one metric.

SMF dutifully reported on time-in-processor, and suspends-from-processor for a given application. Neither of these metrics reflect how badly MVS manages workload; rather, they reflect how efficiently and effectively MVS manages aggregate workload through the system.

A manager I worked for years ago got target-locked on high paging rates. (During peak load, MVS was paging at 6,000/pps.) When he asked me what I intended to do about it, I asked him if we were missing any SLAs; or even getting close to missing SLAs. Yes, SMF and RMF dutifully reported these events.

One of my WMQ clients (people, not apps) lamented about performance of his Windows app running sluggishly. The app was written with MQPUT1 calls, since the original spec called for very infrequent message puts. When app use increased, their choice of MQPUT1 no longer made business sense.

MVS moves massive amounts of data concurrently. MVS manages dozens of concurrent processors.

I will agree that ... if you are missing SLAs, and have run out of tuning knobs on z/OS, and you can demonstrate that changing apps to use fixed RTQs will improve (or not adversely degrade) aggregate throughput, then make that choice.

History has shown that we should not develop applications around hardware and software architecture, as these change frequently.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 27, 2011 6:19 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

bruce2359 wrote:
History has shown that we should not develop applications around hardware and software architecture, as these change frequently.


Yes.

This is exactly why you shouldn't use TDQs. Because you should design applications around the expected usecase of the application. And that usecase almost certainly DOES NOT FIT the usecase for TDQs, or if it does currently it likely won't in the future.

It's like your MQPUT1 example. The app was designed for a specific usecase that allowed for the use of MQPUT1s. And then the usecase drifted...
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 6:33 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9475
Location: US: west coast, almost. Otherwise, enroute.

If the answer to the question "why did you pick dynamic vs. static TDQs?" is "because on z/OS WMQ does or doesn't use n-microseconds or n-nanoseconds to do this or that," then the choice is today's platform-dependent. If in v8, the internal architecture changes (improves), the choice may no longer be the right one.

So, is the OP missing SLAs? Will the micro-seconds today or nano-seconds tomorrow yield enough benefit? Will perf-tuning WMQ in this application fashion improve, degrade, or have little impact on aggregate throughput? These are the questions I ask developers/architects when they get target-locked on minutia like this.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 27, 2011 6:49 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

bruce2359 wrote:
If the answer to the question "why did you pick dynamic vs. static TDQs?" is "because on z/OS WMQ does or doesn't use n-microseconds or n-nanoseconds to do this or that,"


You continue to refuse my point.

My point is that you should not use TDQs in any form - static or dynamic.

So the question is NOT "why did you pick dynamic versus static TDQs". It's "Why did you pick TDQs instead of a static real queue"?

And the answer to that question is NOT Platform/technology dependent. And there's likely not a GOOD answer.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 8:20 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9475
Location: US: west coast, almost. Otherwise, enroute.

bruce2359 wrote:
If the answer to the question "why did you pick dynamic vs. static TDQs?" is "because on z/OS WMQ does or doesn't use n-microseconds or n-nanoseconds to do this or that,"

Oooops. I miss-typed. Sorry.

Why pick static (pre-defined) vs. dynamic queues?

The presumption in the answer is that there will be more/less work for the processor(s) in creating dynamic RTQs vs. multiple matches against a pre-defined local queue.

Earlier, I suggested a scenario where an app comes to life, creates a dynamic RTQ, issues a request message; then waits for the replies. Only replies for that request will arrive. No matching is required. There is some labor required to create RTQs; but no matching is necessary.

For a static RTQ, a queue used by many instances of a variety of apps, each must match. This was the scenario I intended.

My scenario was based on a client that had one, and only one, all-purpose, generic reply-to-queue, that all apps used. Not my design; but a design based on the ROT (rule of thumb) 'don't use dynamic RTQs on z/OS.' I'm skeptical of always/never statements. The client experienced widely varied response-times, as few, dozens or hundreds of concurrent apps matched using this single RTQ.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Oct 27, 2011 8:26 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

bruce2359 wrote:
Why pick static (pre-defined) vs. dynamic queues?

Yes. Don't use dynamic queues.

bruce2359 wrote:
For a static RTQ, a queue used by many instances of a variety of apps, each must match. This was the scenario I intended.

Each app should have it's own queues.

bruce2359 wrote:
My scenario was based on a client that had one, and only one, all-purpose, generic reply-to-queue, that all apps used. Not my design; but a design based on the ROT (rule of thumb) 'don't use dynamic RTQs on z/OS.' The client experienced widely varied response-times, as few, dozens or hundreds of concurrent apps matched using this single RTQ.

Well. They've taken a good idea - "don't use dynamic queues" and then run it so far underground that they've hit up against "don't use deep queues" and/or "don't share queues between apps".

bruce2359 wrote:
I'm skeptical of always/never statements.

I always interpret "always/never" statements as "make sure you know what you're doing before trying anything different", and I never fail to read the documentation thoroughly before attempting anything else.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 8:48 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9475
Location: US: west coast, almost. Otherwise, enroute.



The very first tool I learned how to use was a hammer. I used it for all kinds of things, including things for which a screwdriver or wrench would have been more appropriate.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Thu Oct 27, 2011 10:05 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7723

One of the benefits of predefined reply queues over dynamic queues is that you can set up alerting and monitoring for a predefined local queue, and if you have the right MQ management tools in house (i.e. QPASA), you can look at historical data on things like q depths and throughput rates.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
elkinsc
PostPosted: Thu Oct 27, 2011 12:59 pm    Post subject: I agree, monitoring is really important Reply with quote

Centurion

Joined: 29 Dec 2004
Posts: 138
Location: Indy

That is an excellent point on monitoring the reply queues.

TDQs are awfully convenient for applications, and you don't have to worry about pesky things like proper indexing or abandoned messages. But like anything convenient there are hidden costs that must be paid. Like the gas at a drive thru.
Back to top
View user's profile Send private message
exerk
PostPosted: Thu Oct 27, 2011 3:02 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Just to weigh in, many years ago a 'sage' told me that if you need TDQs, or 'worse' PDQs, either you'd got the solution design wrong, or you weren't using MS03. I acknowledge this doesn't bring much to the argument, but I've never had a reason to use them, every standards doc I've seen at the sites I've been at have stated they're not to be used (but that's probably because they never had a viable use-case), so I've always shied away from them myself. Is there any one out there that has a definitive and absolute case of why they should be used?
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 4:16 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9475
Location: US: west coast, almost. Otherwise, enroute.

exerk wrote:
...many years ago ...

I believe this is/was one of those ROTs (rules of thumb) that reflected more the state of dynamic queues back at v2 era. Way back at v4.1, an MVS mq support team person I was working with mentioned the n-number of machine instructions (path length) it took to create a dynamic queue. The ROT was for a particular version/release. Does it apply with current WMQ releases?

Somewhere in the v5/v6 era, another support person mentioned that, to improve throughput, qmgr software maintained/maintains a pool of pre-built, skeleton queues, so that the instruction path length is dramatically shorter for dynamic queues. The ROT of-old became an iROT (irrational rule of thumb); but iRots tend have a lives of their own.

Perhaps someone from the support team can shed some light on this... or not.

This minutia is not something I lose sleep over; but being a propeller-head, I try to keep. I'm concerned more with aggregate workload throughput; and look to a wide variety of tuning opportunities to meet SLAs.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
elkinsc
PostPosted: Thu Oct 27, 2011 4:44 pm    Post subject: The performance improvements for TDQs Reply with quote

Centurion

Joined: 29 Dec 2004
Posts: 138
Location: Indy

as supplied by the 'skeleton queues' enhancement, was only applied to the distributed version of MQ, not on z/OS. I was just not specific enough in my earlier posting. Those changes have never been ported to z/OS. Perhaps someone from this community would submit a requirement for this? If it comes from a customer it gets far more weight than from me.

As a geek, the CPU requirements for TDQs I've seen have ranged from as much as 1500 microseconds to the low of 200 more than the same requests to private queues.


Have a lovely evening all!
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Oct 28, 2011 10:42 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20763
Location: LI,NY

exerk wrote:
Just to weigh in, many years ago a 'sage' told me that if you need TDQs, or 'worse' PDQs, either you'd got the solution design wrong, or you weren't using MS03.... Is there any one out there that has a definitive and absolute case of why they should be used?

Yes ... and the use of TDQ is mandated by a bad application design of the requesting application...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » General IBM MQ Support » Request Reply Model
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.