The MFBSI Configuration File

To simplify scheduler configuration, you can store most MFBSIJCL command line parameters for a given Enterprise Server with Mainframe Subsystem Support (MSS) in a configuration file. Storing parameters in a configuration file means that potentially the only parameter needed in order to execute MFBSIJCL on a command line is the JCL member name.

By default, the name of the configuration file is mfbsi.cfg and it resides in the location specified by the MFBSI_DIR environment variable. You can change the default location and the file name as needed with the CFG=... command line parameter, or by setting a value for the MFBSI_CFG environment variable in the shell where MFBSIJCL is running.

A template of the configuration file, named mfbsi.cfg_model, is located in the <install-directory>\etc folder (Windows), or the $COBDIR/demo/mfbsi folder (UNIX).

That directory also contains the JCL file, rc08.jcl, which invokes IDCAMS. You can use this JCL with MFBSI for your initial tests.

Format of the mfbsi.cfg file

  • An asterisk (*) or a semi-colon (;) in position 1 of a line indicate a comment. To enable a parameter defined in the file, delete the comment symbol and specify a suitable value for the parameter.
  • Any blank lines in the file are ignored.
  • Parameter names are not case sensitive.
  • Keyword parameter values are case insensitive. Other parameter values may be case sensitive, especially with directory extensions on UNIX and Linux platforms.
  • If a parameter is defined both in the configuration file and on the command line, the command line definition takes precedence.
  • Some special parameters are only available from the configuration file and cannot be directly used from the command line.
  • If you use the access codes -j or -x on the MFBSIJCL command line, the values of the configuration parameters JCL-Submit and JCL-Ext in mfbsi.cfg are ignored.
When you use a configuration file, the minimum execution command line parameter you need to specify for mfbsijcl is the name of the JCL file to submit with or without the extension. In this case, specify the following parameters in mfbsi.cfg:
ES-Server=-r|-l|-sTCP
Specifies how to access the enterprise server region.
JCL-Submit=-j|-xJCLpathLocation
Specifies the location of the enterprise server region or instance where the JCL will be submitted.

where:

-j
Specifies jobfile name by content. The submitted file must be on the client's platform, which could be the same platform as the target enterprise server. The submitted JCL is physically passed over the communications link. See cassub for more information.
-x
Specifies the jobfile name by reference. The submitted file must be on the same platform as the enterprise server. This technique is more efficient, since only the name of the file is passed by the communications link. See cassub for more information.
JCL-Ext=jcl_extension_name
Specifies the extension to be used, if not specified in the command line parameter. Refers to the JCL file.
SJobID=JobNo|StdOut|JCL
Specifies how to output the MFBSIJCL execution log:
JobNo
Specifies a file in MFBSI_DIR named JOBnnnnnnn where nnnnnnn is the job number.
StdOut
Directs the MFBSIJCL log to StdOut.
JCL
Specifies a file in MFBSI_DIR named with the JCL member name.
JESYSMSG
Specify this if you need to retrieve the JCL JESYSMSG execution log.
REGION=RegionName
Specifies the target region/instance name when using a custom MFBSI_DIR. Where MFBSI_DIR path does not use the region/instance name as the last directory:
RegionName
Is the target enterprise server region name.
ES_PAC=pacname
When running inside a Performance and Availability Cluster (PAC), this is the PAC name and is mandatory in mfbsi.cfg. This requires Enterprise Server 5.0 PU1 or later.
Note: This is mandatory when running in a PAC.
ES_PAC_ENDPOINT=psor_name=sor,host_ipaddress:port_number
When running inside a Performance and Availability Cluster (PAC), this is the name of the PAC Scale-Out Repository (PSOR) being used followed by SOR, the host and or IP address, and then the port number. For example my_psor=redis,127.0.0.1:6379. This entry is mandatory in mfbsi.cfg file.
Note:
  • When Redis sentinels are used, all of them must be identified [3].
  • This is mandatory when running in a PAC.

The template configuration file includes a list of the parameters you can use:

  • To access an enterprise server with Mainframe Subsystem Support and specify its name and location:
    ES-Server=-rES-JCL
    ES-Server=-sTCP:10.1.1.101:32793
    ES-Server=-sTCP:HostName:32793
    ES-Server=-lES-SERV
    Note: When running inside a Performance and Availability Cluster (PAC), Micro Focus recommends that you use ES-Server=-sTCP that points to the address of a load balancer which will redirect requests to an available enterprise server instance.
  • To submit a JCL file (-x or –j) and specify the path to the JCL member directory:
    JCL-Submit=-jPathToJCLfile
    JCL-Submit=-xPathToJCLfile
    Note: Do not use double quotes for directory names that include spaces.

    PathToJCLfile can use one or more references to environment variables. In this case, you need to prefix the environment variable with a $. For example, JCL-Submit=-x$SEE_JCL_BASE/$JCL_PDS.

    The environment variables SEE_JCL_BASE and JCL_PDS are substituted with their respective values.

  • When using a custom MFBSI_DIR setting, the last part of the MFBSI_DIR path does not specify the region name:
    REGION=RegionName

    where:

    RegionName
    Is the target enterprise server region name.
  • To specify the JCL file extension to add to the JCL member name specified on the command line:
    JCL-Ext=jcl_extension_name

    where:

    jcl_extension_name
    Is the extension to be used. The default is no extension. For example, JCL-Ext=jcl.
    Note: You must not specify the period (".") before the extension.
  • To specify the startup timeout in seconds before issuing an alert:
    StartupTimeout=n
  • To specify the run timeout in seconds before issuing an alert:
    RunTimeout=n
  • To specify the alert back elapsed time in seconds:
    AlertBackTimeout=n
  • To avoid stopping the MFBSIJCL execution when the enterprise server is stopped and the job is still waiting for execution:
    ES-SHUTDOWN-JWAIT=CONTINUE
    This is optional but recommended.
  • To request the JESYSMSG log from the enterprise server written in the SjobID.log file:
    JESYSMSG
  • To request the JESYSMSG log from the enterprise server and write it to StdOut:
    JESYSMSG=StdOut
  • To assign a name for the MFBSI jobLog file:
    • When using the job number assigned by the enterprise server:
      SJobID=JobNo
    • When using the JCL member name:
      SJobID=JCL
    • To write the MFBSI job execution log to the standard output (StdOut):
      SJobID=StdOut
  • To request the execution of a pre-submit user-exit module:
    JCLExit=pgmName

    Use the associated string passed to the pre-submit user-exit module to determine what action to perform (a maximum of 32 characters):

    JCLExitID=IdentString
  • To invoke a termination user exit just before terminating the execution of MFBSIJCL:
    TerminateExit=pgmName
  • By default, performing a soft-kill on an MFBSIJCL process that is waiting for JOB termination also cancels the JOB in Enterprise Server before terminating.

    Use the following parameter to avoid killing the JOB when the process is soft-killed:

    ES_JOB_KILL=NO
    By default, ES_JOB_KILL=YES.
  • Optional, set to ON by default. This parameter is mainly useful if your JCL member contains a mix of STD NUM ON and OFF records.

    With STDNUM=OFF, JCL records columns 73-80 content are ignored even if they contain any JCL statements or any in-stream data.

    The previous MFBSI logic based on whether the contents of the first record include or not any JCL-containing data in columns 73-80 is maintained.

    STDNUM=ON
  • To specify the type of JCL files other than the default one, JES2:
    JCLType={VSE|JES2|JES3}
  • Optional, when MSS security is enabled:
    • To specify a user ID:
      UserID=myUser
    • To specify a password:
      Password=myPwd
    • To specify a security group:
      SGroup=securityGroup
  • Symbolic parameters substitution and using the Control-M AutoEdit Facility.

    To substitute parameters without accessing the Control-M AutoEdit facility, use:

    SkelProcessType=MFBSI
    Note: Using these parameters is mandatory when you use JCL parameters.

    Substitution is requested with SkelProcessType.

    To enable the specific Control-M AutoEdit Facility processing, use:

    SkelProcessType=CONTROL-M

    Or:

    SkelProcessType=MFBSICTM

    Optional, to substitute parameters even if no parameters are specified on the MFBSIJCL command line. This enables substitution of system parameters like DATE, and DAY:

    AutoEdit

    Optional, to specify the parameter substitution prefix as either one or two characters:

    SUBST-Prefix=parameterValue

    The default parameterValue is %%.

    Optional, to specify the day the week starts:

    StartOfWeek=Sunday|Monday

    The default value is Sunday [3].

    Optional, to force submitting the substituted JCL by reference or by content, CASSUB –x:

    CASSUB-CTM={BYREF|CONTENT}
    By default, CASSUB... –j ... is used.
  • Optional, to specify the use of API calls for CASSUB/CASOUT in place of their native commands, and avoid having to create a new process for them specify:
    CASAPI
  • To specify the OS codes returned by MFBSIJCL if a job abends:
    • With a SYSTEM abend:
      SYS-ABEND-RC=nnn
    • With a USER abend:
      USR-ABEND-RC=nnn
    • With a Run-Time system abend:
      RTS-ABEND-RC=nnn
  • The default delays used by MFBSIJCL to check for a job state in Enterprise Server are as follows:
    • Two seconds before each check for "Job Started".
    • Ten seconds before each check for "Job Concluded".

    You can use the following two parameters to configure these delays:

    JOBSTART-LOOKUP-FREQ={nn|AUTO}
    JOBEND-LOOKUP-FREQ={nn|AUTO}

    where:

    nn
    Indicates a delay in seconds with a minimum of 1 and a maximum of 60 seconds.
    AUTO
    MFBSIJCL automatically optimizes the lookup delay.

    When AUTO is used, MFBSIJCL uses an initial delay of one second for three minutes after which the default values are restored.

    Using these parameters significantly reduces the overhead elapsed time in MFBSIJCL when compared to the Enterprise Server JCL reported execution time of a job. This has an effect mainly in scenarios when you have short-running jobs that are frequently executed.

  • When JOBSTART-LOOKUP-FREQ or JOBSTART-LOOKUP-FREQ are set to AUTO, you can use the parameter Job-AUTO-Delay [4] to customize the delay used by MFBSIJCL. For example, you can switch from high lookup frequency back to the default values.

    Use Job-AUTO-Delay to set the value from 1 to 60 (in minutes). The default is 3 minutes.

  • Optional, to specify the maximum possible delay (in minutes) for an ended job to conclude in MSS/JCL:
    EMX-Timeout=nn
    The default value is six minutes.
  • To produce a detailed trace log of mfbsijcl execution. That can be used if requested by Micro Focus Support. This is not recommended in a production environment:
    MFDEBUG