Document revision date: 30 March 2001

## OpenVMS System Manager's Manual

Previous | Contents | Index

## 27.3 Planning for a DECnet-Plus Network

This section contains the following information to help you plan for using DECdtm in a DECnet-Plus network:

- Planning your DECnet-Plus namespace
- Planning SCSNODE names in your DECnet-Plus network

### 27.3.1 Planning Your DECnet-Plus Namespace

DECdtm does not support multiple DECnet-Plus namespaces.

This means that if you want to use software that uses DECdtm services, you cannot use both a local namespace and a DECdns namespace.

### 27.3.2 Planning SCSNODE Names in Your DECnet-Plus Network

SCSNODE is a system parameter that defines the name of the computer. You must follow certain rules when choosing SCSNODE names if you have a DECnet-Plus network and you want to perform DECdtm transactions that span either different OpenVMS Clusters or different standalone computers.

#### 27.3.2.1 Rules for SCSNODE Names

If you have a DECnet-Plus network and want to perform DECdtm transactions that span different OpenVMS Clusters or different standalone computers, you must make sure that your SCSNODE names obey the following rules:

- The SCSNODE name of each computer in a transaction group must be different from:
  - The SCSNODE names of the other computers in the transaction group; SCSNODE names must be unique within a transaction group
  - The DECnet simple names of other computers on the same local root
  - The DECnet synonyms of the other computers in the entire network
  For an explanation of transaction groups, see Section 27.3.2.2.
- If a computer is in an OpenVMS Cluster, its SCSNODE name must also be different from:
  - The DECnet simple names of the other computers in the same cluster
  - The DECnet simple names of computers on the same local root as other cluster members

#### 27.3.2.2 Understanding Transaction Groups

A transaction group is a group of computers involved in DECdtm transactions whose SCSNODE names must obey the rules described in Section 27.3.2.1.

A transaction group conforms to the following guidelines:

- Each computer belongs to no more than one transaction group.
- All the computers in an OpenVMS Cluster belong to the same transaction group.
- If a single transaction spans computers A and B, then computers A and B belong to the same transaction group.

Figure 27-2 shows an example of a transaction group.

Figure 27-2 Transaction Group

All nine computers shown in the figure are in the same transaction group because:

- A transaction spans a computer in cluster FRED and a computer in cluster BILL. This means that the four computers in cluster FRED and the four computers in cluster BILL are in the same transaction group.
- A transaction spans standalone computer TOM and a computer in cluster BILL. This means that the standalone computer TOM is in the same transaction group as the computers in cluster BILL.

## 27.4 Creating Transaction Logs

Before a node can perform DECdtm transactions, you must create a transaction log for the node. In an OpenVMS Cluster environment, create a transaction log for each node.

Caution Removing a node from a cluster after you have created the transaction logs can lead to data corruption. For instructions on how to remove a node safely, see Section 27.11.

How to Perform This Task

1. For each node, decide the size and location of the transaction log, using the guidelines in Section 27.2. Remember that the disks must have enough contiguous space to hold the transaction logs.
2. If you are in a cluster environment, make sure that the disks on which you want to create the transaction logs are mounted clusterwide.
3. Decide in which directories you want to create the transaction logs. You may want to create new directories for the transaction logs.
4. Define SYS$JOURNAL to point to the directories in which you want to create the transaction logs:

   `DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL dirspec[,...]`

   where dirspec is the full specification of a directory in which you want to create one or more transaction logs. List all the directories that will contain transaction logs. You can list the directories in any order.
   In a cluster environment, use SYSMAN to define SYS$JOURNAL clusterwide.

5. Edit the SYS$MANAGER:SYLOGICALS.COM command procedure to include the SYS$JOURNAL definition.
   If you created node-specific versions of SYLOGICALS.COM, edit all the versions.
6. Create one transaction log for each node, using LMCP's CREATE LOG command:

   `CREATE LOG [/SIZE=size] dirspecSYSTEM$node.LM$JOURNAL`

   where:

   size | is the size of the transaction log in blocks. By default, the size of the transaction log is 4000 blocks.
   dirspec | is the full specification of the directory in which you want to create the transaction log.
   node | is the name of the node.

7. Make sure DECdtm services are enabled as follows:

   Step | Action
   --- | ---
   a. | Check whether the logical SYS$DECDTM_INHIBIT is defined:
        $ SHOW LOGICAL SYS$DECDTM_INHIBIT
   b. | Is SYS$DECDTM_INHIBIT defined?
   Yes | DECdtm services are disabled. Enable DECdtm services by following the instructions in Section 27.13.
   No | DECdtm services are enabled.

Example

This example shows how to create transaction logs in an OpenVMS Cluster that consists of two nodes whose SCSNODE names are BLUE and RED. Neither node has a node-specific version of SYLOGICALS.COM.

Decide the size and location of the transaction logs:

Node | Size of Log (in Blocks) | Disk
--- | --- | ---
BLUE | 5000 | DUA1
RED | 4000 | DUA2

Mount the disks clusterwide:

    $ MOUNT/CLUSTER/SYSTEM DUA1: LOG1
    $ MOUNT/CLUSTER/SYSTEM DUA2: LOG2

Create directories for the transaction logs:

    $ CREATE/DIRECTORY DISK$LOG1:[LOGFILES]
    $ CREATE/DIRECTORY DISK$LOG2:[LOGFILES]

Define SYS$JOURNAL:

    $ RUN SYS$SYSTEM:SYSMAN
    SYSMAN> SET ENVIRONMENT/CLUSTER
    SYSMAN> DO DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL -
    _SYSMAN> DISK$LOG1:[LOGFILES], DISK$LOG2:[LOGFILES]
    SYSMAN> EXIT

Edit the SYS$MANAGER:SYLOGICALS.COM command procedure to include the following line:

    $ !
    $ DEFINE/SYSTEM/EXECUTIVE_MODE SYS$JOURNAL DISK$LOG1:[LOGFILES], -
    DISK$LOG2:[LOGFILES]
    $ !

Create the transaction logs:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CREATE LOG/SIZE=5000 DISK$LOG1:[LOGFILES]SYSTEM$BLUE.LM$JOURNAL
    LMCP> CREATE LOG DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL
    LMCP> EXIT

Make sure DECdtm services are enabled:

    $ SHOW LOGICAL SYS$DECDTM_INHIBIT
    %SHOW-S-NOTRAN, no translation for logical name SYS$DECDTM_INHIBIT

SYS$DECDTM_INHIBIT is undefined, so DECdtm services are enabled.

## 27.5 Monitoring Transaction Performance

Changes to your system, such as increase in work load, can affect transaction performance. Once a month, monitor transactions on the node to make sure that transaction performance has not deteriorated. In an OpenVMS Cluster environment, monitor transaction performance on all the nodes in the cluster.

How to Perform This Task

1. Monitor transactions, using the MONITOR TRANSACTION command:

   `MONITOR TRANSACTION/SUMMARY[=file-spec]/ENDING=time/NODE=(nodename,...)`

   where:

   file-spec | is the file specification of the summary file. Information about transactions is summarized and recorded in the summary file. If you omit the file specification, the information is recorded in MONITOR.SUM in your default directory.
   time | is the time that the monitoring session ends.
   nodename | is the name of a node. In an OpenVMS Cluster, list all the nodes in the cluster.

   For the best results, monitor transactions for a day at a time.
   You can monitor transactions in batch mode by including the MONITOR TRANSACTION command in a command procedure.
   For a full description of the MONITOR TRANSACTION command, refer to the OpenVMS System Management Utilities Reference Manual.
2. Examine the summary file.
   The summary file contains values for a number of different data items. Note the following values for each node:
   - Average end rate. This is the average number of transactions completed per second.
   - Average completion rates. These are the average numbers of transactions completed in the following times:

     > Less than 1 second
     > Between 1 and 2 seconds
     > Between 2 and 3 seconds
     > Between 3 and 4 seconds
     > Between 4 and 5 seconds
     > More than 5 seconds

   Keep a note of these values.
3. Compare the results from this monitoring session with the results from previous sessions.
   For the same work load, the rate and duration of transactions should remain about the same. Indications of performance deterioration are:
   - The average end rate decreases
   - The average duration increases
     To find out whether the average duration of transactions has increased, compare the average completion rates. If a greater proportion of the transactions takes longer to complete, the average duration of transactions has increased.
   Note any trends over a number of monitoring sessions. Variations from one monitoring session to the next are probably due to variations in work load.
   If you suspect that transaction performance has deteriorated on any node, check whether its transaction log is too small (see Section 27.6).
   If the transaction log is big enough, but transaction performance still deteriorates, tuning the system might be necessary. Refer to the OpenVMS Performance Management for information about tuning your system.

Example

This example shows how to monitor transaction performance on an OpenVMS Cluster that consists of two nodes whose SCSNODE names are BLUE and RED.

Monitor transactions on nodes BLUE and RED for one day:

    $ MONITOR TRANSACTION/SUMMARY=DISK$LOG1:[LOGFILES]TRANSACTIONS.SUM -
    _$ /ENDING="+1-"/NODE=(BLUE,RED)

Examine the summary file:

                       DISTRIBUTED TRANSACTION STATISTICS
                                 on node BLUE         From: 16-OCT-2000 14:23:51
                                    SUMMARY           To:   17-OCT-2000 14:23:51
                                       CUR        AVE        MIN        MAX

    Start Rate                       49.02      43.21      31.30      49.02
    Prepare Rate                     48.70      43.23      30.67      48.70
    One Phase Commit Rate             0.00       0.00       0.00       0.00
    Total Commit Rate                48.70      43.19      31.30      48.70
    Abort Rate                        0.00       0.00       0.00       0.00
    End Rate                         48.70      43.19      31.30      48.70
    Remote Start Rate                 0.00       0.00       0.00       0.00
    Remote Add Rate                   0.00       0.00       0.00       0.00

    Completion Rate    0-1           21.42      13.57       0.63      21.42
     by Duration       1-2           25.97      29.15      24.59      33.87
     in Seconds        2-3            1.29       0.47       0.00       4.47
                       3-4            0.00       0.00       0.00       0.00
                       4-5            0.00       0.00       0.00       0.00
                        5+            0.00       0.00       0.00       0.00

                                  SUMMARIZING

                       DISTRIBUTED TRANSACTION STATISTICS
                                 on node RED          From: 16-OCT-2000 14:23:52
                                    SUMMARY           To:   17-OCT-2000 14:23:52

       .
       .
       .

Make a note of the following values:

- Average end rate.
  For node BLUE, the average end rate is 43.19 transactions per second.
- Average completion rates.
  For node BLUE, the average completion rates are as follows:

  > 13.57 transactions completed in 0 to 1 seconds
  > 29.15 transactions completed in 1 to 2 seconds
  > 0.47 transactions completed in 2 to 3 seconds

Compare the results from this monitoring session to those of previous sessions:

Session | End Rate | Completion Rates
--- | --- | ---
|  | 0--1 Secs | 1--2 Secs | 2--3 Secs
June | 42.13 | 12.98 | 28.13 | 1.02
July | 38.16 | 10.35 | 25.80 | 2.01
August | 43.19 | 13.57 | 29.15 | 0.47

The results for node BLUE show no signs of deteriorating performance.

## 27.6 Checking Whether a Transaction Log Is Too Small

If transaction performance has deteriorated on a node, check whether its transaction log is too small.

Section 27.5 describes how to find out whether transaction performance has deteriorated.

How to Perform This Task

1. Log in to the node that the transaction log belongs to.
2. Check how many times the transaction log has stalled, using LMCP's SHOW LOG/CURRENT command:

       $ RUN SYS$SYSTEM:LMCP
       LMCP> SHOW LOG/CURRENT

   Note the number of checkpoints and stalls displayed by this command.
3. Wait for five minutes, then repeat the SHOW LOG/CURRENT command. Note the number of checkpoints and stalls again.
4. Compare the information from the SHOW LOG/CURRENT commands:
   If the number of checkpoints has not changed, wait until the system is busier, then try this task again.
   If the number of checkpoints has increased, and the number of stalls has increased by more than one, the transaction log is too small.
5. If the transaction log is too small, increase its size. For information about how to change the size of a transaction log, see Section 27.7.

Example

This example shows how to check whether node BLUE's transaction log is too small.

Log in to node BLUE. Then check how many times the transaction log has stalled:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> SHOW LOG/CURRENT
    Checkpoint starts/ends            2464/2464
    Stall starts/ends                   21/21
    Log status: no checkpoint in progress, no stall in progress.

The number of checkpoints is 2464, and the transaction log has stalled 21 times.

Wait for five minutes, then repeat the SHOW LOG/CURRENT command:

    LMCP> SHOW LOG/CURRENT
    Checkpoint starts/ends            2514/2514
    Stall starts/ends                   28/28
    Log status: no checkpoint in progress, no stall in progress.

The number of checkpoints has increased since the previous reading, and the transaction log has now stalled 28 times, an increase of 7. This means that the transaction log is too small.

## 27.7 Changing the Size of a Transaction Log

To determine if changing the size of a transaction log is necessary, see Section 27.6.

How to Perform This Task

Caution Follow all the steps carefully. Taking shortcuts can lead to data corruption.

1. Log in to the node that the transaction log belongs to.
2. Find out which directory the transaction log is in, using LMCP's SHOW LOG command:

   `SHOW LOG SYSTEM$node.LM$JOURNAL`

   where node is the name of the node that the transaction log belongs to.

3. Rename the transaction log:

   `RENAME dirspecSYSTEM$node.LM$JOURNAL dirspecSYSTEM$node.LM$OLD`

   where:

   dirspec | is the full specification of the directory containing the transaction log.
   node | is the name of the node that the transaction log belongs to.

4. Can you stop all the software that uses DECdtm services without shutting down any nodes?

   Yes | Close the transaction log as follows:
   Step | Action
   --- | ---
   a. | Stop all the software that uses DECdtm services.
   b. | Close the transaction log using LMCP's CLOSE LOG command:
       $ RUN SYS$SYSTEM:LMCP

       LMCP> CLOSE LOG
   The CLOSE LOG command closes the transaction log and stops the DECdtm TP_SERVER process. The command fails if any software is using DECdtm services.
   c. | Did the CLOSE LOG command succeed?
   Yes | Restart the TP_SERVER process:
       $ @SYS$STARTUP:DECDTM$STARTUP.COM
   No | Wait for 30 seconds, then repeat steps 4b and 4c.
   No | Close the transaction log by rebooting the node. Log in to the node when it has rebooted.

5. Change the size of the transaction log, using LMCP's CONVERT LOG command:

   `CONVERT LOG/SIZE=size dirspecSYSTEM$node.LM$OLD dirspecSYSTEM$node.LM$JOURNAL`

   where:

   size | is the new size of the transaction log in blocks.
   dirspec | is the full specification of the directory containing the transaction log.
   node | is the name of the node that the transaction log belongs to.

6. If you stopped the software that uses DECdtm services in step 4, restart the software.
7. Delete the old transaction log:

   `DELETE dirspecSYSTEM$node.LM$OLD;`

   where:

   dirspec | is the full specification of the directory containing the old transaction log.
   node | is the name of the node that the transaction log belongs to.

Example

This example shows how to change the size of node RED's transaction log to 6000 blocks. Node RED is in an OpenVMS Cluster, and its transaction log is in DISK$LOG2:[LOGFILES].

Log in to node RED. Find out which directory RED's transaction log is in, then rename the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> SHOW LOG SYSTEM$RED.LM$JOURNAL
    Directory of DISK$LOG2:[LOGFILES]

    SYSTEM$RED.LM$JOURNAL;1

    Total of 1 file.
    LMCP> EXIT

    $ RENAME DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL -
    _$ DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD

Stop all software that uses DECdtm services. Then close the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CLOSE LOG
    Transaction log closed, TP_SERVER process stopped
    LMCP> EXIT

Restart the TP_SERVER process:

    $ @ SYS$STARTUP:DECDTM$STARTUP.COM

Change the size of the transaction log:

    $ RUN SYS$SYSTEM:LMCP
    LMCP> CONVERT LOG/SIZE=6000 DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD -
    _LMCP> DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL
    Log file DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$JOURNAL;1 created.
    Log file DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD converted.
    LMCP> EXIT

Restart the software that uses DECdtm services.

Delete the old transaction log:

    $ DELETE DISK$LOG2:[LOGFILES]SYSTEM$RED.LM$OLD;

Previous | Next | Contents | Index

| privacy and legal statement |
6017PRO_102.HTML