Skip to content

HLL Exit Processing Address Space

This address space is started up and shut down by the ZMF/Sernet address space. It can also be restarted, which re-establishes the connection with the ZMF/Sernet address space on an ad-hoc basis.

See Exit Administration for details on how to specify the name of the HLLX started task.

Note

The HLLX address space only exists to service requests from a specific instance of the ZMF started task. It must be started by that ZMF started task and never manually. If you start it manually you will see the following messages in the joblog, and the started task will end with RC=20.

  06.53.45 S0069065 $HASP373 SERDHLL8 STARTED
  06.53.46 S0069065 CMNX001E Unable to locate CSA name token.
  06.53.46 S0069065 CMNX002E The HLLX a/s must be started only by ZMF.
  06.53.46 S0069065 $HASP395 SERDHLL8 ENDED

ZMF will only start an HLLX address space if active HLLX exit points have been defined in global administration. (See Exit Administration for an example of defining HLLX exit points with global administration.) Member HLLXJCL in the CMNZMF CNTL distribution library provides the JCL to create the HLLX address space. It looks like this:

  //HLLXPROC PROC PARMS= *parms supplied by ZMF
  //*
  //* Execute HLL exits in isolation
  //* Started during ZMF initialisation
  //*
  //* Note: This STC starts and stops under the control of ZMF *only*
  //* In normal circumstances this stc must not be started or
  //* stopped via MVS operator commands.
  //*
  // EXEC PGM=CMNHLLMP, *HLL exit monitor pgm
  // PARM='&PARMS', *parms
  // REGION=0M, *MAXIMUM REGION
  // TIME=NOLIMIT
  //*
  //STEPLIB DD DISP=SHR,DSN=somnode.CMNZMF.CUSTOM.LOAD * Custom Load
  // DD DISP=SHR,DSN=somnode.SERCOMC.CUSTOM.LOAD * Custom Load
  // DD DISP=SHR,DSN=somnode.CMNZMF.LOAD * Vendor Load
  // DD DISP=SHR,DSN=somnode.SERCOMC.LOAD * Vendor Load
  //*
  //HLLXREXX DD DISP=SHR,DSN=your.rexx.exec.library
  //*
  //SER#PARM DD DISP=SHR,DSN=somnode.SERCOMC.TCPIPORT
  //SYSTSPRT DD SYSOUT=X
  //SYSPRINT DD SYSOUT=X
  //SYSABEND DD SYSOUT=X
  //SERPRINT DD SYSOUT=X
  //ABNLIGNR DD DUMMY
  //SYSTSIN DD DUMMY
  //SYSIN DD DUMMY
  //*
  //* The VPOOL vsam KSDS is optional.
  //* See the HLLX Getting Started Guide for further information.
  //*
  //* Access to the VPOOL vsam dataset may be optimised by making
  //* use of a VSAM buffer caching mechanism such as BLSR or SMB.
  //* Note that this is unlikely to be critical unless you make
  //* heavy use of the VPOOL mechanism.
  //*
  //* Uncomment the relevant DD statement
  //*
  //*BLSR:
  //*CMNVPALT DD DISP=SHR,DSN=somnode.CMNZMF.CMNVPOOL
  //*CMNVPOOL DD SUBSYS=(BLSR,'DDNAME=CMNVPALT','STRNO=255')
  //*
  //*Non-BLSR (to use SMB or no buffering):
  //*CMNVPOOL DD DISP=SHR,DSN=somnode.CMNZMF.CMNVPOOL

Notes:

  • The TIME=NOLIMIT parameter on the EXEC statement is used to avoid S522 abends due to the fact that the HLL exit processing address space may spend a fair amount of time waiting for work.

  • The HLLXREXX ddname identifies the exec library for REXX execs.

  • The CMNVPOOL ddname is optional. It refers to the VSAM data set that stores the variables that the exits use. See Variable Pool Function - CMNVPOOL for more information about CMNVPOOL.

  • The SER#PARM ddname is only needed if the exits will be invoking ZMF XML services (and then it is only really needed to avoid the ddname missing warning message).

  • You should also add any libraries/files that your exit code requires.

Here are some typical messages seen in ZMF SERPRINT when active HLL exits exist at the time ZMF starts up:

2014/03/26 06:51:11.98 CMN8401I CMNSTART Waiting for HLL exit address space to initialize.
2014/03/26 06:51:12.55 CMN8460I CMNDELAY - START of processing
2014/03/26 06:51:12.55 CMN8468I CMNDELAY - Waiting for resource => qname:rname
2014/03/26 06:51:12.55 CMN8468I CMNDELAY - CHGMAN:CMNDEV.CMNSYS.U810STEV.CMNDELAY
2014/03/26 06:51:12.55 CMN8469I CMNDELAY - Resource obtained successfully.
2014/03/26 06:51:12.68 CMN8800I SERD Opened VSAM file CMNDEV.CMNSYS.U810STEV.CMNDELAY Exclusiv
2014/03/26 06:51:12.80 CMN8800I SERD Closed VSAM file CMNDEV.CMNSYS.U810STEV.CMNDELAY
2014/03/26 06:51:12.80 CMN8461I CMNDELAY - END of processing 00000
2014/03/26 06:51:20.99 CMN8402I CMNSTART Successfully connected to HLL exit address space.
2014/03/26 06:51:20.99 CMN8413I Start of HLLX active exits list:
2014/03/26 06:51:20.99 CMN8415I IntName Typ Env External Name Debug Ids
2014/03/26 06:51:20.99 CMN8416I PCRE0007 STD REXX GENPCRE
2014/03/26 06:51:20.99 CMN8416I PCRE0107 STD REXX DEFLTSIT
2014/03/26 06:51:21.00 CMN8414I End of HLLX active exits list.
2014/03/26 06:52:00.10 SER0868I EPvt used=19,964K avail=1,714,692K Pvt used= 220K avail=8,972K
2014/03/26 06:52:00.10 CMN8305I CMNSTART Detach: U=CMNSTART,F1=DETACH,F2=SERVDLAY,@TCA=17574000,@TCB=8B2298
2014/03/26 06:52:00.11 CMN8303I CMNSTART Initialization Complete