New System Command Script Facility
- From: Brian_Westerman@xxxxxxxxxxxx (Brian Westerman)
- Date: 26 Apr 2006 00:25:48 -0700
Hi all,
I'm currently finished writing a new replacement command script processor
because trying to update the old version ran into too many issues and just
was running into too many walls. I've also decided to add quite a few new
options since the new program is capable of handling things much better, and
I wanted to make sure that I haven't missed anyone's favorites, so if you
don't mind looking through my list below to let me know if there is
something that you don't see that would be helpful, or somthing that you do
see that seems worthless, I would really appreciate it.
All of the advanced run-time capabilities are there. It can run with or
without JES, (e.g. SUB=MSTR), and has RACF checking to make sure that the
person who is trying to execute the commands is "allowed" to by the site,
(at least that RACF thinks so, and better support for non-RACF sites). So
there should be no problems with using it to AUTOIPL or SHUTDOWN the system
without JES being active (or before/after JES is up/down). I'm also working
on a better manual (Instllation and operations guide).
The IF-type commands now have (the highly requested) ELSE processing
available. And I have also coded in Nested-IF (also highly requested)
support (up to 4 level of nested-if support is is coded, but I can support
up to 256 levels easily).
I have also added support for the scripting commands to be in upper or lower
case, which I know has caused a lot of problems for people in the past
(including me) as lower-case script commands were sent as console commands
in the past. I couldn't just uppercase everything because some of the
commands that have to be issued need to be in mixed case.
Itmes encliosed in brackets [] are "alternate" forms of the same script
logic command.
1) IF BEFORE HH:MM [or BEFORE] (will process commands between this command
and ENDIF if the current time is BEFORE the time being tested for HH:MM),
Full ELSE support.
2) IF AFTER HH:MM [or AFTER] (same as IF BEFORE, except the other way
around.) Full ELSE suport.
3) IF SYSID [or IFSYSID or SYSID] (begins IF logic if the specified System
ID (up to 8 characters) is true, so you can have the same script used on
multiple LPARs (PROD/TEST, etc.) and have different things done. Full ELSE
support. Would JES2 node be useful to anyone, or is SYSID enough?
4) IF DOW dayofweek [or IFDOW or DOW] (begins IF logic depending on what day
of the week it is (Monday through Sunday). Full ELSE support.
5) IF MYNAME [or IFMYNAME or MYNAME](begins IF logic depending on the name
of the task that the command script processor is running as (JOB or TASK)),
Full ELSE support.
6) DELAY sss (wait some period of time 1-3 digits in seconds only)
7) PAUSE (same as delay, but has extra features (5 digit times in seconds,
but also minutes,hours and EVENT support) which can delay "until" something
happens or an operator response is received).
8) REPLYTO [REPLY] (will reply to outstanding WTOR's by JOB/MESSAGEID/etc.)
9) IF STARTED jjjjjjjj [or IFSTARTED] (begins IF logic processing based on
if a JOB or TASK is currently executing). Full ELSE support.
10) IF STOPPED jjjjjjjj [or STOPPED] (Begins IF logic processing based on if
a JOB or TASK is NOT running). Full ELSE support.
11) WAIT UNTIL STARTED [or STARTED] (will pause the script and issue a
non-scroll highlighted console message and BEEP until a specific JOB or TASK
is running).
12) WAIT UNTIL STOPPED [or STOPPED] (will pause the script and issue a
non-scroll highlighted console message and BEEP until a specific JOB or TASK
is no longer running.
13) WAIT UNTIL ONLINE [or ONLINE] (will pause the script and issue a
non-scroll highlighted console message and BEEP until a specific VOLSER or
UNIT is mounted, (now DISK or TAPE)).
14) WAIT UNTIL OFFLINE [or OFFLINE] (will pause the script and issue a
non-scroll highlighted console message and BEEP until a specific VOLSER or
UNIT is OFFLINE (now DISK or TAPE)).
15) IF ONLINE [or IFONLINE] (begins IF logic processing based on if a VOLSER
or UNIT is ONLINE (DASD or TAPE)). Full ELSE support.
16) IF OFFLINE [or IFOFFLINE] (begins IF logic processing based on if a
VOLSER or UNIT is OFFLINE (DASD or TAPE)). Full ELSE support.
17) ELSE (provides for the ELSE support within IF or nested-IF logic)
18) ENDIF (provides for the end of a IF or nested-IF).
19) WTO (provides mechanism to send WTO's to the console for logging,
operator notification and MPF processing capabilities (MPF capabilities are
planned for later)).
20) WTOH [or STICKY or NOTE] (provides for sending a WTO to the operator
console that will stay on the console. (STICKY-NOTE)).
21 WTOR [or ASKOPER] (provides support to allow a question to be asked of
the operator, support provided for YES, NO and RESHOW QUESTION only, right now).
22) EXIT (allows for immediate ending of the script.)
23) STOPCODE (same as EXIT but lets you set the user or system abend code or
return code for JCL processing)
24) REXX (allows for the execution of a REXX program within the script, the
script processing is paused and the REXX program is executed, after which
script processing will continue). Passing of some parameters and values is
supported but is limited.
25) INCLUDE (allows you to iclude script code from other libraries or
members of a standard (shared) script library so that you don't have to
recode small routines, you can just include them).
So, Am I missing anything that you might find useful? I was thinking that
it "might" be useful to allow for the OPERATOR to override or put a maximum
time to wait on the "wait forever" processing of the WAIT UNTIL STOPPED or
STARTED [IFSTOPPED/STARTED] logic, but then reconsidered because if I make
it too easy to bypass, it would defeat the purpose of the wait. What do you
think about that question? I had also considered adding support for direct
submission of JOBs but that gets too much into what one of my other programs
(AUTO) was built to do, and it really isn't necessary if you are running
AUTO already (which everyone should be doing:) ). I also realize that
having ELSE support makes it so that I really don't have to have some of the
commands, obviously IF ONLINE's ELSE processing is the same as saying IF
OFFLINE, but I figured that it would allow for easier transition from older
comand scripts and also, some people might just like to use one or the
other, and who am I to say which one it should be?
Is four levels of NESTED-IF support enough or should I choose a higher
number to start with? After a while, more than 4 gets hard to keep track of
for most people, especially with the ELSE logic support, but I can go up to
256 levels (well, actually I think it's 255, but who would test it anyway?).
I'm also thinking of adding support for USS tasks and if-logic processing of
the various USS goodies that are avaialable, but didn't know how much that
would be of help to anyone but me. I can also add support for system and
user symbolic querying, but also wasn't sure how much that would be seen as
useful to anyone.
Any suggestions?
Brian
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to listserv@xxxxxxxxxxx with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html
.
- Prev by Date: Re: Overhead of SMF Records
- Next by Date: Re: RMM scratch tape management - for Brian Perryman
- Previous by thread: Re: RMM scratch tape management
- Next by thread: Re: RMM scratch tape management - for Brian Perryman
- Index(es):
Relevant Pages
|