CL has a command called MONMSG that can be used to trap an error. IT
also has DOWHILE, DOUNTIL and DOFOR commands that can be used to
I'm assuming you know this already -- and probably tried it, and it
didn't work for some reason. Can you tell us about that?
Personally, I try to avoid using QShell in environments like this. I
always run it in a *NOMAX subsystem. If I need it to work in an
environment where jobs are limited, I tend to go the extra mile (i.e. do
a little more work) and code up a program that does the task for me
without a need to spawn more jobs. But, I'm generalizing here... Your
situation may be different.
On 10/24/2012 9:47 AM, Alan Shore wrote:
I am running a CL program that calls a QSHELL command from batch. I am getting QSH0002 error code 3489 reason code 4.
I have searched the web and found the following explanation (which makes some sense)
QSHELL message 3489 is ENOSYSRSC. Approximately 95 percent of the time this is caused by trying to run QSH from a subsystem where the subsystem has a only a maximum active job of 1 (one). If you can run the command interactively but not from your CL batch program, it is likely that it is due to the maximum active jobs of the subsystem.
To see the maximum active jobs for a subsystem, on the OS/400 command line type the following (for example, for QBATCH):
Press the Enter key. Then, select Option 1, Operational attributes. Review and increase the maximum number of active jobs parm if needed.
Also, although spawn() (and, therefore, QSHELL) bypass the job queue, if the maximum jobs are changed, typically the maximum active jobs for a job queue also must be changed. This is displayed under --> 6. Job queue entries.
Since this error message is a result of running out of available jobs. The recommendation is to put this job in its own subsystem or increase the number of jobs allowed to be running in the subsystem.
This only happening, on average, once or twice a month, no set pattern or time of day, so by the time I am told about the MSGW and I investigate the problem, nothing is apparent as to the cause.
My question is :- how can the QSH0002 error code be captured within a loop to somewhat (and I am stressing somewhat) ignored.
Hope that question makes sense
As always, ALL responses gratefully accepted