On 11/06/2008, at 10:56 PM, beppecosta wrote:

I have a CLLE program (say PGMA) that reads a list o items from a dtaq.

For each item, PGMA calls a RPGLE program (say PGMB) that accesses another system via a DDM file and returns the requested information.

At end, PGMA writes in the joblog the number of items read and after a delay time, loops reading again.

However the PGMA joblog has for each group of items - apart from a count message sent by the PGMA itself - at least 4 other messages:

CPI9150 Remote database job started.
CPI9200 DDM object xxxx in yyyy uses remote object ...
CPI9151 Remote database job ended.
CPI9153 1 DDM conversations ended

How can I remove only these messages and just keep the count message sent by PGMA ?

RCVMSG MSGTYPE(*LAST) will work if the message was sent to a call message queue still on the stack. You will need to examine the messages above to check the from and to programs to determine this. If the messages are accessible then loop over RCVMSG until either no more messages are found or the message ID is not one of the above.

I would RCVMSG *LAST RMV(*NO) MSGID(*MSGID) KEYVAR(&KEYVAR) then check the message ID against the list of message to remove then if found run RCVMSG again specifying RMV(*YES) MSGKEY(&KEYVAR).

I would expect you'd need to remove the messages from within PGMB therefore a CL *MODULE bound to the RPG module could be used or the equivalent Message Handling APIs could be used directly.

Otherwise you could use the List Joblog Messages API but that's overkill.

Simon Coulter.
FlyByNight Software OS/400, i5/OS Technical Specialists

Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
ASCII Ribbon campaign against HTML E-Mail / \

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page