|
Simon, I use a singleton procedure that contains the default program queue. If you send a message without specifying the queue the default is used. In an interactive job the default is set to the initial program. With message subfiles I specify the long format and retrieve the default queue from the singleton procedure. That way you have a queue that stores messages and any procedure can display them, even procedures that are not yet on the stack. If the default has not been set it is *PRV. In a batch job, this is usually fine. Like you, message API wrappers were about the first APIs I supported. I started using this about 5 years ago and have found it is easier. Overall, I have found this technique is more powerful (because any procedure can send a message to any procedure) and easy to use. One problem facing programmers that want to move to ILE is that it takes a long time to build up a set of standard procedures. The APIs in the iSeries-toolkit (at www.iseries-toolkit.org, along with some of the other open-source sites) should give a lot of those programmers a head start. Unlike a book or article, open source provides a way for enhancments to occur as new techniques are identified or bugs are found. With ILE and RPGIV, I think open source is one of the best ways to speed adoption. David Morris >>> shc@flybynight.com.au 02/23/02 16:28 PM >>> Hello David, You wrote: >To a certain degree you can use a fixed name. By default, I send all >user messages for interactive jobs to a single program queue. In a batch >job I send them to *PRV. I also do this with a standard set of >procedures I wrote a few years back. Those procedures hide many of the >ugly details of PEPs etc. They do allow you to override this behavior. I have a similar set of procedures to encapsulate the gory details of message handling -- I think they were among the first set of RPG procedures I wrote. Carsten reminded me of some additional options I had forgotten which nullify the effect of the generated RPG IV entry point name. How do you find the single program queue works in practice? How do you set that up? I mean does your application "know" the call stack and send all messages to the program queue of the main program? Do you walk the call stack looking for a specific program queue? Do you send all messages to the users message queue? I'm curious because I would think that sending to *PRV regardless of where the job is running would be a simpler approach. Regards, Simon Coulter.
As an Amazon Associate we earn from qualifying purchases.
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.