Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

alternate TCPIP for VSE INIT at disaster recovery

34 views
Skip to first unread message

Phillip Gramly

unread,
Oct 8, 2015, 4:58:13 PM10/8/15
to
Is there a way to use an alternate INIT=drname based on CPUID

i'm thinking of conditional logic in the TCPIP startup JCL to check the
CPUID and go to the disaster recovery startup:
// EXEC IPNET,PARM='ID=00,INIT=drinit'

anybody already built this?

--
Phillip Gramly
Systems Programmer
Communications Data Group
Champaign, Illinois


_______________________________________________
VSE-L mailing list
VS...@lists.lehigh.edu
https://lists.lehigh.edu/mailman/listinfo/vse-l

Tony Thigpen

unread,
Oct 8, 2015, 5:18:07 PM10/8/15
to
I like to set a lot of system variables during IPL based on the CPUID.
I then used those system variables in jobs such as vtam, power, etc. You
could also use it for the tcp init.

Once you start using such system variables, you are going to find a lot
of places that it helps. Especially, if you have multiple VSEs sharing
the same DOSRES/SYSWK1.

Tony Thigpen

Phillip Gramly wrote on 10/08/2015 04:58 PM:
> Is there a way to use an alternate INIT=drname based on CPUID
>
> i'm thinking of conditional logic in the TCPIP startup JCL to check the
> CPUID and go to the disaster recovery startup:
> // EXEC IPNET,PARM='ID=00,INIT=drinit'
>
> anybody already built this?
>

Kris Buelens

unread,
Oct 9, 2015, 2:36:07 AM10/9/15
to
I changed the setup of my customer's VSE systems to use system variables in lots of JCL.  I ran this REXX soon in the $0JCL procedure:
* $$ JOB JNM=GETSYSNM,DISP=D,CLASS=0
* $$ LST CLASS=R,DEST=(,&&userid&&),DISP=D
// JOB GETSYSNM calalog a REXX defining VSE system names
* CPUID VSESYST: 123456 means start with defaults as after install
*                888888 means start setup for VSESYST
* By defining the VSE SYSTEM variables SYSNAME & SHNAME we can simplify
* the startup of all VSE systems
*   e.g.   // EXEC PROC=STDLB&SHNAME
*   or     // IF SYSNAME='VSESYST' THEN
*          // GOTO SYST
* ----------------------------------------------
// EXEC LIBR,PARM='MSHP'
ACC S=IJSYSRS.SYSLIB
CATALOG GETSYSNM.PROC      DATA=YES REPLACE=YES
 /*---------------------------------------------------*/
 /* Procedure to define a system name as VSE variable */
 /* The CPU nrs used should match with the ASIPROC    */
 /*  Written by Kris Buelens, 5 dec 2011              */
 /*---------------------------------------------------*/
 call assgn 'STDOUT','SYSLOG'  /* send REXX say's to console */
trace r
 rc= SYSVAR('SYSCPUID')
 cpuid=substr(sysCpuId,3,6) /* extract the 6 digits VM can change */
 /* FF12345620988000 */
 Select
  When cpuid='777777' then sysInfo='VSEPROD PRD'
  When cpuid='888888' then sysInfo='VSETEST TST'
  When cpuid='FFF111' then sysInfo='VSEPRAN PRA'
  When cpuid='FFF777' then sysInfo='VSESIM  SIM'
  When cpuid='FFF222' then sysInfo='VSEVAL  VAL'
  When cpuid='888999' then sysInfo='VSESYST SYT'
  When cpuid='123456' then sysInfo='VSESYST SYT'
  Otherwise
   parse source . . . . procname .
   call SayBox 'CPU ID' cpuid 'is not defined in' procName,,
            'Please update' procName,,
            'to make it match with the VSE CPUids in the $ASIPROC.PROC'
   exit 99
 end
 
 parse var sysInfo sysName shName .
 address JCL '// SETPARM SYSTEM,SYSNAME='sysName
 address JCL '// SETPARM SYSTEM,SHNAME='shName
 Say 'Running in' sysname '; 3letter name:' shName
 Exit
 
 /*-----------------------------------------------------------------*/
 SayBox: /*                                                         */
 /*-----------------------------------------------------------------*/
  say left('+',66,'-')'+'
  do i=1 to arg()
     say left('|' arg(i),66)'|'
  end
  say left('+',66,'-')'+'
 return
/+
/&
* $$ EOJ



Kris Buelens,
     --- freelance z/VM consultant, Belgium ---
-----------------------------------------------------------------------

Kris Buelens

unread,
Oct 9, 2015, 2:44:23 AM10/9/15
to
And here some example that is based on the system variables and changes the TCP/IP startup based on them.
To understand the JCL below, you ust know we had a VSE guest named VSESYST, in which we could run one of their other VSE systems to perform special tests (after copying all of the disk volumes).  So we coudl for example run VSEPROD in VSESYST.  As VSEPROD is than active twice, it needs another IP address, namely the teh IP addess of VSESYST itself.

The JCL below starts TCP/IP for all VSE's
* $$ JOB JNM=TCPSTART,CLASS=Z,DISP=K
* $$ LST CLASS=R,DISP=D,DEST=(,VSEMAINT)
// JOB TCPSTART START UP TCPIP
* If running VSExyz in user VSESYST, start TCPIP with VSESYST IP ADDR
// IF SYSNAME = &SYSVMID THEN
// GOTO NORM
*  Using Test TCP/IP startup with IPaddres of VSESYST
// SETPARM JOB,INIT='IPINIT01'
// GOTO STARTUP
/. NORM
*  Using Normal TCP/IP startup for this VSE
// SETPARM JOB,INIT='IPINIT00'
/. STARTUP
// LIBDEF *,SEARCH=(PRD2.CONF&SHNAME,PRD2.CONFIG,PRD2.PROD,PRD1.BASE,  X
               PRD2.SCEEBASE)
// EXEC PROC=DTRICCF
// SETPFIX LIMIT=2000K
// EXEC IPNET,SIZE=IPNET,PARM='ID=00,INIT=&INIT',DSPACE=3M
/&
* $$ EOJ



Kris Buelens,
     --- freelance z/VM consultant, Belgium ---
-----------------------------------------------------------------------

Frank M. Ramaekers

unread,
Oct 9, 2015, 8:25:07 AM10/9/15
to

Yes, I do the same.  It is fairly simple thing to do from a REXX program (the SIR command will tell you the CPU ID, both read and virtual).   I've written an assembler program to retrieve some of the basic OS information to a variable, which in turn can be used to set a SYSTEM variable.  (We typically use the Virtual Machine name, rather than the CPUID)

 

***********************************************************************

* SYVAR001: Sets various system variables based on system information *

*           (see below).                                              *

*                                                                     *

* // EXEC SYVAR001,PARM='info1 info2 info3 ...'                       *

*                                                                     *

*    Where Information type is:                                       *

*           Af        = Advanced functions version          SY$AF     *

*           Date      = Standard date in mm/dd/yy           SY$DATE   *

*           DAT6      = mmddyy                              SY$DAT6   *

*           DAT8      = yyyymmdd                            SY$DAT8   *

*           DAT1{0}   = yyyy-mm-dd                          SY$DAT1   *

*           Jnm       = z/VSE job name                      SY$JNM    *

*           Lpar      = LPAR name or 8 spaces               SY$LPAR   *

*           LPAR#     = LPAR number                         SY$LPR#   *

*           Name      = Either VM name or LPAR name         SY$NAME   *

*           Pid       = Partition identifier                SY$PID    *

*           PJnm      = POWER/VSE job name                  SY$PJNM   *

*           PJNO      = POWER/VSE job number                SY$PJNO   *

*           Rcpu      = Real CPU (12-digit)                 SY$RCPU   *

*           RCPU6     = Real CPU (6-digit)                  SY$RCP6   *

*           Time      = Current time hh:mm:ss               SY$TIME   *

*           TIM6      = Current time hhmmss                 SY$TIM6   *

*           Vcpu      = Virtual CPU (12-digit)              SY$VCPU   *

*           VCPU6     = Virtual CPU (6-digit)               SY$VCP6   *

*           VSe       = VSE version information             SY$VSE    *

*           VM        = VM version information              SY$VM     *

*           VMU       = VM user name (or spaces)            SY$VMU    *

 

Frank M. Ramaekers Jr.

0 new messages