TRANSACTIONS: Suspend and Resume Update Transaction Processing

The TRANSACTIONS function may be used to suspend and resume update transaction processing; that is, to reach a quiesced state that could be a recoverable starting point.

graphics/util_adadbs_transactions.png

Once the SUSPEND function has been submitted, new update transactions are held in the user queue. Executing transactions are allowed to finish if they can do so within the time allotted by the TTSYN parameter. Any transactions that exceed this time are backed out. In a cluster environment, all cluster nuclei are likewise quiesced.

Note:
If you are trying to use the SUSPEND or RESUME functions of ADADBS TRANSACTIONS and if Natural Security is being used to log on, the FSEC Natural profile parameter for the FSEC Natural Security system file should be set with the RO (read-only) setting. If RO is not specified for the FSEC parameter, you will not be able to log onto Natural while Adabas is suspended because some of the logon programs in Natural Security require updates to the FSEC.

Once the quiesce is successful, the buffers are flushed for all nuclei so that the DASD files are current with the content of the buffers. A checkpoint SYNC-73 is written and ADADBS is notified.

At this point, you may run a non-Software AG fast backup product such as IBM's FlashCopy or StorageTek's SnapShot to copy off the database; that is, copy pointers to the data created by the fast backup product in the electronic memory of the array storage device.

Warning:
Software AG does not recommend using such a database fast copy as a substitute for a regular Software AG database (or delta) save. Not only does Software AG have no control over the data sets that are included in the database fast copy, but it also cannot vouch for the success of the fast copy. Moreover, delta saves cannot sensibly be run on a copy of the database, as the DSF status change effected by the delta save would occur on the database copy instead of the original.

If the COPY completes before the TRESUME timeout and the RESUME function is issued, the nucleus writes a SYNS-74 checkpoint, leaves the suspended state and resumes update processing. The database was in a valid state over the whole duration of the COPY process.

If the COPY does not complete before the TRESUME timeout, Adabas automatically leaves the suspended state and resumes update processing. If the RESUME function is issued subsequently, Adabas rejects it with a response code and ADADBS terminates abnormally with an error message. This means that whatever COPY has been produced while update processing was suspended is invalid and must not be used, because Adabas may have resumed updating the database while the COPY process was still in progress.

If the so-created copy of the database is used for recovery, removing the need to restore the database as of the time of the COPY, the subsequent regenerate should be started at the SYNC-73 checkpoint written at the end of the SUSPEND function.

Important:
In a job where a SUSPEND function is followed by other job steps and then by a RESUME function, none of the job steps in between should be update-type commands or functions; otherwise, job execution will stall until the nucleus times out the suspended state.

This document covers the following topics:


Essential Parameters

SUSPEND: Suspend Transactions and Quiesce the Database

Use this parameter to suspend update transaction processing and quiesce the database.

RESUME: Resume Transaction Processing that was Previously Suspended

Use this parameter to resume update transaction processing that was previously suspended. If this parameter is used while Adabas is not in a suspended state or is no longer in a suspended state, this function terminates with an error.

Optional Parameters

TRESUME

Use this parameter to specify the amount of time in seconds the system is to remain quiesced after being suspended before the nucleus automatically resumes normal update transaction processing. If this parameter is not specified, the default is 120 seconds and the maximum is 86400 seconds or about 24 hours. The count begins when the nucleus has been successfully quiesced.

TTSYN

Use this parameter to specify the maximum amount of time the nucleus is to wait for all ET users to reach ET status before it forcibly ends and backs out update transactions that are still running in order to quiesce the system. If this parameter is not specified, the default is the ADARUN TT value.

NOUSERABEND: Termination without Abend

When a parameter error or a functional error occurs while this utility function is running, the utility ordinarily prints an error message and terminates with user abend 34 (with a dump) or user abend 35 (without a dump). If NOUSERABEND is specified, the utility will not abend after printing the error message. Instead, the message "utility TERMINATED DUE TO ERROR CONDITION" is displayed and the utility terminates with condition code 20.

Note:
When NOUSERABEND is specified, we recommend that it be specified as the first parameter of the utility function (before all other parameters). This is necessary to ensure that its parameter error processing occurs properly.

TEST: Test Syntax

The TEST parameter tests the operation syntax without actually performing the operation. Only the syntax of the specified parameters can be tested; not the validity of values and variables. See Syntax Checking with the TEST Parameter for more information on using the TEST parameter in ADADBS functions.

Example

Quiesce a database allowing 300 seconds for the currently running update transactions to finish and 150 seconds thereafter for the suspension to last before Adabas automatically resumes normal processing:

ADADBS TRANSACTIONS SUSPEND,TTSYN=300,TRESUME=150