Other considerations


Extended Hold Processing

The P and M command options of ET and BT commands allow a program to keep some records in hold status even after a transaction is applied or undone. Adabas Transaction Manager supports these options when the Extended Hold client runtime control is set. Extended hold processing proceeds as follows:

  • At the point where the distributed transaction is applied or undone, the P/M option on the first ET/BT is honored (if used). In addition, all records in the other databases remain in hold until the ET for each database in turn is encountered.

  • As each ET (or BT) in series is encountered the P/M options are honored for each database in turn.

  • The consequence of this unavoidable processing is that some or all records are held longer than they need to be, and additional commands are issued in order to resolve the hold processing to obey the wishes of the application.

If the extended hold option is not active (the default setting), any ET or BT command will cause all the user’s held ISNs to be released in databases where changes have been made, except possibly in the database that is the target of the command; for this database, any P or M option present in the command will be honored. This is by far the most efficient mode of execution.

Note:
Extended hold processing is only relevant when transaction control is exerted by ET or BT command.

Shared Hold Status

The H option of command option 3 for an ET or BT ACBX call allows a program to keep a record in shared hold status indefinitely (until the next ET or BT command). Adabas Transaction Manager supports this option as follows:

  • At the point where the distributed transaction is applied or undone, the H option on the first ET/BT is honored.

  • As each ET (or BT) in series is encountered, if a shared hold status conflict is detected (for example, a "H" option is subsequently specified for a database that was involved in the earlier distributed transaction) then a response 240 sub-code 588 will be returned to the calling program. This has no effect on the transaction outcome, which was determined earlier, but is an indication to the program that it should review its use of this option.

Note:
Adabas does not currently support the shared hold status "H" option for the internal Yx commands used by Adabas Transaction Manager.

Close Commands

Since a close command implies end-of-transaction, every CL command triggers the same processing as for an ET command, except that:

  • the user is also closed in the target database;

  • if the target database is at ET status, the current distributed transaction is not affected.

Open Commands

An OP command sent to a database in which the client has no uncommitted changes or held records will simply be passed to its target without affecting the client’s distributed transaction status. This logic allows "open on demand" processing without interference in distributed transaction processing.

An OP command sent to a database that is actively involved in the current distributed transaction causes the distributed transaction to be wholly undone.

If the OP command specifies that ET data is to be read, the above processing occurs. If processing is successful, the user’s ET data is returned to the calling program. This applies even if the target database has the parameter setting DTP=NO. The ET data is read either from the ATM transaction manager’s recovery file or, if the transaction manager is running with the parameter setting TMETDATA=TARGETS, from the database indicated by the OP command.