Troubleshooting
Problem
Customers often do not want each of their operators trying to start their own netview TSO command server so that they can issue PIPE TSO commands (eg. PING or LISTCAT etc.). They would prefer to set a single server for all operators to use. This can be done by starting a global server.
Resolving The Problem
To start a TSO command server just for your own usage, you can issue the following command :
START TSOSERV=servername,MEM=CNMSxTSO
The servername is a userid defined to TSO. This can be your own TSO userid. The JCL you will run will be the CNMSJTSO (for a submitted job) or CNMSSTSO (for a started task/job). However, this will only allow yourself to issue a PIPE TSO command and have the response sent back to your netview id, for example :
PIPE TSO NETSTAT HOME | WAIT 5 | CONS
If you want you can have AUTO1 start its own TSO server and then have your operators issue EXCMD commands to AUTO1 to execute commands to TSO. For example,
EXCMD AUTO1 PIPE TSO PING xx.xx.xx.xx | WAIT 5 | CONS
However, there is a security exposure in letting operators issue EXCMD. Use of this command should be protected. Another problem with this is that the response messages will not come back to your screen, but will show up in the netlog. This is why a global TSO server should be setup instead.
A Global TSO server is one that is not tied to an individual netview id, but will allow other operators to issue commands. To start a Global server issue the following :
START TSOSERV=servername,MEM=CNMSxTSO,OP=NONE
Customers sometime have this command run from their AUTO1 autotask using CNMSTYLE auxinitcmds, for example :
auxinitcmd.tso1 = EXCMD AUTO1 START TSOSERV=tsosv1,MEM=cnmsstso,OP=NONE
If you issue a LIST STATUS=TSOSERV command from netview you can see the server defined :
* CNM04 LIST STATUS=TSOSERV
BNH376I
OPID TSOSERV MEMBER PPI NAME STATUS STARTER
-------- -------- -------- -------- --------- --------
NONE NVTSO1 CNMSSTSO $0400001 ACTIVE AUTTCP1
NONE NVTSO2 CNMSSTSO $0400002 ACTIVE AUTTCP1
NONE TSOSV1 CNMSSTSO $0400005 ACTIVE AUTO1
CS99999 CS99999 CNMSSTSO $0400006 ACTIVE CS99999
The OPID=NONE means that it is a Global server.
Now, there is a sample in the NetView PIPES manual that will allow you to issue a PIPE command to the global server and have the response sent back to your operator is, here is a sample :
/****************************************************************/
/* PROGRAM TO SEND COMMANDS to a specified TSO Command Server */
/****************************************************************/
ARG servname cmd
TRACE O
IF servname='' | Servname='?' | cmd='' THEN DO
SAY 'PIPETSO servname command'
SAY ' servname = the TSO server to direct the command'
SAY ' command = the TSO command to be executed.'
EXIT
END
SAY '* ISSUE A COMMAND TO TSO SERVER' SERVNAME ':'
SAY '> COMMAND =' cmd
TCMD.0 = 2 /* BUILD THE STEM FOR */
TCMD.1 = servname 'CNMSSTSO' /* TSO server - TSO JCL */
TCMD.2 = cmd /* Command to BE SENT TO THE SERVER */
ADDRESS NETVASIS,
'PIPE (END ; ) STEM TCMD.',
'| A: NOT TAKE FIRST', /* PRIMARY INPUT */
'| B: TSO ', /* Secondary INPUT */
'| WAIT 10',
'| SAFE FKXTCMD', /* Good Output */
'| STEM DISPMSG.', /* Save Putput */
'| CONS', /* Display to Console */
';A: ',
'| B:'
If dispmsg.0 = 0 then Say '> No Response received back from Command.'
Say '* Processing Complete.'
Exit
---
If this rexx clist is named PIPETSO, then here is an example of how to use it :
* CNM04 PIPETSO TSOSV1 NETSTAT HOME
C CNM04 * ISSUE A COMMAND TO TSO SERVER NETOP1 :
C CNM04 > COMMAND = NETSTAT HOME
t CNM04
MVS TCP/IP NETSTAT CS V1R6 TCPIP Name: TCPIP 20:36:31
Home address list:
Address Link Flg
------- ---- ---
xx.xx.xxx.xxx ETH1 P
127.0.0.1 LOOPBACK
C CNM04 * Processing Complete.
For the first argument you give the server name and then the command you wish to run in the PIPE.
Product Synonym
NV NVz NVzOS
Was this topic helpful?
Document Information
Modified date:
03 August 2018
UID
swg21226470