IBM Support

Netview : How to Setup and Use a Global TSO Command Server

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":{"code":"SSZJDU","label":"IBM Z NetView"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"},{"code":"PF035","label":"z\/OS"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Product Synonym

NV NVz NVzOS

Document Information

Modified date:
03 August 2018

UID

swg21226470