Hi, All:

There is no need to create a separate object, like a *DTAARA, for this. The *PGM can issue ALCOBJ against the program object (itself).

Use the same logic as shown (below) for the *DTAARA, but use the "library/pgmname" of the *PGM itself, and "*PGM" for the object type. :-)

But, you might not want to limit a "listener" to only one "instance" in this way when using a *DTAQ, because, as others have mentioned, it is often desirable to be able to start multiple instances of your server (listener) job to service a single request queue, depending on the frequency and volume of messages arriving in the message queue, to ensure that there is almost always a server job ready and waiting to service the next request as soon as it arrives (or soon thereafter). (This is a way of "tuning" your application performance.)

HTH,

Mark S. Waterbury

> Albert York wrote:
This is what I do.

The monitor program allocates a data area (usually the same name as the job) exclusively. Then other programs can determine if it is active by attemptnig to allocate it (with a wait time of 0).

For example.

The monitor program:

CRTDTAARA DTAARA(QGPL/DTAQJOB) TYPE(*CHAR) LEN(1)
MONMSG MSGID(CPF1023) /* already exists */
ALCOBJ OBJ((QGPL/DTAQJOB *DTAARA *EXCL)) WAIT(0)
MONMSG MSGID(CPF0000) EXEC(GOTO EOJ) /* Already active so end */


Other jobs:
ALCOBJ OBJ((QGPL/DTAQJOB *DTAARA *EXCL)) WAIT(0)
MONMSG MSGID(CPF0000) EXEC(GOTO ACTIVE)
/* if the data area can be allocated then the monitor job is not active */
DLCOBJ OBJ((QGPL/DTAQJOB *DTAARA *EXCL))
SBMJOB CMD(CALL PGM(DTAQPGM)) JOB(DTAQMON)
ACTIVE:

----- Original Message -----
From: "Bob Bledsoe" <bledsoe.bob@xxxxxxxxx>
To: "Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx>
Subject: Re: Dtaq/ UsrQ Monitor
Date: Mon, 16 Mar 2009 10:24:19 -0700


Well I need a lot of education on queues. But that said I think Albert
somehow came up with what I'm looking for. How do I tell if the program that
which monitors the queue is active?

Thanks
Bob B


On Mon, Mar 16, 2009 at 10:05 AM, Albert York <albertyork@xxxxxxxxx> wrote:

If the queue exists then it is active. You don't have to start it.

To check if the queue exists use the CHKOBJ command.

Do you mean that you want to know if the program which monitors the queue
is active?

Albetr

----- Original Message -----
From: "Bob Bledsoe" <bledsoe.bob@xxxxxxxxx>
To: "Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx>
Subject: Re: Dtaq/ UsrQ Monitor
Date: Mon, 16 Mar 2009 09:41:55 -0700


The problem here is that I'm not sure what I mean. I have not done
anywork
with the datq or usrq before. The program is calling another progran that
is
used to start the queue. I don't want to start the queue if it is already
there and active. How do I know if the queue is there and active?

Thanks,
Bob



On Mon, Mar 16, 2009 at 9:36 AM, Alan Campin <alan0307d@xxxxxxxxx>
wrote:
Not sure what you mean by instance? Do you mean a message in the queue?
Do
you mean how do you monitor for a message in a Data Queue or User
Queue?
I have a service program that implements functions that read and write
to
user queues if that is what you need.

On Mon, Mar 16, 2009 at 10:22 AM, Bob Bledsoe <bledsoe.bob@xxxxxxxxx>
wrote:

Good Morning,
I am writing a RPGLE program where I will be starting Dtaq's and
usrq's.
I
want to monitor so that I only start up an instance when there are no
instances currently. I have looked around but can't find anything
that
shows
how to do the monitor. Can someone please give me a push in the right
direction?

Thank you,

Bob B
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


--
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.