This document gives hints on how to define the ETP environment for the maximum performance.
This document covers the following topics:
To perform the first steps with ETP, you can use the demonstration
files EMPLOYEES
and VEHICLES
that are supplied with
every Natural installation, and the corresponding sample programs described in
the Natural Programming
Guide.
You can also use the application program that you plan on using with ETP by copying the necessary files for test purposes. For easier maintenance, Software AG recommends starting with small or empty files; this makes it easier to see which changes ETP has performed.
It is possible and recommended to initially install both master and replicate files on the same database. This eases the first steps, and avoids problems that might occur when data is transmitted over a network.
You should ensure that user exits do not change either the database ID
or the file number specified in the Adabas control block. If required, use the
Natural macro NTTF
or the Natural profile parameter TF
. The following exits
are a potential source of such changes:
NATUEX5
(Natural, called before an Adabas call)
NATUEX6
(Natural, called after an Adabas call)
User exit B (ADALNK
)
User exit 1 (Adabas)
When accessing an Adabas database that requires the first command to be
an OPEN
command, a NAT3009 error will occur during
replication if Natural has not been set up so that an
OPEN
command is issued. When your system is set up
to require an OPEN
command, heed the hints in the
following sections when defining replicate files.
When defining replicate files on diverse platforms and systems, you should be aware of the points described in the following topics.
If an Adabas database requires that an
OPEN
(OP
) command to be
issued before any other database call, the Natural system variable
*ETID
must
be a non-blank value; if *ETID
is blank, Natural
does not issue the OP
command. You can also use the
dynamic Natural profile parameter ETID
to specify a
non-blank ETID.
If Natural Security is not installed, the default for
*ETID
is the user ID. If Natural Security
is installed, Software AG recommends letting Natural Security generate
the *ETID
value automatically;
RESTART=YES
should also be specified for the library
SYSETP
. For more information, see the
Natural
Security documentation.
You can use either the Natural profile parameter
OPRB
or the
NTOPRB
macro to specify a Record Buffer for the OPEN
(OP
) command issued to the replicate databases. See
the Natural Parameter
Reference documentation for parameter or macro
details.
Alphanumeric and binary data is represented differently on mainframe and OpenVMS, UNIX and Windows systems. This can lead to unexpected results if:
You use Natural REDEFINE
statements in your
application to redefine a field defined as alphanumeric in Natural and in the
Adabas Field Definition Table (FDT), so that the alphanumeric data is overlaid
with numeric or binary data-or vice versa;
Binary superdescriptors are used that contain alphanumeric data;
Alphanumeric superdescriptors are used that contain binary data
(i.e., by means of a REDEFINE
).
In the above cases, strange results can occur because:
Binary data that is part of an alphanumeric field is converted from EBCDIC to ASCII, producing useless result data;
Alphanumeric data that is part of a binary field is not converted from EBCDIC to ASCII;
The sequence obtained by means of a READ LOGICAL
statement may be
different due to the fact that Windows and some UNIX machines have a byte-swap
architecture especially affecting alphanumeric data that is contained in binary
fields.
Particularly for superdescriptors, Entire Net-Work for mainframe systems provide the superconverter feature that allows for an exact specification of the translation process for all parts of a superdescriptor. Refer to the appropriate Entire Net-work documents for a detailed description.
ETP performance is affected by the definitions of master and replicate
files. If you plan to replicate large amounts of transactions, you should
specify the definitions carefully to avoid performance problems. The
CHECK DEFINITIONS
command of the ETP
maintenance utility is useful for examining your definitions for
potential performance problems. If a potential problem is reported, it will in
many cases be a problem only if large numbers of transactions are to be
replicated.
You should also take into account that not only the use of ETP itself, but also other resources are likely to be potential sources of data distribution problems; for example:
Usage of the machine hosting the master file database or performing the ETP replication process may be short of resources (CPU time, etc.);
The process performing the ETP replication task may run at low priority;
The Adabas nucleus hosting the master and log files may run at low priority;
The Net-work processes on either the master or the replicate site may be overloaded or run at low priority;
The transmission rate may be low or the usage high on the network link connecting the master and replicate databases;
The Adabas nucleus hosting the replicate file may run at low priority.
When replicating a large number of master file updates, you should examine all of the above possibilities to ensure that the updates are replicated as you intended. When performing only a small number of master file updates, the danger of performance-related problems is usually very small.
The following are hints and tips for setting up master and replicate files:
Avoid defining distribution keys for a master file unless you
actually need them.
Distribution keys cause overhead for both logging and replication of
master file updates. During replication, any defined distribution key ranges
are kept in storage for performance reasons. If you have defined a number of
large distribution key ranges for replicate files and those replicate files are
on the same database for which the master file share a common log file (see the
next point), then some key ranges have to be loaded from the database. To
improve performance in this case, assign different log files to the
corresponding master files.
For all master files with replicate files on common databases,
use a common log file.
For example, consider the following relationship of master and
replicate files:
Master File DBID/File no.: | Replicate File DBID/File no.: |
---|---|
10/20 |
12/20 |
In this case, master files 20 and 30 could share a common log file and master files 40 and 42 could share a second log file. In fact, if the number of changes to all the master files are small, all four master files can share a single log file. Note, however, the exception when using distribution key ranges as described in the point above, and the last point on the following page.
Run multiple replication tasks from different log files or to
different databases, in parallel.
Running parallel multiple tasks that perform replication from
different log files and/or to replicate databases improves system throughput
and is highly recommended if many updates are to be replicated or if the number
of replicate databases is high. For a network link with a high transmission
rate, running multiple tasks that replicate from different log files to a
common replicate database may also improve the system throughput.
Short self-restart intervals are unproductive.
The checking necessary to determine if any new transactions in a log
file are to be replicated requires a fixed number of database calls; therefore,
using a self-restart interval that is too small results in unnecessary
overhead. You can use the report written by ETP following every replication to
choose an appropriate self-restart interval.
Use batch mode to define a large number of files.
When defining a large number of master and replicate files, Software
AG recommends doing this in batch mode because changes to all definitions are
more easily achieved by deleting the existing definitions and then adding the
modified definitions again.
An error when replicating to one replicate file affects all
replicate files served by that log file.
When an error occurs during replication of an update, replication is
terminated immediately for all replicate files on that database that are served
by the related log file. This includes transactions to replicate files from
other master files that share the log file. File-specific errors (indicated by,
for example, Adabas response code 113) should not occur under normal
conditions; however, to ensure that replication continues for as many log files
and replicate databases as possible, assign different log files to the master
files.