Posted by Jim Walker on March 05, 2008 at 11:50:09:
In Reply to: Using IOF unconventionally or How to avoid learning JES2 programming posted by Mike on March 04, 2008 at 08:45:45:
I have some questions about your posting on the IOF Q&A Message Board, and some comments on what you are doing.
1. I'm not familiar with PGM=INVOKIOF. To run IOF in batch TSO, we usually use PGM=IKJEFT01 or PGM=IKJEFT1B. But I suspect that this is not part of your problem.
2. Rexx has a funny requirement that when you change to a new environment, commands can not be supplied from the current Rexx exec. So we use a technique like the following to get into IOF:
parse source . . cmdname . . . . . envr
if envr \= 'IOF' then do
push 'IOF * TYPE(VOLUME).%'cmdname
exit
end
address IOF
....
ie we stack the IOF command and re-invoke the same exec. On re-entry we will be in the IOF environment.
3. The userid you used to run this job did not have the authority to run IOF. The error message is "You cannot use IOF because you are not in any IOF group".
4. Even if you could run IOF you will not necessarily be able to run the SPV command (TYPE(VOLUME)). If you run as a started task you will most likely solve both these problems.
5. Do you really want information on all spool volumes? Or would the total spool utilization be sufficient? If you just want total spool utilization the $JD DETAILS command may give you better information than SPV. And it gives lots of other JES2 information. If you have the authority to issue the CONSOLE command (CN) in IOF try the following:
CN
$JD DETAILS
You will get output like the following (our system is very lightly loaded). The TGS (track groups) line is the SPOOL utilization line.
$HASP9103 D DETAIL
$HASP9104 JES2 RESOURCE USAGE SINCE 2008.029 4:00:00
RESOURCE LIMIT USAGE LOW HIGH AVERAGE
-------- -------- -------- -------- -------- --------
BERT 21000 229 226 280 230
BSCB 10 0 0 0 0
BUFX 400 0 0 9 0
CKVR 17 0 0 2 0
CMBS 1000 0 0 7 0
CMDS 999 0 0 0 0
ICES 999 0 0 0 0
JNUM 688889 2832 2687 2852 2781
JOES 20000 7156 6915 7156 7062
JQES 10000 4845 4705 4872 4796
LBUF 100 0 0 0 0
NHBS 100 0 0 0 0
SMFB 53 0 0 2 0
TGS 16690 15262 14402 16232 15159
TTAB 3 0 0 0 0
VTMB 46 0 0 0 0
$HASP9105 JES2 SAMPLING STATISTICS SINCE 2008.029 4:00:00
TYPE COUNT PERCENT
---------------- ------ -------
ACTIVE 1704551 2.83
IDLE 8245004 96.94
LOCAL LOCK 128454 0.21
NON-DISPATCHABLE 3 0.00
PAGING 0 0.00
OTHER WAITS 0 0.00
TOTAL SAMPLES 78012
$HASP9106 JES2 MAIN TASK MVS WAIT TABLE
DATE TIME ADDRESS MODULE OFFSET WT-COUNT SM-COUNT PCE XIT
-------- -------- -------- -------- ------ -------- -------- --- ---
2007.309 12:38:45 000A3922 HASPCKPT+00733A 1 7 23 JCO
2007.309 12:38:46 08A062BA HASPIRDA+00285A 1 5 23 JCO
2007.309 12:40:07 00FE4D36 IEAVEWAT+0007DE 4 5 MLT JCO
2007.309 12:38:47 0131B5C6 IEWFETCH+00152E 1 3 23 JCO
2007.309 12:38:47 001151EA HASPDYN +000F7A 1 2 23 JCO
You can start a CONSOLE from a Rexx exec, issue a command, and read each line of command response into Rexx variables. This might be better than using SPV.