zz=opswait(10)
address oper
"command('setglob')"
return "accept".
I get the following errors<<<<
OPS3092H 3 *-* "command('setglob')"
OPS3092H +++ RC(-3) +++
OPS3092H Error running SMFDUMPI, line 4: Invalid whole number
OPS3092H READY
The rexx command 'setglob' looks like this.
)CMD SETGLOB
/**********************************************************************/
/* Rule Name: SETGLOB */
/* Rule Type: Command */
/* Rule Function: reset global variable during IPL */
/* Author: Kathy Jarrett */
/**********************************************************************/
)PROC
/*--------------------------------------------------------------------*/
/* The following code is executed each time the rule is fired. */
/*--------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/* Create a REXX variable containing the command text with the */
/* commas replaced by blanks for use by the WORD function. */
/*------------------------------------------------------------------*/
EasyRuleCmdText = TRANSLATE(CMD.TEXT,' ',',')
/*------------------------------------------------------------------*/
00
/*------------------------------------------------------------------*/
00 /* Set or update global variables.
*/
00
/*------------------------------------------------------------------*/
01 say 'in setglob'
10 if (GLOBAL.IPLBMVS = "yes")
20 then do
00 GLOBAL.IPLBMVS = "not"
00 return "accept".
10 end
00 )TERM
Do any of you guys have any experience in TSO REXX or CA-OPS/MVS that
could give me a hand?
Steve Rout
City of Indianapolis/Marion County ISA
Northrop Grumman - Information Technology Commercial, State & Local
Solutions
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
Return code -3 from Address OPER means "Address OPER not found", which I
would expect if you were running under TSO REXX, but you show OPS3092H trace
messages, so you are running under OPS/REXX. Perhaps the OPS/MVS started
task is not running, or is not running under subsystem OPSS.
Tell us how you ran them, then we can unravel further. Also, tell us the
overall intent of what you are trying to achieve, and perhaps we can get you
steered in the correct direction.
SETGLOB is a command rule; it runs when the operator issues a SETGLOB
command from the console. It is possible (but messy) to invoke these command
rules with Address OPER; I don't like it because the automation quickly gets
hard to follow, with little pieces of logic around here and there, and
whether the rule is enabled or disables causes side effects in other
automation. Instead, if you want to reset a global variable, just call the
OPSVALUE() function from SMFDUMPI:
If opsValue('GLOBAL.IPLBMVS,'N') = 'yes'
Then Call opsValue 'GLOBAL.IPLBMVS','U','not'
The following constructs are only for use within a rule:
Return 'Accept'
Return 'Reject'
Return 'Suppress'
Return 'Noaction'
In a CMD rule, they control whether the command is allowed to pass onto MVS.
In a MSG rule, they control whether the WTO message is allowed to pass onto
MVS, or is suppressed.
In most rule types, they have some control over the disposition of the event
that OPS/MVS has trapped. There are exceptions, such as a TOD rule, an EOJ
rule, an EOM rule, where OPS does not control the disposition.
Regards,
Bob Stark
ProTech - When you're serious about Systems Management
Consulting, Software, and Training for z/OS, UNIX and Internet
www.protechtraining.com 800-373-9188 x150 412-445-8072
zz=opswait(10)
address oper
"command('setglob')"
return "accept".
OPS3092H +++ RC(-3) +++
OPS3092H READY
)CMD SETGLOB
/**********************************************************************/
/**********************************************************************/
)PROC
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
00
/*------------------------------------------------------------------*/
00
/*------------------------------------------------------------------*/
01 say 'in setglob'
20 then do
00 GLOBAL.IPLBMVS = "not"
00 return "accept".
10 end
00 )TERM
Steve Rout
--
If this email is spam, report it here:
http://www.OnlyMyEmail.com/reportSpam?Id=Mzg3MzE6MzA4MzM2NDk3OmJzdGFya0Bwcm9
0ZWNocHRzLmNvbQ%3D%3D
You have to remember that myself and the other systems programmer
working on this project are basically flying blind. No experience with
REXX at all or how the Tso/OPS environment is all put together. I read
as much as I could find on the net and the IBM books are not very good.
Thanks for all you're help. We greatly appreciate it.
It is specific to OPS and how it does "stuff" (very technical term)
The line TSO OI SMFUMPI would be (I think) for Ops to issue the MVS
command to dump the SMF data sets.
We are just setting up OPS/MVS at my shop and I can emphasize your confusion
over the use of the product and its features.
Lizette
-------Original Message-----
--From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On
--Behalf Of Rout, Steve
--Sent: Tuesday, May 08, 2007 8:49 AM
--To: TSO-...@VM.MARIST.EDU
--Subject: Re: [TSO-REXX] problems with a REXX exec
--
--It works when I do the TSO OI SMFDUMPI.
--SO what does the 'OI' stand for.
--It is not an ops rule. That is you can't access it through option 4.5.1
--from the OPS main menu.
--
--You have to remember that myself and the other systems programmer
--working on this project are basically flying blind. No experience with
--REXX at all or how the Tso/OPS environment is all put together. I read
--as much as I could find on the net and the IBM books are not very good.
--
--Thanks for all you're help. We greatly appreciate it.
--
-------Original Message-----
--From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On
--Behalf
--Of Bob Stark
--Sent: Monday, May 07, 2007 4:36 PM
--To: TSO-...@VM.MARIST.EDU
--Subject: Re: [TSO-REXX] problems with a REXX exec
--
--Let's unravel this a bit. It looks like your main program is SMFDUMPI.
--Are
--those 4 lines the entire program, and did you run it from TSO with:
-- TSO OI SMFDUMPI
--Or is it an OPS/MVS rule, with extra stuff at the top such as )MSG xxx
--
--Return code -3 from Address OPER means "Address OPER not found", which I
--would expect if you were running under TSO REXX, but you show OPS3092H
--trace
--messages, so you are running under OPS/REXX. Perhaps the OPS/MVS started
--task is not running, or is not running under subsystem OPSS.
--
--Tell us how you ran them, then we can unravel further. Also, tell us
--the
--overall intent of what you are trying to achieve, and perhaps we can get
--you
--steered in the correct direction.
--
--SETGLOB is a command rule; it runs when the operator issues a SETGLOB
--command from the console. It is possible (but messy) to invoke these
--command
--rules with Address OPER; I don't like it because the automation quickly
--gets
--hard to follow, with little pieces of logic around here and there, and
--whether the rule is enabled or disables causes side effects in other
--automation. Instead, if you want to reset a global variable, just call
--the
--OPSVALUE() function from SMFDUMPI:
--
--If opsValue('GLOBAL.IPLBMVS,'N') = 'yes'
--Then Call opsValue 'GLOBAL.IPLBMVS','U','not'
--
--The following constructs are only for use within a rule:
--Return 'Accept'
--Return 'Reject'
--Return 'Suppress'
--Return 'Noaction'
--In a CMD rule, they control whether the command is allowed to pass onto
--MVS.
--In a MSG rule, they control whether the WTO message is allowed to pass
--onto
--MVS, or is suppressed.
--In most rule types, they have some control over the disposition of the
--event
--that OPS/MVS has trapped. There are exceptions, such as a TOD rule, an
--EOJ
--rule, an EOM rule, where OPS does not control the disposition.
--
--Regards,
--
--Bob Stark
--
--ProTech - When you're serious about Systems Management
--Consulting, Software, and Training for z/OS, UNIX and Internet
--www.protechtraining.com 800-373-9188 x150 412-445-8072
--
-------Original Message-----
--From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On
--Behalf
--Of
--Rout, Steve
--Sent: Monday, May 07, 2007 3:39 PM
--To: TSO-...@VM.MARIST.EDU
--Subject: problems with a REXX exec
--
--
--
--We are converting to CA-OPS/MVS on a ZOS 1.8 system. When I run the
--following Rexx
--
--
--
--zz=opswait(10)
--
-- address oper
--
-- "command('setglob')"
--
-- return "accept".
--
--
--
--I get the following errors<<<<
--
--
--
--OPS3092H 3 *-* "command('setglob')"
--
--
--OPS3092H +++ RC(-3) +++
--
--
--OPS3092H Error running SMFDUMPI, line 4: Invalid whole number
--
--
--OPS3092H READY
--
--
--
--The rexx command 'setglob' looks like this.
--
--
--
--)CMD SETGLOB
--
--/**********************************************************************/
--
--/* Rule Name: SETGLOB */
--
--/* Rule Type: Command */
--
--/* Rule Function: reset global variable during IPL */
--
--/* Author: Kathy Jarrett */
--
--/**********************************************************************/
--
--)PROC
--
--/*--------------------------------------------------------------------*/
--
--/* The following code is executed each time the rule is fired. */
--
--/*--------------------------------------------------------------------*/
--
-- /*------------------------------------------------------------------*/
--
-- /* Create a REXX variable containing the command text with the */
--
-- /* commas replaced by blanks for use by the WORD function. */
--
-- /*------------------------------------------------------------------*/
--
-- EasyRuleCmdText = TRANSLATE(CMD.TEXT,' ',',')
--
-- /*------------------------------------------------------------------*/
--
--00
--/*------------------------------------------------------------------*/
--
--00 /* Set or update global variables.
--*/
--
--00
--/*------------------------------------------------------------------*/
--
--01 say 'in setglob'
--
--
--10 if (GLOBAL.IPLBMVS = "yes")
--
--
--20 then do
--
--
--00 GLOBAL.IPLBMVS = "not"
--
--
--00 return "accept".
--
--
--10 end
--
--
--00 )TERM
--
--
--
--Do any of you guys have any experience in TSO REXX or CA-OPS/MVS that
--could
--give me a hand?
--
--
--Steve Rout
--
--City of Indianapolis/Marion County ISA
--
--Northrop Grumman - Information Technology Commercial, State & Local
--Solutions
--
--317.327.1207
--
--
--
--
--
--
------------------------------------------------------------------------
--For TSO-REXX subscribe / signoff / archive access instructions, send
--email
--to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
--
--
--
----
--If this email is spam, report it here:
--http://www.OnlyMyEmail.com/reportSpam?Id=Mzg3MzE6MzA4MzM2NDk3OmJ
--zdGFya0B
--wcm9
--0ZWNocHRzLmNvbQ%3D%3D
--
------------------------------------------------------------------------
--For TSO-REXX subscribe / signoff / archive access instructions,
--send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
--
------------------------------------------------------------------------
--For TSO-REXX subscribe / signoff / archive access instructions,
--send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
Okay, I'll be gentle! I assumed you were flying a bit blind.
OI is the CA-provided TSO command to invoke OPS/REXX. When running under
OPS/REXX, you have access to all of the OPS/MVS ADDRESS environments and
OPSxxxx() REXX functions. A few things that normally work under TSO REXX do
not work, like PARSE EXTERNAL and the TSO built-in functions like LISTDSI()
and SYSDSN().
You will want to use OPS/REXX for most everything you do with OPS/MVS. There
are two commands to run it:
OI member <-- Search for member in SYSEXEC concatenation;
Compile and run it
OX 'data.set.name(member)' <-- Search for member in data.set.name; Compile
and run it (similar to TSO/E REXX EXEC command)
The IBM TSO/E REXX reference is not so bad. You can find it at
http://publibz.boulder.ibm.com/epubs/pdf/ikj4a370.pdf
Also the TSO/E REXX User's Guide, at
http://publibz.boulder.ibm.com/epubs/pdf/ikj4c310.pdf
If you can find it, read Mike Cowlishaw's "The REXX Language: A Practical
Approach to Programming (2nd Edition)", ISBN 0137806515. Someone might well
have a copy of that lying around the office. I just listed a few spare
copies I have on amazon.com. It is really concise, easy to read, you'll get
the "Zen" of REXX rather quickly from it.
Also download the PDF documents for OPS/MVS. They will have been on the
install tape in file OPS.TGZ, or you can just as easily download them from
supportconnect.ca.com. You REALLY need these books, you just can't buffalo
your way into OPS/MVS. The "Command and Function Reference" will help you
through REXX, and the "AOF Rules User Guide" will help you through rules.
However, these CA books do not document REXX except for the CA extensions to
REXX, which is why you'll want to find the TSO REXX or Cowlishaw REXX books
mentioned above.
Now, tell me in English what you are trying to do with the SMF datasets (or
some other simple project), and we'll work together on building a simple
automation program that works. That will boost your confidence and
understanding immensely.
Regards,
Bob Stark
ProTech - When you're serious about Systems Management
Consulting, Software, and Training for z/OS, UNIX and Internet
www.protechtraining.com 800-373-9188 x150 412-445-8072
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf Of
Rout, Steve
Sent: Tuesday, May 08, 2007 8:49 AM
Regards,
Bob Stark
zz=opswait(10)
address oper
"command('setglob')"
return "accept".
OPS3092H +++ RC(-3) +++
OPS3092H READY
)CMD SETGLOB
/**********************************************************************/
/**********************************************************************/
)PROC
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
/*------------------------------------------------------------------*/
00
/*------------------------------------------------------------------*/
00
/*------------------------------------------------------------------*/
01 say 'in setglob'
20 then do
00 GLOBAL.IPLBMVS = "not"
00 return "accept".
10 end
00 )TERM
Steve Rout
http://www.OnlyMyEmail.com/reportSpam?Id=Mzg3MzE6MzA4NzY0NjY5OmJzdGFya0Bwcm9
Scott J. Estep -
Coca-Cola Enterprises
z Series -
Systems Automation Administrator
wk: 770-370-8564
cell: 404-210-7004
ses...@na.cokecce.com
Lizette Koehler <star...@MINDSPRING.COM>
Sent by: TSO REXX Discussion List <TSO-...@VM.MARIST.EDU>
05/08/2007 09:12 AM
Please respond to
TSO REXX Discussion List <TSO-...@VM.MARIST.EDU>
Subject
Lizette
--/**********************************************************************/
--
--)PROC
--
--------- ---------- -----------
This message is intended for the use of the individual or entity to
which it is addressed and may contain information that is
confidential and privileged and exempt from disclosure under
applicable law. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination,
distribution, or copying of this communication is strictly
prohibited. If you have received this communication in error,
please contact the sender immediately and delete it from your
system. Thank You
> Date: Tue, 8 May 2007 09:22:45 -0400
>
> OI is the CA-provided TSO command to invoke OPS/REXX. When running under
>
Did they, perhaps, also provide a HELP file? I notice that on our
system, "OI" reports a syntax error, but "HELP OI" reports
"IKJ56802I COMMAND OI NOT FOUND." But this may be an installation
problem.
-- gil
--
StorageTek
INFORMATION made POWERFUL
Thanks for the description, that helped.
Now I'll try to talk you out of doing it that way. When the system won't IPL
correctly for some reason, the operator will spend exactly 10 1/2 minutes
calling people on the phone, then your rule won't work correctly!
Also, OPS/MVS has this entire system for controlling the startup and
shutdown of tasks called System State Manager, you will probably want to set
that up instead of doing it this way, because it will automate your shutdown
as well as your startup. It is more learning curve, but a much better
result.
The beauty of OPS/MVS is that it has a lot of power in the rules language,
so that it can look up information in real time. In the example below, we
use the opstatus() function to look up Address space status by scanning the
ASVT, and tell us if TSO, CICS, etc. are already running.
The following rule can be extended to do what you want to do without keeping
track of "Are we IPLing?" in a global variable.
)MSG IST020I
/*--------------------------------------------------------------------*/
/* Program: IST020I */
/* Purpose: Start VTAM applications after VTAM is fully initialized. */
/* Type: OPS/MVS Message rule (invoked each time WTO is trapped) */
/* MsgText: IST020I VTAM INITIALIZATION COMPLETE */
/*--------------------------------------------------------------------*/
)PROC
/* Create a list of address space names and corresponding start cmds */
/* On the REXX stack */
Queue "TSO START TSO"
Queue "CICSA START CICSA"
Queue "DSN1MSTR -START DB2"
/* Process the above list; Check to make sure the address space is */
/* not already running; If not, then issue the start command. This */
/* keeps from starting an extra copy of the address space if VTAM is */
/* restarted. */
Do i = 1 To queued() /* Loop through the stack data */
Pull jobname startCmd /* Extract jobname & start cmd */
If opStatus('A','A',jobname) < 1 /* Is jobname running? */
Then Address OPER startCmd /* No, issue the start command */
End i
Return 'noaction' /* Do NOT suppress this message */
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You can test the above rule in a simulated manner using OPSView 2.1
If you still need to track IPL status for some other reason (e.g. if I
haven't totally talked you out of it!), You can do it by writing a rule
which fires on the following message:
OPS3253I CA-OPS/MVS JES2 Release 11.05.00 subsys OPSS initialization
complete
This message comes out when OPS/MVS is fully active.
In the rule, we will check to see if this is the first OPS/MVS start since
IPL:
If OPSINFO('ProductStarts') = 1
If so, we'll set our GLOBAL.IPL variable to 'YES'
Then we have to pick an event that means "IPL is complete". Perhaps "First
user to logon to TSO", or "First batch job started". We'll write a rule for
that and set GLOBAL.IPL to "NO" or "". Let me know if you want to flesh
this automation out for you a little more fully.
You can e-mail me off-list (before we wear out our welcome talking about
OPS/REXX on a TSO/E REXX list!)
bstark (at) protechtraining.com
Regards,
Bob Stark
ProTech - When you're serious about Systems Management
Consulting, Software, and Training for z/OS, UNIX and Internet
www.protechtraining.com 800-373-9188 x150 412-445-8072
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf Of
Rout, Steve
Sent: Tuesday, May 08, 2007 9:36 AM
To: TSO-...@VM.MARIST.EDU
Subject: Re: problems with a REXX exec
OK - here is the problem in a nutshell. During the IPL process at some point
in time we have to set a global variable to 'no' from 'yes'. This is because
we have message rules that fire during the IPL process that start other
address spaces. AN example of this would be to start tso after Vtam
initializes. IF for some reason we have to restart Vtam, we don't want the
rest of the world trying to start after that. If very rarely happens but we
need to program for it. The system we tried to set up was that this rule
called 'SMFDUMPI' starts up at some time during the IPL process, waits for
10 minutes(allows the rest of the IPL to
complete) and then executes a OPS command(setglob) to reset the variable to
'no'. I've read all the CA books for OPS/MVS and it assumes the person has a
working knowledge of REXX. I'll have my wife get onto amazon.com and order
the book. I've been trying to find one on the net.
----------------------------------------------------------------------
Thanks again for all you're help.
"Rout, Steve" <SR...@INDYGOV.ORG> wrote in message
news:D0723D2C59142D40A6F...@EXHPV01.indyad.local...