|
>> Dave Mahadevan wrote: >> >> > Folks: >> > >> > Is there a way to get the user message que deallocated to a job. >> > Currently, only the workstation allocated with the message que can >> >> > delete messages from the que. I would like to be able to delete >> > messages from any display. You can go to the display which has >> the >> > lock >> > on the queue and then dlcobj. Is there another way? >> >> >> Whenever the workstation signs on, use a break message handling >> program >> that receives all messages and forwards them to the WS msgq. But >> this >> program also looks for a specially coded "deallocate" message, and >> when >> it receives it, it releases the message queue. Then setup another >> program that will send the coded message, then clear the messages. >> > > Gee Art, seems like a lot of work just to delete a message from the > user's message que ! Plus messages have to be removed from the user's > que! I like that specially coded "deallocate" message though, got an > example handy? I would really like to deallocate the user's message > que from any display signed on by the user, so deleting messages > become possible instead of the dreaded CPF2417. > > Dave Mahadevan.. mailto:mahadevan@fuse.net > Dave: By "specially coded" I meant that the message couldn't look like any other message. For instance, send "dEaLlOcAtE", something that a user would not normally send. Problem is, a program running under the job that owns the lock must release it, so you should use a break message handling program. A simple one I keyed in from Midrange Computing or News/400 about 7 or 8 years ago, receives a message and forwards it as a status message to line 25 of the display: PGM PARM(&MSGQ &MSGQLIB &MSGK) DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10) DCL VAR(&MSGQLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGK) TYPE(*CHAR) LEN(4) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) RCVMSG MSGQ(&MSGQLIB/&MSGQ) MSGKEY(&MSGK) RMV(*NO) + MSG(&MSGDTA) /* if deallocate, DLCOBJ */ IF COND(%SST(&MSGDTA 1 10) *EQ "dEaLlOcAtE") + THEN(DO) DLCOBJ.... RETURN ENDDO SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + TOPGMQ(*EXT) MSGTYPE(*STATUS) ENDPGM At signon time, do a CHGMSGQ XXX DLVRY(*BREAK) PGM(THISPGM). Sorry if this is too much work! Perhaps if this was Visual Basic, it would be two left clicks, one right click, four double clicks, and one general protection fault.... -- Art Tostaine, Jr. Creative Computer Associates, Inc. Parlin, NJ 08859 732-525-9414 732-603-1456 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This is the Midrange System Mailing List! To submit a new message, * * send your mail to "MIDRANGE-L@midrange.com". To unsubscribe from * * this list send email to MAJORDOMO@midrange.com and specify * * 'unsubscribe MIDRANGE-L' in the body of your message. Questions * * should be directed to the list owner / operator: david@midrange.com * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.