Optional: Customizing a CEA-launched TSO user address space JCL (CEAPROC)

A z/Server user server started as a CEA-launched TSO user address space CEAPROC is started by the z/Server CEA scheduler address space. It behaves like a foreground TSO address space running with the TSO user ID of the client user who requested the start of the user server. Terminal input and screen output is read from and written to the associated USS message queue.

Customize the sample hlq.ZSERVER.JCL(CEAPROC) and copy it to the PROCLIB concatenation and name as ceaproc.

Verify and customize the high level qualifier defined for TAURHLQ, and also TCPDATA to make sure it specifies the correct TCPIP configuration data set. Similar to a logon procedure, add all required libraries for things such as panels, messages, and REXX execs that are necessary to run the user’s required ISPF applications.

The initial REXX procedure CEALOGON must be located in the z/Server REXX dataset.

Note: The dataset hlq.ZSERVER.REXX has to be allocated using DDNAME SYSEXEC (not SYSPROC).
//CEAPROC  PROC
//CEAPROC  EXEC PGM=IKJEFT01,DYNAMNBR=175,
//             PARM='%CEALOGON',TIME=120
//TAURHLQ  SET  TAURHLQ=HLQ.ZSERVER
//TCPDATA  SET  TCPDATA=TCPIP.TCPDATA
//********************************************************************
//* Z/SERVER
//*********************************************************************
//STEPLIB  DD  DISP=SHR,DSN=&TAURHLQ..LOADLIB
//ZSRVAUTH DD  DISP=SHR,DSN=&TAURHLQ..AUTHLIB
//*IPCONFIG DD DISP=SHR,DSN=&TAURHLQ..CONFIG(CEAUSER)
//SYSTCPD  DD  DISP=SHR,DSN=&TCPDATA
//CEEREX30 DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//CEATSPRT DD SYSOUT=*
//ZCOTSPRT DD TERM=TS
//ZCOTSIN  DD TERM=TS
//READER   DD  SYSOUT=(*,INTRDR)
//MAINTASK DD SYSOUT=*
//T0000001 DD SYSOUT=*
//CMDTASK  DD SYSOUT=*
//SRVTASK  DD SYSOUT=*
//CEATASK  DD SYSOUT=*
//CEAISPF  DD SYSOUT=*
//LISTENER DD  SYSOUT=*
//*********************************************************************
//*      ADD YOUR OWN LOGON PROCEDURE HERE
//*      BUT KEEP ALL &TAURHLQ DATA SETS IN THE RIGHT PLACES
//*********************************************************************
//SYSUADS  DD  DISP=SHR,DSN=SYS1.UADS
//SYSLBC   DD  DISP=SHR,DSN=SYS1.BRODCAST
//SYSPROC  DD  DISP=SHR,DSN=ISP.SISPCLIB
//         DD  DISP=SHR,DSN=SYS1.SBLSCLI0
//SYSEXEC  DD  DISP=SHR,DSN=&TAURHLQ..EXEC
//         DD  DISP=SHR,DSN=&TAURHLQ..REXX
//         DD  DISP=SHR,DSN=ISP.SISPEXEC
//SYSHELP  DD  DISP=SHR,DSN=SYS1.HELP
//         DD  DISP=SHR,DSN=ISP.SISPHELP
//ISPMLIB  DD  DISP=SHR,DSN=ISP.SISPMENU
//         DD  DISP=SHR,DSN=SYS1.SBLSMSG0
//         DD  DISP=SHR,DSN=ISF.SISFMLIB
//         DD  DISP=SHR,DSN=&TAURHLQ..MSGS
//ISPEXEC  DD  DISP=SHR,DSN=ISP.SISPEXEC
//ISPLLIB  DD  DISP=SHR,DSN=&TAURHLQ..LOADLIB
//ISPPLIB  DD  DISP=SHR,DSN=ISP.SISPPENU
//         DD  DISP=SHR,DSN=&TAURHLQ..PANELS
//         DD  DISP=SHR,DSN=SYS1.SBLSPNL0
//         DD  DISP=SHR,DSN=ISF.SISFPLIB
//ISPSLIB  DD  DISP=SHR,DSN=&TAURHLQ..SKELS
//         DD  DISP=SHR,DSN=ISP.SISPSLIB
//         DD  DISP=SHR,DSN=ISP.SISPSENU
//         DD  DISP=SHR,DSN=ISF.SISFSLIB
//         DD  DISP=SHR,DSN=SYS1.SBLSKEL0
//ISPTLIB  DD  DISP=SHR,DSN=ISP.SISPTENU
//         DD  DISP=SHR,DSN=SYS1.SBLSTBL0
//         DD  DISP=SHR,DSN=ISF.SISFTLIB
//ISPCTL1  DD  DISP=NEW,UNIT=SYSALLDA,SPACE=(CYL,(1,1)),
//             DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
//ISPCTL2  DD  DISP=NEW,UNIT=SYSALLDA,SPACE=(CYL,(1,1)),
//             DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)
//ISPLST1  DD  DISP=NEW,UNIT=SYSALLDA,SPACE=(CYL,(1,1)),
//             DCB=(LRECL=121,BLKSIZE=1210,RECFM=FBA)
//ISPLST2  DD  DISP=NEW,UNIT=SYSALLDA,SPACE=(CYL,(1,1)),
//             DCB=(LRECL=121,BLKSIZE=1210,RECFM=FBA)
//SDSFMENU DD  DSN=ISF.SISFPLIB,DISP=SHR
//         PEND

Parameters P1, P2 and P3 have been added to support parameters required for startup to the CEA user server:

Note: Notice that the IPCONFIG DD statement is commented out. This must not be enabled if you are using the new XML configuration file.

The SYSTCPD DD statement has been added to provide information about the IP stack on your host to the started task.

The name of the job step in the JCL procedure must match the same value you entered as the CEA_LOGONPROC in the configuration of either the Unified scheduler or the CEA scheduler. Failure to do so results in the User Server starting, but the client is unable to connect to it.

For example, if you have CEA_LOGONPROC="MYPROC" in your configuration then it would look like:

//MYPROC   PROC
//MYPROC   EXEC PGM=IKJEFT01,DYNAMNBR=175,
//             PARM='%CEALOGON,TIME=120
//TAURHLQ  SET  TAURHLQ=HLQ.ZSERVER
//TCPDATA  SET  TCPDATA=TCPIP.TCPDATA