Write-ahead data set

IMS uses the write-ahead data set (WADS) only in the online environment. The WADS contains a copy of committed log records that are in OLDS buffers, but that have not yet been written to the OLDS.

In order to maximize log efficiency, IMS uses a log write-ahead function to write partially filled blocks to the WADS (rather than the OLDS). IMS continually reuses WADS space after writing the appropriate log data to the OLDS.

The log write-ahead function ensures that all log records are on the log before IMS writes changes to a database. IMS updates a database in any of the following situations:

If IMS fails, use the log data in the WADS to complete the content of the OLDS and then close the OLDS as part of an IMS emergency restart or as an option of the Log Recovery utility. If you close the OLDS during emergency restart, you must include the WADS in use at the time of the failure.

You must preallocate and format the WADS on a DASD device that supports extended count key data (ECKD) architecture. Format a WADS using the FORMAT WADS | ALL keywords on either the /NRESTART or /ERESTART commands. All WADSs must be on the same device type and should have the same space allocation. You can also dynamically allocate additional WADSs using the /START WADS command.

Start of changeThe WADS must be defined as a VSAM linear data set with a control interval (CI) size of 4 KB (4096-bytes), secondary space allocation of 0, and the SHAREOPTIONS(3 3) parameter.End of change

Start of changeThe hardware features of High Performance FICON® for z Systems™ (zHPF) and zHyperWrite can be used for writing to the WADS. zHPF increases throughput if it is enabled on the LPAR. zHyperWrite is optionally used to decrease replication latency. You can use one of the following methods to enable or disable zHyperWrite for the WADS:
  • Use the WADS= keyword in the ZHYPERWRITE= parameter in the LOGGER section of the DFSDFxxx PROCLIB member to enable or disable zHyperWrite. You must restart IMS to make the change effective. Changes introduced by using this keyword will persist across a restart. For more information, see LOGGER section of the DFSDFxxx member.
  • Issue the UPDATE IMS SET(LCLPARM(ZHYPERWRITE(WADS())) command. You don't need to restart IMS to make the changes effective. However, changes introduced by issuing this command will not persist across a restart. For more information, see UPDATE IMS command.
End of change

You can change any of the following specifications for the WADS during an IMS restart:

Recommendation: To eliminate potential resource contention, place the WADS on a low-use device that is different from the device you use for the OLDS.

If you place the WADS on the same device as one of your OLDS and use full-track blocking for the OLDS (in which a block is equal to a full track), the device should be able to handle infrequent OLDS seeks. Contention can still occur.

If the WADS and OLDS are on the same device, the Log Archive utility (DFSUARC0) or dynamic backout can cause severe contention between an OLDS being archived and an active WADS.