Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Fri Jun 30, 2006 4:39 am Post subject: How to execute a program through REXX !!
Hi,
I have the following JCL which uses a system program PING to ping an IP address in our production environment. Now we have to do a similar of this JCL through rexx as we want to trap the SYSPRINT output to check if the PING was successful. Pls note that I cannot use TSO PING as my automation tool does not support OUTTRAP TSO function, so this is the only way I would be able to trap if the PING was successful. The JCL :
Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Fri Jun 30, 2006 4:48 am Post subject:
Also, the SYSPRINT data set does not contain any data. Kindly assist. _________________ I did not fail; I have found 10,000 ways that would not work - Albert Einstein.
Explanation: For the item text could appear the following:
text = STEPLIB
text = USERCAT
text = JOBLIB
text = STEPCAT
text = JOBCAT
The dynamic allocation error code is 0364. For a description of the dynamic allocation return, informational, and error codes, refer to z/OS MVS Programming: Authorized Assembler Services Guide.
Detected by: CALLER
Program: DAIRFAIL
and the 0364 error is
Code:
0364 - JOBLIB/STEPLIB/JOBCAT/STEPCAT specified as a ddname, or associated with specified dsname or pathname. These ddnames are allowed only for special data sets. The accompanying message IKJ56236I identifies which of the above ddname types is in error. (dsname allocation, ddname allocation, unallocation, concatenation, deconcatenation)
Application Programmer Action: Use a different ddname, or consult your system programmer for
the proper ddname to use.
Joined: 24 Oct 2005 Posts: 109 Topics: 36 Location: India
Posted: Mon Jul 03, 2006 9:06 pm Post subject:
Hi Kolusu,
As I added I have now added in the rexx to execute the program PING directly from the data set where it is residing i.e. I do a "EX 'DATASETNAME(PING)' 'IPADDRESS'".
But even then the rexx does not run fine. I knew that I could not use these DD names and so I just called the program direclty from where it is residing, which is what JCL would otherwise do. But even then as I said I am not able to get anything in the SYSPRINT data set, which otherwise when run through JCL gives something like "Ping # 1 response took...."
Pls help me as to what else needs to be done here. Am I missing anything, as I am exactly doing everything which JCL is doing i.e. do all required allocations and then execute the program PING and expect something to be written to SYSPRINT data set.
Regards,
- Amit. _________________ I did not fail; I have found 10,000 ways that would not work - Albert Einstein.
Executing directly from the load dataset is my preferred method.
Check out for messages from the program you are executing. There may even be some datasets allocated dinamically, check it out in your JOBLOG once you test it in batch. Also the same initial program may be calling another modules dinamically, and they are not in your usual search concatenation, in this case you may have a message issuing a S806 message.
However, if you happen to have several modules which you want to execute, and still be able to use the select Cmd, you can libdef your loadlib not as STEP/JOB LIB and other related ddnames for the reasons exposed above. Try to LIBDEF it to ISPLLIB or ISPLUSR instead, normal searching methods still apply, with minor execptions. All this is fully covered and detailed accordingly in the ISPF Services Guide, search for it in the manuals section. _________________ Best wishes,
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum