Version 7.5.1
 —  Adabas Transaction Manager Parameters  —

Runtime Parameters

This section describes the runtime parameters used for Adabas Transaction Manager.


ATM Runtime Parameters

ATM execution is controlled mainly through ADARUN (ADARUN DDCARD input) runtime parameters. When executing the Adabas Transaction Manager daemon, the parameter setting ADARUN DTP=TM must be provided. All other ATM runtime parameters, all of which begin with “TM”, will be effective only when ADARUN DTP=TM is specified. They are ignored for all other values of DTP. For more information on the DTP parameter, see the Adabas Operations documentation.

Note:
Adabas databases that participate in two-phase commit processing must execute as resource managers with ADARUN DTP=RM.

Note:
ADARUN NONDES=YES (non-descriptor search allowed) is required for the Adabas Transaction Manager daemon.

The following section describes each ATM runtime parameter:

TMDRQ : Size of ATM Request Queue

Parameter Parameter Type Use Possible Values Default
TMDRQ Runtime

Sets the number of entries allowed in the ATM daemon internal request queue.

10 - 32767 10

The ATM daemon uses an internal request queue for scheduling the tasks it needs to perform. The TMDRQ parameter determines the total number of entries in the queue that is used to service certain incoming, asynchronous requests. This queue is currently used only when the ATM RRMS interface is active.

RRMS Considerations

When the RRMS interface is in use, the ATM dynamic request queue (DRQ) is used for communication between ATM RRMS exits and the daemon. The value specified for the TMDRQ parameter should therefore be increased if RRMS is to be used. Consider the number of global transactions that may reach a syncpoint at the same time, and increase TMDRQ by this number. You can specify a higher value, for safety, without incurring any performance degradation.

You can use Online Services to monitor usage of the DRQ. If you specify too small a value and the DRQ becomes full, backouts resulting in response code 9 are likely to occur.

Example

The ATM daemon will allow 250 entries in its internal request queue.

ADARUN PROG=ADANUC,DTP=TM,TMDRQ=250

TMDYNTCIDS : Number of Dynamic Client Identifiers

Parameter Parameter Type Use Possible Values Default
TMDYNTCIDS Runtime

Sets the maximum number of Client IDs that ATM can dynamically allocate.

32 - 65536 1024

To aid interpretation of online displays and diagnostic logs, ATM assigns an 8-byte client identifier (TCID) to each user that engages in transactional activity. If the user issues an Adabas OP command with an ETID, the TCID takes the same value as the ETID. If a user does not have an ETID, ATM dynamically allocates a TCID. A dynamically allocated TCID becomes available for reuse when the associated user closes all its sessions with Adabas databases or times out.

The TMDYNTCIDS parameter determines the maximum number of TCIDs available for use by the ATM daemon during its lifetime. The value should be at least as large as the maximum number of users who may be active at one time without ETIDs.

Note:
A TCID is allocated temporarily to every user when the user first comes to the attention of the ATM daemon. If the user supplies an ETID, the temporarily allocated TCID will quickly be freed. Therefore, TCIDs are required, even in environments in which every user has an ETID.

Example

The ATM daemon is to handle up to 2048 concurrent users who do not have ETIDs.

ADARUN PROG=ADANUC,DTP=TM,TMDYNTCIDS=2048

TMETDATA : ET Data Control

Parameter Parameter Type Use Possible Values Default
TMETDATA Runtime

Location of ET data

ATM | TARGETS TARGETS

The TMETDATA parameter determines the database or databases that will store ET data. The same TMETDATA parameter value must be specified for all ATM instances on the network.

Possible values:

Value Explanation
ATM

ET data is always stored in and read from the ATM daemon's database, without regard to the Database ID indicated by the Adabas command.

  • treats ET data as belonging to a global transaction rather than to a database;

  • there is just one copy of a user’s ET data in a system;

  • eliminates confusion resulting from the existence of different ET data in different databases under the same ETID;

  • overrides the Natural ETDB parameter;

  • should not be used if the SERIAL=YES or SERIAL=FORCE option will be specified for any client environment in which ET data is stored or read.

TARGETS

ET data is stored during the commit process in all changed databases that are running with DTP=RM.

ET data that is stored by an ET or CL command is always stored in the database that is the target of the command, whether or not that database runs with DTP=RM. It the database runs with DTP=NO, the ET data is written to the database only after any open global transaction has been committed.

If the user storing ET data is at global transaction status, ATM is not required to carry out any commit processing; the data is simply stored in the database indicated by the Adabas command. ET data is always read from the database specified in the Adabas command.

  • treats ET data as belonging to a database or a local database transaction rather than to a global transaction;

  • a user’s ET data might exist in several databases in a system;

  • a user can have several different ET data values in different databases at the same time;

  • means that 3GL application programs using ET data must have knowledge of the database that holds ET data for a given transaction;

  • honors the Natural ETDB parameter.

Note:
See also section ET Data Storage.

Example

ET data is to be stored in the transaction manager daemon's database only.

ADARUN PROG=ADANUC,DTP=TM,TMETDATA=ATM

TMGTNA : Global Non-Activity Time Limit

Parameter Parameter Type Use Possible Values Default
TMGTNA Runtime

Sets the user inactivity time limit

1 - 1677215 720

The TMGTNA parameter approximately specifies the maximum elapsed time, in units of 1.048576 seconds, a user known to the ATM daemon can remain active without issuing a transactional Adabas command that invokes ATM on the user’s behalf. If a user exceeds the specified time, the ATM daemon frees any of its resources associated with this user.

The TMGTNA value should be smaller than the lowest TNAx parameter of any database that runs with DTP=RM, and greater than the value specified for TMGTT.

The TMGTNA parameter does not supersede the TNAx parameter settings of other databases. When a user exceeds the period specified by TMGTNA, other databases do not free that user’s user queue elements (UQEs); this occurs only when the user exceeds the TNAx values of the local databases.

Example

The ATM daemon will time out an inactive user after a period of about 7200 seconds (2 hours).

ADARUN PROG=ADANUC,DTP=TM,TMGTNA=7200

TMGTT : Global Transaction Time Limit

Parameter Parameter Type Use Possible Values Default
TMGTT Runtime

Sets time limit during which a global transaction can be open without being prepared.

1 - 1677215 720

The TMGTT parameter approximately specifies the maximum elapsed time, in units of 1.048576 seconds, that a global transaction can remain open without being prepared. If the limit is exceeded, the ATM daemon automatically backs out the global transaction from all affected databases. The next time the user issues a transactional Adabas command, a response code 9 is returned, provided that the global non-activity time has not been exceeded for the user.

TMGTT should be smaller than the lowest TT parameter of any database running with DTP=RM and smaller than the value specified for TMGTNA.

The TMGTT parameter does not supersede the TT parameter settings of other databases. If a database times out a user who has an unprepared global transaction open, the global transaction is subsequently backed out. A response code 9 is returned if the user then issues a transactional command before the corresponding non-activity time limit is exceeded.

Example

The ATM daemon will back out global transactions that are not prepared within about 600 seconds (10 minutes) of the first transactional command.

ADARUN PROG=ADANUC,DTP=TM,TMGTT=600

TMLOG : ATM Logging Control

Parameter Parameter Type Use Possible Values Default
TMLOG Runtime Controls the logging option for the current execution of the ATM daemon. YES | NO | NEVER NO

The ATM daemon can log internal events for diagnostic purposes using a dual logging system. It can

Possible values:

Value Description
YES The ATM daemon writes every record to an ATMLOG dataset. The ATM daemon keeps a record of the latest internal events in its global log buffer area. It also maintains the contents of log buffer areas related to open global transactions. Logging to the ATMLOG datasets can be deactivated at any time using the operator command TM NOLOG.
NO The ATM daemon will not write log records to the ATMLOG datasets. Logging to the ATMLOG datasets can be activated at any time using the operator command TM LOG. The ATM daemon keeps a record of the latest internal events in its global log buffer area; it also maintains the contents of log buffer areas related to open global transactions.
NEVER ATM logging is disabled for the duration of this execution of the ATM daemon.

On MVS and VSE systems, if the ATM daemon writes log records to the ATMLOG (TMLOG=YES or TM LOG issued) and the dataset currently in use becomes full, the daemon closes that dataset and switches to the other dataset. Automatic log switching currently does not take place on BS2000 systems. A system message might appear in the console log, indicating that the first log dataset has become full. You may also switch between the two ATMLOG datasets by using the operator command TM FEOFLOG. Whenever the ATMLOG datasets are switched, a message is displayed on the console indicating the dataset that is currently in use.

Example

The ATM daemon is to maintain its internal log buffer areas and write all log records to the ATMLOG datasets.

ADARUN PROG=ADANUC,DTP=TM,TMLOG=YES

TMMSGSEV : Severity Threshold for Warning Messages

Parameter Parameter Type Use Possible Values Default
TMMSGSEV Runtime Sets severity threshold for the suppression of warning messages. 0 | 4 | 8 0

Every message that the ATM daemon sends to the console and to the DDPRINT dataset has a severity level. Message severity levels are explained in the section Messages and Codes.

Using the TMMSGSEV parameter, you can prevent messages with low severity levels from being written to the console by the ATM daemon. This parameter has no effect on messages that are issued by the TM proxy, or during the early part of the daemon’s initialization.

All messages created by the ATM daemon are written to DDPRINT regardless of the TMMSGSEV specification.

Possible values:

Value Description
0 No messages are suppressed.
4 Messages of severity less than 4 are not sent to the console.
8 Messages of severity less than 8 are not sent to the console.

Example

The ATM daemon should not send message of severity less than 4 to the console.

ADARUN PROG=ADANUC,DTP=TM,TMMSGEV=4

TMRESTART : ATM Restart Control

Parameter Parameter Type Use Possible Values Default
TMRESTART Runtime Controls restart handling of problematic transactions. NORMAL | FORCE | FORCEALL NORMAL

When an ATM daemon restarts, it rebuilds its global user queue as nearly as possible to its latest state when ATM was last executing. It then attempts to complete or back out any incomplete global transactions. The TMRESTART parameter determines the daemon’s restart action with regard to global transactions and transaction branches that remain incomplete at the end of this process.

Possible values:

Value Description
NORMAL Any incomplete transactions remain in an incomplete state until such time as they can be completed.
FORCE ATM transfers to the suspect transaction journal (STJ) the details of every incomplete global transaction that has its root local to this ATM daemon. The details of these transactions are deleted from ATM’s recovery information, the originating users are closed, and any related internal resources are freed. ATM can no longer guarantee integrity for such global transactions.
FORCEALL Details of all unresolved global transactions and transaction branches are transferred to the STJ. The details are deleted from ATM’s recovery information, the originating users are closed, and any related internal resources are freed. ATM can no longer guarantee integrity for the affected global transactions.

Example

After recording them in the STJ, the ATM daemon is to discard details of any global transactions that it owns, and that remain incomplete at the end of its restart processing.

ADARUN PROG=ADANUC,DTP=TM,TMRESTART=FORCE

TMSYNCMGR : Support for External Transaction Coordinators

Parameter Parameter Type Use Possible Values Default
TMSYNCMGR Runtime Indicates whether or not the ATM daemon is to interact with an external transaction coordinator. NONE | RRMS NONE

The TMSYNCMGR parameter determines whether or not the ATM daemon registers and interacts with an external transaction coordinator.

Possible values:

Value Description
NONE The ATM daemon will not interact proactively with an external transaction coordinator. This setting does not preclude the use of the CICS Syncpoint Manager, which interfaces directly with the TMP component and not with the ATM daemon.
RRMS The ATM daemon will register with the IBM Recoverable Resource Management Services so that it can participate in transactions that involve other RRMS-enabled resource managers. This parameter value is valid only for z/OS or OS/390 systems in which RRS (a component of RRMS) is active. The current version of ATM offers participation in RRMS-coordinated two-phase commit for single-user, single-TCB batch applications and for applications running under IMS/TM.

Example

ATM registers with RRMS so that it can take part in transactions involving other RRMS-enabled resource managers.

ADARUN PROG=ADANUC,DTP=TM,TMSYNCMGR=RRMS

TMTCIDPREF : Dynamic Client ID Prefix

Parameter Parameter Type Use Possible Values Default
TMTCIDPREF Runtime Defines the first one, two, or three characters of dynamically allocated Client IDs. up to 3 alphanumeric characters TM

To aid interpretation of Online Services displays and diagnostic logs, the ATM daemon dynamically allocates an 8-byte client identifier (TCID) for each user who engages in transactional activity but who does not have an ETID.

The format of a dynamically allocated TCID is

pppnnxxx

—where

ppp is the value of TMTCIDPREF, left-justified and with trailing blanks if required.

nn is the 2-byte binary ATM Database ID.

xxx is a 3-byte binary suffix. Suffixes are allocated in sequence and are reused. The first TCID to be allocated has a suffix of zeros.

The TMTCIDPREF value must be chosen to ensure that dynamic client identifiers are always different from any ETIDs used in your network.

Example

ATM will assign dynamic TCIDs beginning with the string “DYN”.

ADARUN PROG=ADANUC,DTP=TM,TMTCIDPREF=DYN

Top of page

Recommendations for Adabas Runtime Parameters when using ATM

Caution:
Prior to using Adabas Transaction Manager in a production environment, the settings for Adabas runtime parameters should be reviewed and modified as necessary according to the recommendations provided in this section.

The Adabas Transaction Manager daemon tracks and coordinates all Adabas transactional activity. This includes:

The originating client’s Transaction Manager proxy forwards these commands to the Adabas Transaction Manager daemon for scrutiny.

Furthermore, the Adabas Transaction Manager daemon acts as a focal point for transactional activity for all Adabas activity within the system image. Consequently, there may be times when significant load is experienced. Therefore, for production running, an Adabas Transaction Manager daemon needs to be configured to handle high levels of concurrent activity.

Some Adabas parameters need to be reviewed. In general it is usually appropriate to take the values set for the busiest Adabas database in the system and use at least those values. In any case, setting values high, and reviewing them later, after a successful period of operation, is a reasonable safety first approach for most parameters. The following table describes the most important parameters which should be reviewed, but all other parameters should be considered also.

Adabas Parameter Description
NU

For the ATM daemon, the NU parameter needs to be high enough for the maximum concurrent number of Adabas clients in the system, which may include two for each Natural session (depending on the Natural ADAMODE setting). NU should be set to at least twice the value of TMGUQ.

NC The command queue size for the Transaction Manager daemon needs to be set for high levels of throughput.
NAB For each concurrent activity a portion of the attached buffers is used.
NT Some transactional activity can take more time to complete than a normal Adabas command (for example, coordinating multiple databases to complete a transaction safely), so the number of threads in the ATM daemon should be higher than might be expected.
TMLOG=NO Numerous I/O operations to the TM LOG dataset are performed when the TMLOG parameter is set to TMLOG=YES. In a busy system, the I/O rate for TMLOG=YES will have a significant impact on performance; in such cases, set TMLOG=NO for the ATM daemon.

Before using Adabas Transaction Manager in a production environment, remember also to review the job parameter settings for jobs and TP systems that will use ATM. Pay particular attention to the setting of the LGRECNO parameter for TP systems.

Top of page

Enforced Runtime Parameters

When the Adabas Transaction Manager daemon is started, certain ADARUN parameter values are enforced. If other values are supplied through the DDCARD DD statement, they are ignored and overwritten by the values preset for the daemon. The enforced parameter values include the following, although other parameters might also be affected:

FASTPATH=NO
PLXID=0
READONLY=NO
SMPID=0
SPT=NO
UTIONLY=NO
VISTA=NO

Top of page