This section describes the runtime parameters used for Adabas Transaction Manager.
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:
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.
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.
The ATM daemon will allow 250 entries in its internal request queue.
ADARUN PROG=ADANUC,DTP=TM,TMDRQ=250
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.
The ATM daemon is to handle up to 2048 concurrent users who do not have ETIDs.
ADARUN PROG=ADANUC,DTP=TM,TMDYNTCIDS=2048
Parameter | Parameter Type | Use | Possible Values | Default |
---|---|---|---|---|
TMETDATA |
Runtime |
Location of |
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 |
|
TARGETS |
If the user storing
|
Note:
See also section
ET Data
Storage.
ET
data is to be stored in the transaction
manager daemon's database only.
ADARUN PROG=ADANUC,DTP=TM,TMETDATA=ATM
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.
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
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.
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
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
maintain a log buffer area in memory that contains details of the latest logged events;
maintain transaction-related event details in storage areas related to specific global transactions;
write every log record to dual sequential ATMLOG datasets.
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.
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
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. |
The ATM daemon should not send message of severity less than 4 to the console.
ADARUN PROG=ADANUC,DTP=TM,TMMSGEV=4
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. |
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
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. |
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
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.
ATM will assign dynamic TCIDs beginning with the string “DYN”.
ADARUN PROG=ADANUC,DTP=TM,TMTCIDPREF=DYN
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:
OP,CL,ET,BT
and
RE
commands
The first change-type command (A1,E1,N1
,
etc.) to each DTP=RM
database modified in a
transaction
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 |
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.
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