A z/Server STC user server IVPUSRT is started by the scheduler address space to execute REXX execs or ISPF applications. It is essentially a two-step batch TSO address space. The first step executes under the general z/Server user ID and switches the security environment to the user ID of the client that had requested the user server to be started. The second step (the actual batch TSO address space) then uses this specific TSO user ID.
Customize the sample hlq.ZSERVER.JCL(IVPUSRT) and copy it to the PROCLIB concatenation and named as ivpusrt .
Verify and customize the high level qualifier defined for both TAURHLQ and ISPFHLQ, and also TCPDATA to make sure it specifies the correct TCPIP configuration data set. Make sure that the ISPF high level qualifier is ISF. 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 IVPINIT1 must be located in the z/Server REXX dataset. This REXX exec should be customized by the installation to fit the installation's needs (see Optional customization).
//TAURHLQ SET TAURHLQ=HLQ.ZSERVER //ISPFHLQ SET ISPFHLQ=ISP //TCPDATA SET TCPDATA=TCPIP.TCPDATA //********************************************************************* //* START TSO/E-ISPF-SESSION AS STARTED JOB //********************************************************************* //* SET ACEE FOR USER //********************************************************************* //TAURSJOB EXEC PGM=TAURSJOB //STEPLIB DD DISP=SHR,DSN=&TAURHLQ..LOADLIB //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //*IPCONFIG DD DISP=SHR,DSN=&TAURHLQ..CONFIG(IVPACEE) //********************************************************************* //* START TSO/E-ISPF-SESSION BATCH //* MOVE TEMP ALLOCATIONS TO IVPINIT1 RPI 611619 //********************************************************************* //IVPISPF EXEC PGM=IKJEFT1B,PARM='%IVPINIT1', // DYNAMNBR=200,REGION=0M,TIME=NOLIMIT,COND=(4,LT) //STEPLIB DD DSN=&TAURHLQ..LOADLIB,DISP=SHR //*IPCONFIG DD DISP=SHR,DSN=&TAURHLQ..CONFIG(IVPUSR) //SYSTCPD DD DISP=SHR,DSN=&TCPDATA //SYSEXEC DD DSN=&TAURHLQ..EXEC,DISP=SHR // DD DSN=&TAURHLQ..REXX,DISP=SHR //ISPPLIB DD DSN=&TAURHLQ..PANELS,DISP=SHR // DD DSN=&ISPFHLQ..SISPPENU,DISP=SHR // DD DSN=ISF.SISFPLIB,DISP=SHR //ISPSLIB DD DSN=&TAURHLQ..SKELS,DISP=SHR // DD DSN=&ISPFHLQ..SISPSENU,DISP=SHR // DD DSN=ISF.SISFSLIB,DISP=SHR //ISPMLIB DD DSN=&ISPFHLQ..SISPMENU,DISP=SHR // DD DSN=ISF.SISFMLIB,DISP=SHR //ISPTLIB DD DSN=&ISPFHLQ..SISPTENU,DISP=SHR // DD DSN=ISF.SISFTLIB,DISP=SHR //ISPLOG DD SYSOUT=*,DCB=(RECFM=VA,LRECL=125) //SYSPRINT DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //ZCOTSPRT DD SYSOUT=* //SYSTSIN DD DUMMY //ZCOTSIN DD DUMMY //SYSOUT DD SYSOUT=* //CEEAPI03 DD SYSOUT=* //CEEREX30 DD SYSOUT=* //ISPDPTRC DD SYSOUT=* // PEND
Temporary data set references have been removed from the above JCL and can now be found in the IVPINIT1 REXX procedure.
The SYSTCPD DD statement has been added to provide information about the IP stack on your host to the started task.