Re: Design Review - custom trigger monitor vs triggered program

2003-07-31 Thread Richard Brunette
Pavel

Maybe I'm just being a little think here, but I'm not understanding how
removing our dead letter queues would help these situations that you
mention.

First of I'm leaving message order out of the picture because that agreed
is a holy war I don't want to get into.

Secondly I agree that you certainly have issues to deal with managing the
dead queue and the messages that land there. However it seems to me that
you have far more issues to deal with if you do not allow the queue manager
to use a dead queue. If you are referring to application writing to the
dead queue, I agree I would not endorse using a dead queue as an
applications poison/retry queue. That would be best for that business logic
to deal with on their own queues. But the queue manage is a nother story. I
would never run a queue manager without a dead queue. I have no desire to
be called at all hours because one application messed up the whole channel.

Without a dead queue for the queue manager to route undeliverable messages,
what processes are you going to need in place to keep your channels and
XMIT queues healthy and functioning? I certainly don't want business logic
messing with my XMIT queues. I also would be no more pleased to go
searching all the XMIT queues (talk about security policies) for a
particular messaging problem, than I would be to have to find it in the
dead queues. I know I'd rather have the errant message dumped into the dead
queue and the rest of the good messages be transmitted. (I know of no
business unit that will accept the other guys program has a problem as an
excuse for why their production applications can't run.) At least there are
plenty of usable dead letter handlers out there that can be configured to
resolve or route messages off the dead queue.  If messages are stuck in the
XMIT queue on the other hand, then you've got real problems and I know of
no automated process that is going to save you.

As for other asynchronous message systems, I'm curious how they assure
message delivery and keep the channels between servers open and flowing
freely without something similar on one end or the other.

Rick


|-+---
| |   Pavel Tolkachev |
| |   [EMAIL PROTECTED]|
| |   |
| |   Sent by: MQSeries List  |
| |   [EMAIL PROTECTED]   |
| |   |
| |   |
| |   |
| |   Wednesday July 30, 2003 10:46 AM|
| |   Please respond to MQSeries List |
| |   |
|-+---
  
|
  |
|
  |   To: [EMAIL PROTECTED]
  |
  |   cc:  
|
  |   Subject:   Re: Design Review - custom trigger monitor vs triggered program   
|
  
|




Hello Dave,

Well, it is almost religious thing, so I was hesitant to touch the theme.
But if you ask :-):

1. It breaks the default message order guarantees MQ series normally
provides.
2. It requires handling, and because, after the close look, each
application has slightly different requirements to handle it, it turns
our that 2 must be developed instead of one for each task: one to process
the normal flow and another to process messages from dead letter. And
handlers must be worked out in terms of security and other application
management issues. Considering the policy for actioning on nondeliverable
messages a part of business logic seems more appropriate to me.
3. When using distributed messaging, you may have a nice encounter every
time a user compains his/her application did not receive some particular
message you may have to search for it in dead letter queues (read trush
cans :-) ) across the globe -- breaking all security policies on your way
etc..
4. DLQ does not have analogs in other messaging systems I have to use, so
using it reduces interoperability and portability of the software and
(business) processes -- if you use it.

Hopefully, this won't start another holy war.. This is just my opinion,
very humble, and I am in no way MQ expert. Just take it as another weird
thing I heard if you feel strongly disagree.

Pavel






  David C.
  PartridgeTo:
  [EMAIL PROTECTED]
  [EMAIL PROTECTED]cc

Re: Design Review - custom trigger monitor vs triggered program

2003-07-31 Thread Miller, Dennis
I agree. Without a DLQ, you risk channels shutting down, trigger monitors stopping, 
and other undesireable side-effects in the event of mis-behaving applications, 
networks, and opertors.  Now I would not recommend designing an application around the 
DLQ, but it's good to have it there as a last-gasp safeguard to keep messages flowing 
when something goes south. The goal would be to make appearances in the DLQ a rarity.  
When a message shows up there, the alerts go out as it signals a problem that needs to 
be fixed.  Better to have the DLQ as a cushion so messages can keep flowing while 
the problem is being chased. The notion of poking around in DLQ's for lost messages 
is backwards.  A message in the DLQ should be regarded as a found problem not a 
lost message.

 -Original Message-
 From: Richard Brunette [SMTP:[EMAIL PROTECTED]
 Sent: Thursday, July 31, 2003 7:31 AM
 To:   [EMAIL PROTECTED]
 Subject:  Re: Design Review - custom trigger monitor vs triggered program
 
 Pavel
 
 Maybe I'm just being a little think here, but I'm not understanding how
 removing our dead letter queues would help these situations that you
 mention.
 
 First of I'm leaving message order out of the picture because that agreed
 is a holy war I don't want to get into.
 
 Secondly I agree that you certainly have issues to deal with managing the
 dead queue and the messages that land there. However it seems to me that
 you have far more issues to deal with if you do not allow the queue manager
 to use a dead queue. If you are referring to application writing to the
 dead queue, I agree I would not endorse using a dead queue as an
 applications poison/retry queue. That would be best for that business logic
 to deal with on their own queues. But the queue manage is a nother story. I
 would never run a queue manager without a dead queue. I have no desire to
 be called at all hours because one application messed up the whole channel.
 
 Without a dead queue for the queue manager to route undeliverable messages,
 what processes are you going to need in place to keep your channels and
 XMIT queues healthy and functioning? I certainly don't want business logic
 messing with my XMIT queues. I also would be no more pleased to go
 searching all the XMIT queues (talk about security policies) for a
 particular messaging problem, than I would be to have to find it in the
 dead queues. I know I'd rather have the errant message dumped into the dead
 queue and the rest of the good messages be transmitted. (I know of no
 business unit that will accept the other guys program has a problem as an
 excuse for why their production applications can't run.) At least there are
 plenty of usable dead letter handlers out there that can be configured to
 resolve or route messages off the dead queue.  If messages are stuck in the
 XMIT queue on the other hand, then you've got real problems and I know of
 no automated process that is going to save you.
 
 As for other asynchronous message systems, I'm curious how they assure
 message delivery and keep the channels between servers open and flowing
 freely without something similar on one end or the other.
 
 Rick
 
 
 |-+---
 | |   Pavel Tolkachev |
 | |   [EMAIL PROTECTED]|
 | |   |
 | |   Sent by: MQSeries List  |
 | |   [EMAIL PROTECTED]   |
 | |   |
 | |   |
 | |   |
 | |   Wednesday July 30, 2003 10:46 AM|
 | |   Please respond to MQSeries List |
 | |   |
 |-+--- 
   
 |
   |  
   |
   |   To: [EMAIL PROTECTED]  
 |
   |   cc:
   |
   |   Subject:   Re: Design Review - custom trigger monitor vs triggered program 
   |
   
 |
 
 
 
 
 Hello Dave,
 
 Well, it is almost religious thing, so I was hesitant to touch the theme.
 But if you ask :-):
 
 1. It breaks the default message order guarantees MQ series normally
 provides.
 2. It requires handling, and because, after the close look, each
 application has slightly different requirements to handle it, it turns
 our that 2 must be developed instead of one for each task: one to process
 the normal flow and another to process messages from dead letter. And
 handlers must

AW: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Raabe, Stefan
it will not work (see also dennis post). the design
is definitly wrong.

that should be strong enough to change it.

regards

stefan




-Ursprungliche Nachricht-
Von: Heggie, Peter [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 29. Juli 2003 21:01
An: [EMAIL PROTECTED]
Betreff: Re: Design Review - custom trigger monitor vs triggered program


Sorry for blank reply. The rationale is that it was delivered by a
consultant. And I need something strong and obvious to change it...

Peter Heggie
(315) 428 - 3193


-Original Message-
From: Stefan Sievert [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 2:51 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Peter,
what is your design rationale for having multiple initiation queues?
Stefan


From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered
program
Date: Tue, 29 Jul 2003 13:01:11 -0400

Hi Phil.. I'm buried in ERP implementation.
Thanks for reply - Actually the program does close the application
queue after it gets a message, so it behaves nicely but does more opens

and closes. The actual usage is light, about 100 a day (initially). The

program is not multi-threaded, but the design was to call for more
trigger monitors (to monitor other initiation queues..). The
recommendation was to set the application queue triggering to EVERY,
but I think FIRST would be better.

And Stefan, thank you also, I agree that triggering while already
triggered does not make sense, and somehow that must be a waste of
resources. In the past I have used the 'regular' triggering (ON FIRST).

Peter Heggie
(315) 428 - 3193


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered
program


Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close
the queue ?  If not, then MQ will not issue a new trigger message. Is
the program multi-threaded?  if not, then you're causing a bottle neck
for other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to
process the queues, but depends upon how frequently it gets scheduled.
I assume it's TRIGGER FIRST.


Phil




   Heggie, Peter
   [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
   NGRID.COM   cc:
   Sent by: MQSeriesSubject:  Design Review
-
custom trigger monitor vs triggered program
   List
   [EMAIL PROTECTED]
   n.AC.AT


   07/29/2003 11:16
   AM
   Please respond to
   MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application
queue triggers normally - MQ writes a trigger message to the init queue

and the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom

trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has

the init queue open, MQ will not invoke another instance of program
XYZ.

Every time another message arrives on the application queue, program
XYZ will get another trigger message.


This is not a classic trigger configuration, but are there problems
with it? The trigger monitor started at MQ startup time is a long
running process that basically feeds program XYZ trigger messages.
Program XYZ is also a long running process that monitors the init
queue. To shutdown the program, you have to treat it the same way as a
trigger monitor - disable the init queue for Get, but that's not a very

bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more

efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted

Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Robert Broderick
Oh NO It's the Consultants are always right syndrone. (Even when they
are wrong.) This is giving me a bad name!!! (More than I usually do for
myself). This looks like a job for The Objective Reasoning super
hero!!! Oh sorry, he has already spoken!!! (sorry I couldn't resist!!)
  bobbee


From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program
Date: Tue, 29 Jul 2003 15:01:01 -0400
Sorry for blank reply. The rationale is that it was delivered by a
consultant. And I need something strong and obvious to change it...
Peter Heggie
(315) 428 - 3193
-Original Message-
From: Stefan Sievert [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 2:51 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program
Peter,
what is your design rationale for having multiple initiation queues?
Stefan
From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered
program
Date: Tue, 29 Jul 2003 13:01:11 -0400

Hi Phil.. I'm buried in ERP implementation.
Thanks for reply - Actually the program does close the application
queue after it gets a message, so it behaves nicely but does more opens
and closes. The actual usage is light, about 100 a day (initially). The

program is not multi-threaded, but the design was to call for more
trigger monitors (to monitor other initiation queues..). The
recommendation was to set the application queue triggering to EVERY,
but I think FIRST would be better.

And Stefan, thank you also, I agree that triggering while already
triggered does not make sense, and somehow that must be a waste of
resources. In the past I have used the 'regular' triggering (ON FIRST).

Peter Heggie
(315) 428 - 3193


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered
program


Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close
the queue ?  If not, then MQ will not issue a new trigger message. Is
the program multi-threaded?  if not, then you're causing a bottle neck
for other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to
process the queues, but depends upon how frequently it gets scheduled.
I assume it's TRIGGER FIRST.


Phil




   Heggie, Peter
   [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
   NGRID.COM   cc:
   Sent by: MQSeriesSubject:  Design Review
-
custom trigger monitor vs triggered program
   List
   [EMAIL PROTECTED]
   n.AC.AT


   07/29/2003 11:16
   AM
   Please respond to
   MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application
queue triggers normally - MQ writes a trigger message to the init queue
and the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program
XYZ.

Every time another message arrives on the application queue, program
XYZ will get another trigger message.


This is not a classic trigger configuration, but are there problems
with it? The trigger monitor started at MQ startup time is a long
running process that basically feeds program XYZ trigger messages.
Program XYZ is also a long running process that monitors the init
queue. To shutdown the program, you have to treat it the same way as a
trigger monitor - disable the init queue for Get, but that's not a very
bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered

Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Heggie, Peter
Its..OBJECTIVE REASONING MAN.. ! Its not too late to restore the good
name of [EMAIL PROTECTED]

Thanks everybody! I think I've got enough now!

Peter Heggie
(315) 428 - 3193


-Original Message-
From: Robert Broderick [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, July 30, 2003 7:34 AM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Oh NO It's the Consultants are always right syndrone. (Even when
they are wrong.) This is giving me a bad name!!! (More than I usually do
for myself). This looks like a job for The Objective Reasoning
super hero!!! Oh sorry, he has already spoken!!! (sorry I couldn't
resist!!)


   bobbee


From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered 
program
Date: Tue, 29 Jul 2003 15:01:01 -0400

Sorry for blank reply. The rationale is that it was delivered by a 
consultant. And I need something strong and obvious to change it...

Peter Heggie
(315) 428 - 3193


This e-mail and any files transmitted with it, are confidential to National Grid and 
are intended solely for the use of the individual or entity to whom they are 
addressed.  If you have received this e-mail in error, please contact the National 
Grid USA Enterprise Support Center on 508-389-3375 or 315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Thomas, Don
Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
 Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National
Grid and are intended solely for the use of the individual or entity to whom
they are addressed.  If you have received this e-mail in error, please
contact the National Grid USA Enterprise Support Center on 508-389-3375 or
315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Pavel Tolkachev
Thanks Don!

I thought I was the only one and so was keeping the embarassed silence :-). In my 
personal list of bad things to do the unfounded use of triggering (and when is it 
actually well founded?) sits right next to defining default queue managers, dead 
letter queues and couple of other things like breaking the guarantees of natural order 
of messages in queues and then using groups to get things together.

Just as a side note..
Pavel




  Thomas, Don
  [EMAIL PROTECTED]To:   [EMAIL PROTECTED]
  OM  cc:
  Sent by: MQSeriesSubject:  Re: Design Review - custom 
trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/30/2003 08:43
  AM
  Please respond to
  MQSeries List






Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
 Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National
Grid and are intended solely for the use of the individual or entity to whom
they are addressed.  If you have received this e-mail in error, please
contact the National Grid USA Enterprise Support Center on 508-389-3375 or
315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





--

This e-mail may contain confidential and/or privileged information. If you are not the 
intended recipient (or have received this e-mail in error) please notify the sender 
immediately and destroy this e-mail. Any unauthorized copying, disclosure or 
distribution of the material in this e-mail is strictly forbidden.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread philip . distefano
Don,

Well it's one way for an application to process any number of unknown named
queues...





  Thomas, Don
  [EMAIL PROTECTED]To:   [EMAIL PROTECTED]
  OM  cc:
  Sent by: MQSeriesSubject:  Re: Design Review - custom 
trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/30/2003 08:43
  AM
  Please respond to
  MQSeries List






Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
 Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National
Grid and are intended solely for the use of the individual or entity to
whom
they are addressed.  If you have received this e-mail in error, please
contact the National Grid USA Enterprise Support Center on 508-389-3375 or
315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





This communication is for informational purposes only.  It is not intended as
an offer or solicitation for the purchase or sale of any financial instrument
or as an official confirmation of any transaction. All market prices, data
and other information are not warranted as to completeness or accuracy and
are subject to change without notice. Any comments or statements made herein
do not necessarily reflect those of J.P. Morgan Chase  Co., its
subsidiaries and affiliates.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread philip . distefano
I agree with Paval on the DLQ issue.  Unless you are prepared to process
the DLQ and your applications can suffer both delayed and out of sequence
messages you really shouldn't use on.  Also, if some errant queue manager
is sending your queue manager messages to queues which do not exist, the
errant queue manager can fill up you DLQ causing all kinds of problems.
You should really consider all the issues when using it.





  David C.
  PartridgeTo:   [EMAIL PROTECTED]
  [EMAIL PROTECTED]cc:
  RIMEUR.COM   Subject:  Re: Design Review - custom 
trigger monitor vs triggered program
  Sent by: MQSeries
  List
  [EMAIL PROTECTED]
  .AC.AT


  07/30/2003 10:19
  AM
  Please respond to
  MQSeries List






Pavel, could you expand on why you think that defining a default dead
letter
queue is a bad thing?

When I define a QM I always use -u SYSTEM.DEAD.LETTER.QUEUE.

I'd agree on all the other things as being sins, though whether they are
deadly or merely venal is possibly arguable (I'd go for deadly myself).

Dave

-Original Message-
From: MQSeries List [mailto:[EMAIL PROTECTED] Behalf Of Pavel
Tolkachev
Sent: 30 July 2003 14:18
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Thanks Don!

I thought I was the only one and so was keeping the embarassed silence :-).
In my personal list of bad things to do the unfounded use of triggering
(and
when is it actually well founded?) sits right next to defining default
queue
managers, dead letter queues and couple of other things like breaking the
guarantees of natural order of messages in queues and then using groups to
get things together.

Just as a side note..
Pavel




  Thomas, Don
  [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
  OM  cc:
  Sent by: MQSeriesSubject:  Re: Design Review
-
custom trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/30/2003 08:43
  AM
  Please respond to
  MQSeries List






Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
 Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad

Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Pavel Tolkachev
Hello Dave,

Well, it is almost religious thing, so I was hesitant to touch the theme. But if you 
ask :-):

1. It breaks the default message order guarantees MQ series normally provides.
2. It requires handling, and because, after the close look, each application has 
slightly different requirements to handle it, it turns our that 2 must be developed 
instead of one for each task: one to process the normal flow and another to process 
messages from dead letter. And handlers must be worked out in terms of security and 
other application management issues. Considering the policy for actioning on 
nondeliverable messages a part of business logic seems more appropriate to me.
3. When using distributed messaging, you may have a nice encounter every time a user 
compains his/her application did not receive some particular message you may have to 
search for it in dead letter queues (read trush cans :-) ) across the globe -- 
breaking all security policies on your way etc..
4. DLQ does not have analogs in other messaging systems I have to use, so using it 
reduces interoperability and portability of the software and (business) processes -- 
if you use it.

Hopefully, this won't start another holy war.. This is just my opinion, very humble, 
and I am in no way MQ expert. Just take it as another weird thing I heard if you 
feel strongly disagree.

Pavel






  David C.
  PartridgeTo:   [EMAIL PROTECTED]
  [EMAIL PROTECTED]cc:
  RIMEUR.COM   Subject:  Re: Design Review - custom 
trigger monitor vs triggered program
  Sent by: MQSeries
  List
  [EMAIL PROTECTED]
  .AC.AT


  07/30/2003 10:19
  AM
  Please respond to
  MQSeries List






Pavel, could you expand on why you think that defining a default dead letter
queue is a bad thing?

When I define a QM I always use -u SYSTEM.DEAD.LETTER.QUEUE.

I'd agree on all the other things as being sins, though whether they are
deadly or merely venal is possibly arguable (I'd go for deadly myself).

Dave

-Original Message-
From: MQSeries List [mailto:[EMAIL PROTECTED] Behalf Of Pavel
Tolkachev
Sent: 30 July 2003 14:18
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Thanks Don!

I thought I was the only one and so was keeping the embarassed silence :-).
In my personal list of bad things to do the unfounded use of triggering (and
when is it actually well founded?) sits right next to defining default queue
managers, dead letter queues and couple of other things like breaking the
guarantees of natural order of messages in queues and then using groups to
get things together.

Just as a side note..
Pavel




  Thomas, Don
  [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
  OM  cc:
  Sent by: MQSeriesSubject:  Re: Design Review -
custom trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/30/2003 08:43
  AM
  Please respond to
  MQSeries List






Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
 Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process

Re: Design Review - custom trigger monitor vs triggered program

2003-07-30 Thread Dave Adam

what is embarassing is inheriting an environment where the use of triggers actually produced the opposite effect

the interesting part was that if the count exceeded the factor used to invoke the trigger, it would never activate the trigger, so scheduling the triggered job twice a day always cleared it back to stage zero so it could self correct

however the interesting one was the group that added a wait of 30 seconds to a message queue that triggered a job about every 2 minutes ( when actually removing the trigger and scheduling the job every 8 hours accomplished the same results, with a 70% reduction in batch jobs being run (this was a daily process function per division)

now on the other queue which is set to first, has no wait in it, so it acts like EVERY and triggers 1000 jobs an hour (can't convince them to add the wait)

I did download the MA12 support pac to get the quiesce code (since they were cancelling the trigger STC)

I actually find the trigger fascinating (but it does have its share of quirks)

Dave Adam
Supervalu Home Office
Project Specialist
(952) 828-4736
[EMAIL PROTECTED]

If one of the engines on a two engine plane fails
The other engine will always get you to the site of the crash
--







Pavel Tolkachev [EMAIL PROTECTED]
Sent by: MQSeries List [EMAIL PROTECTED]
07/30/2003 08:17 AM
Please respond to MQSeries List


To:[EMAIL PROTECTED]
cc:
Subject:Re: Design Review - custom trigger monitor vs triggered program


Thanks Don!

I thought I was the only one and so was keeping the embarassed silence :-). In my personal list of bad things to do the unfounded use of triggering (and when is it actually well founded?) sits right next to defining default queue managers, dead letter queues and couple of other things like breaking the guarantees of natural order of messages in queues and then using groups to get things together.

Just as a side note..
Pavel




   Thomas, Don
   [EMAIL PROTECTED]To:[EMAIL PROTECTED]
   OM   cc:
   Sent by: MQSeriesSubject: Re: Design Review - custom trigger monitor vs triggered program
   List
   [EMAIL PROTECTED]
   n.AC.AT


   07/30/2003 08:43
   AM
   Please respond to
   MQSeries List






Peter,
If program XYZ is going to be continuously running, why wouldn't it
be designed to simply do a Get with wait or just periodically check the
queue? I mean triggering is designed to start an application or process, if
it is already running then triggering is redundant. Instead of trying to
tell the consultant why he/she shouldn't do it that way, ask him/her why
they feel the need to essentially waste the resources by triggering an
application that is already running.

Don Thomas
EDS - PASC
* Phone: +01-412-893-1659
   Fax: 412-893-1844
* mailto:[EMAIL PROTECTED]



-Original Message-
From: Heggie, Peter [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 11:17 AM
To: [EMAIL PROTECTED]
Subject: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am

Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Heggie, Peter
Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National Grid and 
are intended solely for the use of the individual or entity to whom they are 
addressed.  If you have received this e-mail in error, please contact the National 
Grid USA Enterprise Support Center on 508-389-3375 or 315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


AW: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Raabe, Stefan
Peter,

after the trigger monitor has started xyz, xyz will also
listen to the initq. so you have 2 programs listening to
the initq, which one will get the next trigger message?

(quote on)
Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.
(quote off)
This is wrong in my opinion. an open application queue (open for
input) will prevent mq to create another trigger message.
but you wrote you close the application queue.
so mq will create a trigger message if the trigger conditions
are fullfilled. if the trigger monitor will get it, it
will start another xyz program.

if you trigger and stay alive, why do you trigger?

1. no triggering at all

start xyz to listen on the application queue. if
a message arrives, it will get processed. use
fail if quiescing (and maybe get-disable) to
end your application, or use a special kind
of message content (a stop message that will
make your program to end.

2. use triggering and end

trigger monitor will start xyz, xyz will process
all messages and wait a specific amount of time
for more messages to arrive (get-wait).
if nothing arrives, then xyz ends and will
be triggered again if messages arrive on the
queue.

3. use triggering and stay alive

trigger monitor will start xyz, xyz will process
all messages and wait infinite for mor messages
to arrive. no need to read the initq if you
have the application queue open for input
(trigger first will not be fired because of this).



check how frequent messages arrive in the queue
and pick up the best and less-complex solution.

seperate business and technics, application programs
perform application work, trigger monitor does
the technical stuff.
I would not use the triggered application program
to do the work of the trigger monitor.


Regards, Stefan


-Ursprungliche Nachricht-
Von: Heggie, Peter [mailto:[EMAIL PROTECTED]
Gesendet: Dienstag, 29. Juli 2003 17:17
An: [EMAIL PROTECTED]
Betreff: Design Review - custom trigger monitor vs triggered program


Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National
Grid and are intended solely for the use of the individual or entity to whom
they are addressed.  If you have received this e-mail in error, please
contact the National Grid USA Enterprise Support Center on 508-389-3375 or
315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread philip . distefano
Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close the
queue ?  If not, then MQ will not issue a new trigger message.
Is the program multi-threaded?  if not, then you're causing a bottle neck
for other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to
process the queues, but depends upon how frequently it gets scheduled.  I
assume it's TRIGGER FIRST.


Phil




  Heggie, Peter
  [EMAIL PROTECTED]To:   [EMAIL PROTECTED]
  NGRID.COM   cc:
  Sent by: MQSeriesSubject:  Design Review - custom 
trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/29/2003 11:16
  AM
  Please respond to
  MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to National
Grid and are intended solely for the use of the individual or entity to
whom they are addressed.  If you have received this e-mail in error, please
contact the National Grid USA Enterprise Support Center on 508-389-3375 or
315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





This communication is for informational purposes only.  It is not intended as
an offer or solicitation for the purchase or sale of any financial instrument
or as an official confirmation of any transaction. All market prices, data
and other information are not warranted as to completeness or accuracy and
are subject to change without notice. Any comments or statements made herein
do not necessarily reflect those of J.P. Morgan Chase  Co., its
subsidiaries and affiliates.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Miller, Dennis
 -Original Message-
 From: Heggie, Peter [SMTP:[EMAIL PROTECTED]
 Sent: Tuesday, July 29, 2003 8:17 AM
 To:   [EMAIL PROTECTED]
 Subject:   Design Review - custom trigger monitor vs triggered program
 
 Hello all - would appreciate your responses on this one.
 
 We have someone who wants to use a custom trigger monitor to both read
 the init queue message and process the application queue message. It
 would be a long running process, on AIX, that waits forever (loops) on
 the init queue. When a message arrives there (trigger message), it
 extracts the queue name from the MQTMC2 and then opens the application
 queue and processes the message. Then it goes back into the loop.
 
 Setup - A trigger monitor is started at MQ startup time, pointing to a
 specific init queue. The first message coming into the application queue
 triggers normally - MQ writes a trigger message to the init queue and
 the native MQ trigger monitor starts program XYZ according to the
 process definition. The program XYZ is also a trigger monitor, a custom
 trigger monitor.
 
 Program XYZ has been passed the MQTMC2, so it reads it to get the
 application queue name. It opens the application queue, reads and
 processes the message and closes the application queue. It then goes
 back into a loop where it reads the init queue. Because program XYZ has
 the init queue open, MQ will not invoke another instance of program XYZ.
 
 Every time another message arrives on the application queue, program XYZ
 will get another trigger message.
 
 
 This is not a classic trigger configuration, but are there problems with
 it? The trigger monitor started at MQ startup time is a long running
 process that basically feeds program XYZ trigger messages. Program XYZ
 is also a long running process that monitors the init queue. To shutdown
 the program, you have to treat it the same way as a trigger monitor -
 disable the init queue for Get, but that's not a very bad thing.
 
 I am used to the simplicity of a trigger monitor that starts an
 application program, that reads application messages until
 No-More-Messages, and gets triggered again when needed. That seems more
 efficient, but is it?
 
 Peter Heggie
 National Grid, Syracuse, NY
 
 
 This e-mail and any files transmitted with it, are confidential to National Grid and 
 are intended solely for the use of the individual or entity to whom they are 
 addressed.  If you have received this e-mail in error, please contact the National 
 Grid USA Enterprise Support Center on 508-389-3375 or 315-428-6360.
 
 Instructions for managing your mailing list subscription are provided in
 the Listserv General Users Guide available at http://www.lsoft.com
 Archive: http://vm.akh-wien.ac.at/MQSeries.archive

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive


Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Heggie, Peter
Hi Phil.. I'm buried in ERP implementation. 
Thanks for reply - Actually the program does close the application queue
after it gets a message, so it behaves nicely but does more opens and
closes. The actual usage is light, about 100 a day (initially). The
program is not multi-threaded, but the design was to call for more
trigger monitors (to monitor other initiation queues..). The
recommendation was to set the application queue triggering to EVERY, but
I think FIRST would be better. 

And Stefan, thank you also, I agree that triggering while already
triggered does not make sense, and somehow that must be a waste of
resources. In the past I have used the 'regular' triggering (ON FIRST).

Peter Heggie
(315) 428 - 3193


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close the
queue ?  If not, then MQ will not issue a new trigger message. Is the
program multi-threaded?  if not, then you're causing a bottle neck for
other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to
process the queues, but depends upon how frequently it gets scheduled.
I assume it's TRIGGER FIRST.


Phil




  Heggie, Peter
  [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
  NGRID.COM   cc:
  Sent by: MQSeriesSubject:  Design Review -
custom trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT


  07/29/2003 11:16
  AM
  Please respond to
  MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.

Every time another message arrives on the application queue, program XYZ
will get another trigger message.


This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.

I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to
National Grid and are intended solely for the use of the individual or
entity to whom they are addressed.  If you have received this e-mail in
error, please contact the National Grid USA Enterprise Support Center on
508-389-3375 or 315-428-6360.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive





This communication is for informational purposes only.  It is not
intended as an offer or solicitation for the purchase or sale of any
financial instrument or as an official confirmation of any transaction.
All market prices, data and other information are not warranted as to
completeness or accuracy and are subject to change without notice. Any
comments or statements made herein do not necessarily reflect those of
J.P. Morgan Chase  Co., its subsidiaries and affiliates.

Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide

Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Stefan Sievert
Peter,
what is your design rationale for having multiple initiation queues?
Stefan

From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program
Date: Tue, 29 Jul 2003 13:01:11 -0400
Hi Phil.. I'm buried in ERP implementation.
Thanks for reply - Actually the program does close the application queue
after it gets a message, so it behaves nicely but does more opens and
closes. The actual usage is light, about 100 a day (initially). The
program is not multi-threaded, but the design was to call for more
trigger monitors (to monitor other initiation queues..). The
recommendation was to set the application queue triggering to EVERY, but
I think FIRST would be better.
And Stefan, thank you also, I agree that triggering while already
triggered does not make sense, and somehow that must be a waste of
resources. In the past I have used the 'regular' triggering (ON FIRST).
Peter Heggie
(315) 428 - 3193
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program
Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close the
queue ?  If not, then MQ will not issue a new trigger message. Is the
program multi-threaded?  if not, then you're causing a bottle neck for
other trigger messages for other queues.
It might be more efficient since MQ doesn't have to load a program to
process the queues, but depends upon how frequently it gets scheduled.
I assume it's TRIGGER FIRST.
Phil



  Heggie, Peter
  [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
  NGRID.COM   cc:
  Sent by: MQSeriesSubject:  Design Review -
custom trigger monitor vs triggered program
  List
  [EMAIL PROTECTED]
  n.AC.AT
  07/29/2003 11:16
  AM
  Please respond to
  MQSeries List




Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read
the init queue message and process the application queue message. It
would be a long running process, on AIX, that waits forever (loops) on
the init queue. When a message arrives there (trigger message), it
extracts the queue name from the MQTMC2 and then opens the application
queue and processes the message. Then it goes back into the loop.
Setup - A trigger monitor is started at MQ startup time, pointing to a
specific init queue. The first message coming into the application queue
triggers normally - MQ writes a trigger message to the init queue and
the native MQ trigger monitor starts program XYZ according to the
process definition. The program XYZ is also a trigger monitor, a custom
trigger monitor.
Program XYZ has been passed the MQTMC2, so it reads it to get the
application queue name. It opens the application queue, reads and
processes the message and closes the application queue. It then goes
back into a loop where it reads the init queue. Because program XYZ has
the init queue open, MQ will not invoke another instance of program XYZ.
Every time another message arrives on the application queue, program XYZ
will get another trigger message.
This is not a classic trigger configuration, but are there problems with
it? The trigger monitor started at MQ startup time is a long running
process that basically feeds program XYZ trigger messages. Program XYZ
is also a long running process that monitors the init queue. To shutdown
the program, you have to treat it the same way as a trigger monitor -
disable the init queue for Get, but that's not a very bad thing.
I am used to the simplicity of a trigger monitor that starts an
application program, that reads application messages until
No-More-Messages, and gets triggered again when needed. That seems more
efficient, but is it?
Peter Heggie
National Grid, Syracuse, NY
This e-mail and any files transmitted with it, are confidential to
National Grid and are intended solely for the use of the individual or
entity to whom they are addressed.  If you have received this e-mail in
error, please contact the National Grid USA Enterprise Support Center on
508-389-3375 or 315-428-6360.
Instructions for managing your mailing list subscription are provided in
the Listserv General Users Guide available at http://www.lsoft.com
Archive: http://vm.akh-wien.ac.at/MQSeries.archive




This communication is for informational purposes only.  It is not
intended as an offer or solicitation for the purchase or sale of any
financial instrument or as an official confirmation of any transaction.
All market prices, data and other information are not warranted as to
completeness or accuracy

Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Miller, Dennis
Sorry about the blank response(s); I seem to have fat fingers today.

First, assuming your design would work, I cannot tell that it accomplishes anything 
useful. What is your customer's aim?

You said
Because program XYZ has the init queue open, MQ will not invoke another instance of 
program XYZ.

Not true. An open initq is a triggering requirement; it does not suppress 
trigger messages.


You said
Every time another message arrives on the application queue, program XYZ will get 
another trigger message.

If you trigger on EVERY, the INITQ will indeed receive another trigger 
message.  But, you have the native trigger monitor (NTV) and XYZ  competing for 
trigger messages. At first, most of them will be captured by NTV because XYZ has other 
work to do.  Each time NTV will spawn a new instance of XYZ, adding to the contention. 
  

Even if you could somehow quiesce NTV after XYZ takes over, the design of XYZ 
does not scale. While XYZ is processing the INITQ it cannot process the application 
queue(s) and visa versa.  That may be tolerable for a single application, but consider 
what happens when your second triggered application comes along. You have a design 
where one triggered application (XYZ) is processing all triggered queues. Not only is 
that a processing bottleneck, but it's forced to an inefficent programming model--open 
q, read msg, process msg, close q--because each TM has the potential to reference a 
different application queue.  Need I even mention the maintenance implications of 
having XYZ process every different kind of message that flows through every triggered 
queue.   

If you are intending that your custom trigger monitor be dedicated to a single 
application queue, then you have you have missed the point of triggering.  The idea of 
monitoring an INITQ is so that you don't need a long running task for each application 
queue. If you restrict your INITQ to a single application, you gain nothing--might as 
well just monitor the application queue.

You should also take care not to fall in the trap that trigtype EVERY gives a 
one-to-one relationship between trigger messages and application messages. The 
triggered EVERY app generally needs to loop on the triggered queue until empty in 
order to pick up orphan messages. Given that, as XYZ is emptying the triggered queue, 
more trigger messages will appear. Those that are picked up by NTM will invoke another 
XYZ.  Those picked up by one of the XYZ's will have no messages to process. 

Now, if trigtype=FIRST, then XYZ will fire only once while app queue is open. 
In that case, I see no useful purpose for XYZ going after the INITQ.

regards,
Dennis

 -Original Message-
 From: Heggie, Peter [SMTP:[EMAIL PROTECTED]
 Sent: Tuesday, July 29, 2003 8:17 AM
 To:   [EMAIL PROTECTED]
 Subject:   Design Review - custom trigger monitor vs triggered program
 
 Hello all - would appreciate your responses on this one.
 
 We have someone who wants to use a custom trigger monitor to both read
 the init queue message and process the application queue message. It
 would be a long running process, on AIX, that waits forever (loops) on
 the init queue. When a message arrives there (trigger message), it
 extracts the queue name from the MQTMC2 and then opens the application
 queue and processes the message.  Then it goes back into the loop. 
 
 Setup - A trigger monitor is started at MQ startup time, pointing to a
 specific init queue. The first message coming into the application queue
 triggers normally - MQ writes a trigger message to the init queue and
 the native MQ trigger monitor starts program XYZ according to the
 process definition. The program XYZ is also a trigger monitor, a custom
 trigger monitor.
 
 Program XYZ has been passed the MQTMC2, so it reads it to get the
 application queue name. It opens the application queue, reads and
 processes the message and closes the application queue. It then goes
 back into a loop where it reads the init queue. Because program XYZ has
 the init queue open, MQ will not invoke another instance of program XYZ.
 
 Every time another message arrives on the application queue, program XYZ
 will get another trigger message.
 
 
 This is not a classic trigger configuration, but are there problems with
 it? The trigger monitor started at MQ startup time is a long running
 process that basically feeds program XYZ trigger messages. Program XYZ
 is also a long running process that monitors the init queue. To shutdown
 the program, you have to treat it the same way as a trigger monitor -
 disable the init queue for Get, but that's not a very bad thing.
 
 I am used to the simplicity of a trigger monitor that starts an
 application program, that reads application messages until
 No-More-Messages, and gets triggered again when needed. That seems more
 efficient, but is it?
 
 Peter Heggie
 National Grid, Syracuse, NY
 
 
 This e-mail and any files

Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Heggie, Peter
Peter Heggie
(315) 428 - 3193


-Original Message-
From: Stefan Sievert [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 29, 2003 2:51 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Peter,
what is your design rationale for having multiple initiation queues?
Stefan


From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered 
program
Date: Tue, 29 Jul 2003 13:01:11 -0400

Hi Phil.. I'm buried in ERP implementation.
Thanks for reply - Actually the program does close the application 
queue after it gets a message, so it behaves nicely but does more opens

and closes. The actual usage is light, about 100 a day (initially). The

program is not multi-threaded, but the design was to call for more 
trigger monitors (to monitor other initiation queues..). The 
recommendation was to set the application queue triggering to EVERY, 
but I think FIRST would be better.

And Stefan, thank you also, I agree that triggering while already 
triggered does not make sense, and somehow that must be a waste of 
resources. In the past I have used the 'regular' triggering (ON FIRST).

Peter Heggie
(315) 428 - 3193


-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered 
program


Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close 
the queue ?  If not, then MQ will not issue a new trigger message. Is 
the program multi-threaded?  if not, then you're causing a bottle neck 
for other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to 
process the queues, but depends upon how frequently it gets scheduled. 
I assume it's TRIGGER FIRST.


Phil




   Heggie, Peter
   [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
   NGRID.COM   cc:
   Sent by: MQSeriesSubject:  Design Review
-
custom trigger monitor vs triggered program
   List
   [EMAIL PROTECTED]
   n.AC.AT


   07/29/2003 11:16
   AM
   Please respond to
   MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read 
the init queue message and process the application queue message. It 
would be a long running process, on AIX, that waits forever (loops) on 
the init queue. When a message arrives there (trigger message), it 
extracts the queue name from the MQTMC2 and then opens the application 
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a 
specific init queue. The first message coming into the application 
queue triggers normally - MQ writes a trigger message to the init queue

and the native MQ trigger monitor starts program XYZ according to the 
process definition. The program XYZ is also a trigger monitor, a custom

trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the 
application queue name. It opens the application queue, reads and 
processes the message and closes the application queue. It then goes 
back into a loop where it reads the init queue. Because program XYZ has

the init queue open, MQ will not invoke another instance of program 
XYZ.

Every time another message arrives on the application queue, program 
XYZ will get another trigger message.


This is not a classic trigger configuration, but are there problems 
with it? The trigger monitor started at MQ startup time is a long 
running process that basically feeds program XYZ trigger messages. 
Program XYZ is also a long running process that monitors the init 
queue. To shutdown the program, you have to treat it the same way as a 
trigger monitor - disable the init queue for Get, but that's not a very

bad thing.

I am used to the simplicity of a trigger monitor that starts an 
application program, that reads application messages until 
No-More-Messages, and gets triggered again when needed. That seems more

efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to 
National Grid and are intended solely for the use of the individual or 
entity to whom they are addressed.  If you have received this e-mail in

error, please contact the National Grid USA Enterprise Support Center 
on 508-389-3375 or 315-428-6360.

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

Re: Design Review - custom trigger monitor vs triggered program

2003-07-29 Thread Heggie, Peter
Sorry for blank reply. The rationale is that it was delivered by a
consultant. And I need something strong and obvious to change it...

Peter Heggie
(315) 428 - 3193


-Original Message-
From: Stefan Sievert [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 29, 2003 2:51 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered program


Peter,
what is your design rationale for having multiple initiation queues?
Stefan


From: Heggie, Peter [EMAIL PROTECTED]
Reply-To: MQSeries List [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered 
program
Date: Tue, 29 Jul 2003 13:01:11 -0400

Hi Phil.. I'm buried in ERP implementation.
Thanks for reply - Actually the program does close the application 
queue after it gets a message, so it behaves nicely but does more opens

and closes. The actual usage is light, about 100 a day (initially). The

program is not multi-threaded, but the design was to call for more 
trigger monitors (to monitor other initiation queues..). The 
recommendation was to set the application queue triggering to EVERY, 
but I think FIRST would be better.

And Stefan, thank you also, I agree that triggering while already 
triggered does not make sense, and somehow that must be a waste of 
resources. In the past I have used the 'regular' triggering (ON FIRST).

Peter Heggie
(315) 428 - 3193


-Original Message-
From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 12:17 PM
To: [EMAIL PROTECTED]
Subject: Re: Design Review - custom trigger monitor vs triggered 
program


Hi Pete !  Long time...

After the program processes the Queue named in MQTMC2, does it close 
the queue ?  If not, then MQ will not issue a new trigger message. Is 
the program multi-threaded?  if not, then you're causing a bottle neck 
for other trigger messages for other queues.

It might be more efficient since MQ doesn't have to load a program to 
process the queues, but depends upon how frequently it gets scheduled. 
I assume it's TRIGGER FIRST.


Phil




   Heggie, Peter
   [EMAIL PROTECTED]To:
[EMAIL PROTECTED]
   NGRID.COM   cc:
   Sent by: MQSeriesSubject:  Design Review
-
custom trigger monitor vs triggered program
   List
   [EMAIL PROTECTED]
   n.AC.AT


   07/29/2003 11:16
   AM
   Please respond to
   MQSeries List






Hello all - would appreciate your responses on this one.

We have someone who wants to use a custom trigger monitor to both read 
the init queue message and process the application queue message. It 
would be a long running process, on AIX, that waits forever (loops) on 
the init queue. When a message arrives there (trigger message), it 
extracts the queue name from the MQTMC2 and then opens the application 
queue and processes the message. Then it goes back into the loop.

Setup - A trigger monitor is started at MQ startup time, pointing to a 
specific init queue. The first message coming into the application 
queue triggers normally - MQ writes a trigger message to the init queue

and the native MQ trigger monitor starts program XYZ according to the 
process definition. The program XYZ is also a trigger monitor, a custom

trigger monitor.

Program XYZ has been passed the MQTMC2, so it reads it to get the 
application queue name. It opens the application queue, reads and 
processes the message and closes the application queue. It then goes 
back into a loop where it reads the init queue. Because program XYZ has

the init queue open, MQ will not invoke another instance of program 
XYZ.

Every time another message arrives on the application queue, program 
XYZ will get another trigger message.


This is not a classic trigger configuration, but are there problems 
with it? The trigger monitor started at MQ startup time is a long 
running process that basically feeds program XYZ trigger messages. 
Program XYZ is also a long running process that monitors the init 
queue. To shutdown the program, you have to treat it the same way as a 
trigger monitor - disable the init queue for Get, but that's not a very

bad thing.

I am used to the simplicity of a trigger monitor that starts an 
application program, that reads application messages until 
No-More-Messages, and gets triggered again when needed. That seems more

efficient, but is it?

Peter Heggie
National Grid, Syracuse, NY


This e-mail and any files transmitted with it, are confidential to 
National Grid and are intended solely for the use of the individual or 
entity to whom they are addressed.  If you have received this e-mail in

error, please contact the National Grid USA Enterprise Support Center 
on 508-389-3375 or 315-428-6360.

Instructions for managing your mailing list