LOGGER section of the DFSDFxxx member

The LOGGER section of the DFSDFxxx member specifies processing options for the IMS Logger. The section must begin with the header <SECTION=LOGGER>. The LOGGER section is a mandatory section.

Syntax

Read syntax diagramSkip visual syntax diagramOLDSDEF=(OLDS=(,id)MODE=SINGLEDUALBUFNO=0005nnnnBUFSTOR=3164BLKSIZE= nDEGRADE=YESNO)WADSDEF=(WADS=(,id)MODE=SINGLEDUAL)ZHYPERWRITE=(,OLDS=NOYESWADS=NOYES)ARCHDEF=( xxxx)LOGEDIT=(,record_type)MSGLOGARC= n

Parameters

OLDSDEF=()

Defines the OLDS to be established during initialization along with some processing options. Only one OLDSDEF statement is allowed. Keywords are delimited from the associated parameters by an equal sign (=), and the keyword/parameter pairs are delimited by commas (,) or spaces ( ).

OLDS=

Identifies 3 - 100 OLDS to be allocated during initialization, where id indicates a list of one or two-digit OLDS IDs, 0 - 99. You must specify at least three OLDSs.

BUFNO=

Identifies the number of log buffers allocated for OLDS read and write operations, where nnnn is a one- to four-digit numeric integer, 0002 - 9999. The default is 0005.

MODE=SINGLE | DUAL

Identifies whether the logger operates in SINGLE or DUAL logging mode. The default is SINGLE.

DEGRADE=

Identifies whether to degrade to single-logging mode (DEGRADE=YES), or to terminate IMS (DEGRADE=NO) after an OLDS write error occurs and there are fewer than three pairs of available OLDSs. Also, if one of the OLDSs in the pair to be used next encountered an error during preopen and DEGRADE=YES was specified, that pair is used in degraded mode. However, after it is switched, the pair will be stopped. If there are fewer than three good pairs of OLDSs, the pair will not be stopped and will continue to be used in degraded mode. The default is DEGRADE=YES.

BUFSTOR=
Specifies whether to obtain 31-bit or 64-bit virtual storage for OLDS log buffers. The default value is 31.
Recommendation: If you run IMS with 64-bit log buffers, back your log buffers by large (1 MB) pages, so that IMS can improve performance, due to more efficient dynamic address translation.

To set up your system to have large pages available, you must specify the LFAREA= parameter in the z/OS® IEASYSxx PARMLIB member. Make sure that you request enough storage on LFAREA= to contain all of your log buffers, plus any other large page usage in your system.

To determine the amount that is required for your IMS log buffers, multiply the number of buffers you specified with the BUFNO= parameter by the OLDS block size, and round up to the next MB (1 MB = 1,048,576 bytes).

See the z/OS MVS™ Initialization and Tuning Guide for information about the IEASYSxx LFAREA= parameter.

Restriction:

IMS obtains log buffers in 64-bit virtual storage only when the OLDS block size is a multiple of 4096 even if BUFSTOR=64 is specified.

If the OLDS is not allocated as a DFSFMS extended-format data set, IMS issues message DFS0413I with response code 52 for every non extended-format OLDS discarded by IMS in a BUFSTOR=64 environment. IMS issues abend code 0616 if no OLDS satisfies all the BUFSTOR=64 restrictions.

BLKSIZE=
Specifies the log buffer block size. This parameter can be any multiple of 2048 (6144 - 30720 for 31-bit virtual storage) or any multiple of 4096 (for 64-bit virtual storage). The value that is specified with this parameter overrides any other value associated with any OLDS.
You can change the OLDS block size across either a cold start or a warm restart of IMS. However, if you change the size across a warm restart, you must follow the steps:
  1. Shut down IMS normally.
  2. Archive all OLDS.
  3. Delete PRIOLDS and SECOLDS records from the RECON data sets by using the Database Recovery Control utility program (DSPURX00) DELETE.LOG command.
  4. Change the BLKSIZE= parameter in the DFSDFxxx member to the new block size.
  5. Verify WADS space allocation.
  6. Restart IMS (from SLDS).
Changing the OLDS block size can affect the space required for the IMS Write Ahead Data Set (WADS). For example, if you have your WADS sized to hold 100 22-KB buffers, and you increase the OLDS block size to 24 KB, you must increase the size of the WADS if you want it to be able to hold 100 of the larger 24-KB buffers. If you reallocate the WADS, make sure that you restart IMS by using the /NRESTART FORMAT WA or /NRESTART FORMAT ALL command.

Provide dynamic allocation members (through the DFSMDA macro) for all OLDS data sets. All (primary and secondary) OLDS must be preallocated. You must specify the OLDS block size when the data set is allocated.

WADSDEF=()

Defines the WADS data sets to be established during initialization along with some processing options. Only one WADSDEF statement is allowed. Keywords are delimited from the associated parameters by an equal sign (=), and the keyword/parameter pairs are delimited by commas (,) or spaces ( ).

WADS=
Identifies a list of WADS to be allocated during IMS Logger initialization, where n indicates a list of one-digit WADS IDs, 0 - 9. You can specify 1 - 10 WADS IDs. A minimum of one WADS ID is required.
MODE=SINGLE | DUAL

Identifies whether the logger operates in SINGLE or DUAL logging mode. The default is SINGLE. This parameter cannot be changed at emergency restart.

Specifications of the former WADS= parameter in the DFSPBxxx PROCLIB member and in an EXEC statement in the control region JCL are ignored and not reported in the error log.

Provide dynamic allocation members (by using the DFSMDA macro) for all WADS data sets. All primary and secondary WADS must be preallocated.

ZHYPERWRITE=()

Optional parameter that specifies the use of zHyperWrite when IMS writes to the OLDS and the WADS.

OLDS=YES | NO
Specifies whether IMS uses zHyperWrite to write to the OLDS. The default is NO.
WADS=YES | NO
Specifies whether IMS uses zHyperWrite to write to the WADS. The default is NO.
ARCHDEF=(aaaa)

When IMS automatically archives OLDS in response to the ARC= parameter of the IMS procedure, it does so by internally issuing a GENJCL.ARCHIVE command to DBRC. The following command is the default:

GENJCL.ARCHIVE ALL SSID (xxxx)

Use the ARCHDEF control statement to change this command to:

GENJCL.ARCHIVE aaaa SSID (xxxx)

In this statement, aaaa represents any valid GENJCL parameter up to 61 characters in length.

See GENJCL.ARCHIVE command for the valid parameters that you can put in ARCHDEF=(aaaa).

LOGEDIT=

Optional parameter that specifies the IMS log record types that are passed to the Log Edit user exit (LOGEDIT). Each instance of the parameter can be either of the following options:

record_type
Supported values are 01, 03, 4002, 5901, and 5903. You can specify multiple record types.
MSGLOG
Specify MSGLOG to pass all supported record types to the exit.

Any other value is ignored. If more than one LOGEDIT statement is supplied, the last one is used.

ARC=n

Optional parameter that specifies whether automatic archiving of the OLDS is to be performed. Valid values are 00 - 99. The default is 01. You can specify ARC=0 for no automatic archiving; otherwise, specify a one- or two-digit number representing the number of full (closed) OLDSs that invoke automatic archiving for those data sets. Automatic archiving is recommended; however, you can arrange for the MTO to monitor the availability of the OLDS and perform archiving when necessary.

ARC= also indicates the number of OLDSs to be filled before issuing the DBRC GENJCL ARCHIVE command. A /DBRECOVERY command can cause automatic archiving, even if the number specified in ARC= is not reached.

Example of the LOGGER section

<SECTION=LOGGER>
  OLDSDEF=(MODE=DUAL,
          OLDS=(00,01,02,03),
          BUFNO=10,
          BUFSTOR=64,
          BLKSIZE=24576)
  WADSDEF=(MODE=SINGLE,
          WADS=(0,1))
  ARCHDEF=(MEMBER(ARCHDSHR) ALL)
  LOGEDIT=(01)