The transaction logger is a feature of Parallel Data Mover (PDM) on Linux, Unix, and Windows (LUW) systems, delivered as part of the standard PDM installation package. The transaction logger logs a record of each completed PDM transaction initiated on any LUW PDM node that is being monitored. The log records are in CSV file format, allowing users to import transaction data into spreadsheets or databases to analyze transaction performance and to plan for capacity requirements.
The logger monitors one or more z/OS SMF id’s to record transactions.
Additionally, if BDCST=Y has been coded in the ZDEF statement in PDM’s HDETABLE on z/OS, then records of completed transactions initiated by operators on z/OS are also included.

The PDM transaction types that are logged include:

  • append
  • delete
  • dir
  • exec
  • get
  • getx
  • jesquery
  • lappend
  • ls (or nlst)
  • put
  • putx
  • read
  • readx
  • rename
  • verify
  • vsamrla
  • write
  • writex

The transaction logger runs as a daemon or background process on Unix type systems and as a service on Windows. This process monitors a list of PDM z/OS subsystems, identified by their SMF IDs, for broadcasts of completed transactions, as transmitted to it from a specified list of LUW PDM router nodes.

When dmetrlog processes a transaction completion event, it uses the information contained in that event message to log the transaction details as a record in the CSV file.

Configuring the Transaction Logger

Configuring and starting the transaction logger depends on whether a Unix or Windows type system is being used. For Windows, there is GUI that aids in configuring and starting the logger. The executable dmecfg.exe on Windows starts this interface.
On Unix and Linux systems, the dmetrlog process can create this file by invoking it with a command line argument as shown below:

dmetrlog configure [ -s | -c <cfg_name> ]

There are 3 choices for specifying the configuration file to be created:

  • -s will use the system-wide /usr/opt/dme/config
  • -c create a configuration file with the name specified.
  • no option specified, the logger will use the user’s home directory, $HOME/.dmetrlog

dmetrlog uses the LUW environment file to create the configuration file. It uses the TARGETHOST and ROUTE variables in the to determine the list of z/OS PDM subsystems to monitor, and the SESSIONHOST variable to determine the list of LUW PDM router nodes to listen to for the monitored events. Once the configuration process ends, you can edit the configuration file that was created to change these or other operational parameters.

Starting and Stopping the Transaction Logger

The command to start the Transaction Logger is:

dmetrlog start [ -s | -c <cfg_name> ]

The command to stop the Transaction Logger is:

dmetrlog stop [ -s | -c <cfg_name> ]

The meaning of the command line switches “-s” and “-c” are similar to those used in the ‘configure’ option:

  • “-s’ instructs dmetrlog to use the system-wide configuration file
  • “-c ” instructs dmetrlog to use the configuration file . If is not a fully qualified path name, then it is relative to the current working directory.
  • If the “-s’ or “-c” options are not used, then dmetrlog will look in the user’s HOME directory (or folder) for the configuration file.

Configuration File Options

There are a number of configuration file options, each of which has a default value, which you don’t need to set. However, the one configuration file setting you need to set is the TransactionDirectory, as there is no default value:

TransactionDirectory

Specifies where transactions’ files will be stored. If the value is not a fully qualified directory name, then the name is relative to the directory that contains the Transaction Logger configuration file.

Other options you might want to set:

Delimiter=,

The Delimiter environment variable configures the delimiter that will separate field values in a CSV file.

InsertHeader=yes | no

The InsertHeader environment directs dmetrlog to generate a header line in each transaction file. The header line contains column (field) names.

TextQualifier=”

The textQualifier variable defines a character to bracket field values that contain delimiters and spaces.

TransactionFileSuffix=csv

The TransactionFileSuffix environment variable specifies the character string trailing the “.” in the file name.

The format of the transaction file names is:

trans-yyyy-mm-dd.<suffix>

where:

yyyy is the year

mm is the month (01-12)

dd is the day (01-31)

<suffix> is the file name suffix (‘csv’ by default)

For more detailed information see: See Parallel Data Mover Installation Guide Appendix A PDM Transaction Logger.