MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » October 2012

Re: Trapping a QSHELL command error in CL



fixed

Hi Alan,

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 implement loops.

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:
Hi everyone
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)
Quote
Solution:
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):
DSPSBSD SBSD(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.
End quote
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






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

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot 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 here. If you have questions about this, please contact