Function sys_init

The sys_init function is used to initialize the JCL module. You must call sys_init at the start of your JCL job. The function performs the following tasks.

  • Initializes internal variables.

  • Reads system configuration files.

  • Reads job specific settings from the job conf file.

  • Reads the primary command line.

  • Opens log and trace files.

  • Validates documentation contained in the job file.

Sample Output

If the verbose option has been specified on the primary command line, the function will output to the console the jobname, process number, primary command line switches used, and the current date and time. A banner is included in the output.

 >test_job.pl -r -v
         __ ______ __
        / // ____// /   DBIx::JCL
   __  / // /    / /    Job Control Library, version x.xx
  / /_/ // /___ / /___  http://dbixjcl.org/
  \____/ \____//_____/  Use -h for help

 Jobname: test_job
 Process: 4452
 Command: -r -v
 Mon Feb 22 08:00:00 2010

Example showing the no banner primary command line option.

 >test_job.pl -r -v -nb
 Jobname: test_job
 Process: 4452
 Command: -r -v
 Mon Feb 22 08:00:00 2010

Parameters

Parameters
Type Use Description

Scalar

Required

Jobname

Hash

Optional

Extra Parameters

Returns

Returns 0 on success.

Examples

Here is an example of common usage of this function. Most calls to sys_init are made using only the first parameter which contains the job name.

Example 1
use strict;
use warnings;
use DBIx::JCL qw( :all );

my $jobname = 'test_job';
sys_init( $jobname );

Three extra paramaters can be passed to sys_init as shown below. One or more can be passed at a time. These are passed as a hash. The “logplain” parameter tells JCL to write log file entries with no datetime stamp on each line, this creates a bare log file. This is useful for creating report output directly from a JCL job log file. The “nobanner” option supresses the banner. This is the same as using the no banner switch on the primary command line. The “connectfailok” option causes JCL to continue execution even if a database connection fails.

Example 2
use strict;
use warnings;
use DBIx::JCL qw( :all );

my $jobname = 'test_job';
sys_init( $jobname, ( logplain => 'yes'
                      nobanner => 'no'
                      connectfailok => 'yes' )
);

Job Configuration File

Specific job initialization settings are read from the job configuration file when sys_init is called. All of these settings are optional, but it is recommended that at a minimum you specify your log file name in the job configuration file as shown below.

Example 1
job:
    logfile: test_job.log

Other job settings besides “logfile” are read at initialization. An example of all of the job initialization settings is shown below.

Example 2
job:
    logfile:        test_job.log
    logging_levels: FATAL,ERROR,WARN,INFO
    console_levels: FATAL,ERROR,WARN,INFO
    log_gdg:        5
    log_prefix:     LOG
    emailto:        name1@mycompany.com,name2@mycompany.com
    email_levels:   FATAL,ERROR,WARN

Reasonable default values are provided for all of these settings, if a setting is provided in the job configuration file, the value supplied will be used instead of the default value. For a discussion of these values, see Job Initialization.

Additional Notes

There is no need to check the return value from this function.

Notice that values in the job configuration file are aligned on the same column. It is required that values on the same level all line up with respect to column. This also benefits readibility.