SyncSort MFX for z/OS v3.1 Installation Guide

144
Installation Guide Version 3.1 Syncsort MFX

Transcript of SyncSort MFX for z/OS v3.1 Installation Guide

Installation Guide

Version 3.1

Syncsort MFX

Syncsort MFX Installation Guide

© 2010, 2020 Syncsort Incorporated. All rights reserved.

This document contains unpublished, confidential, and proprietary information of Syncsort Incorporated. No disclosure or use of any portion of the contents of this document may be made without the express written consent of Syncsort Incorporated.

Version 3.1 - Version 8Last Update: July 21, 2020

Table of Contents

Summary of Changes .............................................................................................. iPrecisely Rebranding ............................................................................... iSummary of Changes for Syncsort MFX Release 3.1............................. i

Chapter 1: Introduction ....................................................................................... 1-1Installation and Maintenance ............................................................. 1-1Installation Considerations ................................................................. 1-2Notational Conventions ....................................................................... 1-5Related Reading ................................................................................... 1-6

Chapter 2: Installation........................................................................................ 2-1Preliminary Tasks................................................................................ 2-1Required Files ...................................................................................... 2-5SYSMODs............................................................................................. 2-6DDnames for Target and Distribution Libraries ............................... 2-6ELPA Storage Requirements .............................................................. 2-7DASD Space Requirements ................................................................. 2-8Installation Procedure ....................................................................... 2-10Activating Global DSM with the START Command........................ 2-20Automatic Activation of Global DSM................................................ 2-21Deactivating Global DSM.................................................................. 2-22PARASORT ........................................................................................ 2-22Activating SS31MSG ......................................................................... 2-23Installing Syncsort MFX Release 3.1 Over a Prior Release ............ 2-24SMFDSECT Location......................................................................... 2-24SYNCLIST Output............................................................................. 2-24Maintenance....................................................................................... 2-24Precisely Support Knowledge Base................................................... 2-25Release/Maintenance Information in MFX Message Output .......... 2-25

Chapter 3: Default Options............................................................................... 3-1Important MFX Options ...................................................................... 3-2MFX Options in SYNCMAC .............................................................. 3-3SYNCLIST Report Program.............................................................. 3-59PARM Values for the Systems Programmer .................................... 3-60Changing Default Option Settings.................................................... 3-63

Syncsort MFX Installation Guide i

Chapter 4: BetterGener Utility Program ....................................................... 4-1Eligibility for MFX Processing ............................................................ 4-2Activating BetterGener ....................................................................... 4-3BetterGener Options............................................................................ 4-3Using $ORTPARM with BetterGener................................................. 4-3BetterGener Error Messages............................................................... 4-4

Chapter 5: PARASORT...................................................................................... 5-1Creating PARASORT Esoteric Unit Names....................................... 5-1

Chapter 6: Debugging........................................................................................ 6-1Automatic Sort Retry Facility ............................................................. 6-1MFX Termination Message ................................................................. 6-1Dumps................................................................................................... 6-2DEBUG Parm Facility ......................................................................... 6-2Error Handling in Global DSM ........................................................... 6-3Abends in Global DSM......................................................................... 6-3

Chapter 7: Diagnostics and Technical Support ........................................... 7-1Before Calling Precisely Support ........................................................ 7-1Contacting Precisely Support .............................................................. 7-2

Appendix A: Messages...................................................................................... A-1Global DSM Message Format ............................................................ A-1Global DSM Messages ....................................................................... A-2MFXOPT Messages ............................................................................ A-4License Key Messages .................................................................... A-6

Appendix B: Using a Data Set for MFX License Keys ................................ B-1Creating a Key Data Set...................................................................... B-1Disabling or Enabling Messages .................................................... B-2Downloading a License Key File from Precisely Support .................. B-3Updating the Key Data Set ............................................................... B-4Return Codes from KEYUPDATE Processing.................................... B-5

Index ............................................................................................................... Index-1

Syncsort MFX Installation Guideii

Summary of Changes

This chapter summarizes the changes for Release 3.1 of Syncsort MFX.

Precisely RebrandingSyncsort products have been rebranded to Precisely brand names. Syncsort MFX was formerly known as MFX for z/OS.

Summary of Changes for Syncsort MFX Release 3.1This section contains information that is included in the Syncsort MFX Installation Guide and the Syncsort MFX Programmer’s Guide Release 3.1, which supports IBM z/OS Version 2 Release 3 and earlier.

Syncsort Java Wrapper ClassThe Syncsort() Java class provides a wrapper around the Syncsort MFX sort/merge/copy utility. When invoked from Java, the input data can be taken from either existing data sets or produced directly from a Java application. Likewise, the output data from Syncsort MFX can be written to a data set or read directly back into the Java application.

For more information, refer the “Invoking MFX from a Program” chapter in the Syncsort MFX Programmer’s Guide.

iSyncsort MFX Programmer’s Guide

SORTWORK EncryptionDuring conventional SORT processing, all data written to SORTWORK data sets is not encrypted. The new SWCRYPT parameter enables encryption for SORTWORK data sets to meet modern information security and compliance standards. The SORTWORK encryption feature can be configured during installation as a SYNCMAC option and passed as a run-time parameter.

For more information about SWCRYPT as a SYNCMAC option, refer to the “SWCRYPT Option” on page 3-50.

For more information about SWCRYPT as a run-time parameter, refer to the “Parm Options” chapter in the Syncsort MFX Programmer’s Guide.

Block Support for E15 and E35 User ExitsThe E15 and E35 user exits in the 64-bit parameter list have been enhanced to support the transfer of blocks of records between MFX and the E15/E35 exits.

For more information, refer to the “Coding and Use of Exit Programs” chapter in the Syncsort MFX Programmer’s Guide.

Performance ImprovementsThe following functions will see improvements in both CPU and elapsed times:

• Sort applications with a simple OUTREC statement that reduces the output record length.

• Certain large JOIN applications.

PARM Options

Run-time Parameters• OPTELAP – Enables or disables running offload work on the general CP to

improve the elapse time when all zIIP engines are busy.

• RESERVEZ – Reserves a specified amount of memory above the 2-gigabyte bar for the user.

• SWCRYPT – Enables or disables the use of encryption for SORTWORK data sets.

• ZIIPPCT – Allows you to define the zIIP offload percentage within a range of 1-100 percent.

For more information, refer to the “Parm Options” chapter in the Syncsort MFX Programmer’s Guide.

Syncsort MFX Programmer’s Guideii

Installation/Maintenance

Simplified Installation ProcessSyncsort MFX Release 3.1 simplifies the installation process if you plan to install the SMP/E sysmod BSSIJ31 to use the OUTFIL facility to create PDF, RTF, and HTML files in a Java environment. When installed, SMP/E unpacks the files to the designated zFS directory using the customized UNTARSSJ shell script. If the designated directory has the same content, then SMP/E overwrites all the files.

SYNCMAC Default Options• MSGEXIT – Allows you to modify, delete, and insert Syncsort MFX

messages

• OPTELAP – Enables or disables running offload work on the general CP to improve the elapse time when all zIIP engines are busy.

• RSRVJIZ – Reserves memory above the 2-gigabyte bar for system or exit requirements during a JCL-initiated sort.

• RSRVTIZ –Reserves memory above the 2-gigabyte bar for system or program requirements during a program-initiated sort.

• SWCRYPT – Enables or disables the use of encryption for SORTWORK data sets.

• ZIIPPCT – Allows you to define the zIIP offload percentage within a range of 1-100 percent.

For more information about SYNCMAC options, refer to Chapter 3, “Default Options”.

MessagesThe following are new messages. The message explanations are in the “Messages” chapter in the Syncsort MFX Programmer’s Guide.

Message Description

WER292A BLOCK E15/E35 ERROR, REASON CODE nn

EXPLANATION: A Block Exit error was found in the E15 or E35 routine module, where nn represents the error reason code.

The Block Exit error reason codes are:• 01 Block List Parameter Area or Block List Address Invalid• 02 Block List Type Invalid• 03 Block List Boundaries Invalid• 04 Block Address (Type 2) or Record Address (Type 1) Invalid• 05 Block Exit Return Code Invalid• 06 Record Length Invalid (Variable-length Record)

Syncsort MFX Programmer’s Guide iii

WER559I UNSUPPORTED FUNCTIONS WITH SORTWORK ENCRYPTION

EXPLANATION: SORT is not using encryption mode for SORTWORK because of unsupported functions.

WER560I SORTWORK ENCRYPTION USED

EXPLANATION: SORT is using encryption mode for SORTWORK. All data in the SORTWORK data set is encrypted.

WER561A IBM CALLABLE SERVICE XXXXXXXX ERROR, RETURN CODE XXXXXXXX, REASON CODE XXXXXXXX

EXPLANATION: A SORTWORK encryption process error occurred during an IBM call statement.

ACTION: For more information about the IBM return and reason codes, refer to the IBM publication z/OS Cryptographic Services Integrated Cryptographic Service Facility Application Programmer's Guide, SC14-7508-06. Or contact Precisely Support for assistance.

Message Description

Syncsort MFX Programmer’s Guideiv

Chapter 1 Introduction

The Syncsort MFX Programmer’s Guide explains the procedures for installing and maintaining Syncsort MFX.

Installation and MaintenanceSyncsort MFX can be installed and maintained only with the IBM SMP/E program product.

Processor Requirement• Syncsort MFX Release 3.1 requires a zSeries processor running z/OS in ESAME

mode.

Operating System Requirement• Syncsort MFX Release 3.1 requires IBM z/OS Release 1.4 or later.

InstallationIf you are installing Syncsort MFX, read the following chapters:

• “Chapter 2, Installation”

• “Chapter 3, Default Options”

• “Chapter 4, BetterGener Utility Program”

• “Chapter 5, PARASORT”

• “Appendix B, Using a Data Set for MFX License Keys”

1–1Syncsort MFX Programmer’s Guide

MaintenanceDocumentation for applying maintenance will be tailored and delivered with the specific maintenance package. However, you can refer to this document any time you want to change options or add features subsequent to installing MFX.

Problem SolvingIf you encounter problems running MFX, “Chapter 6, Debugging” contains debugging information for both MFX and global Dynamic Storage Management.

Installation ConsiderationsThe list below includes MFX facilities you should be aware of before beginning the installation process.

• System Resident or Non-Resident Configuration

• The BetterGener Facility

• PARASORT and Special Esoteric Unit Names

• Dynamic Storage Management (DSM)

• Global DSM Functions

• Local DSM

Details on these items are in the sections below and more details are in “Chapter 2, Installation”.

System Resident or Non-Resident Configuration Either a system resident or non-resident release of MFX can be installed. When the resident release is installed, multiple sorts can share the same MFX load modules. Performance can be improved, and overhead can be reduced.

All the resident modules of MFX will be installed above the 16-megabyte line. In this way, more space is available in the Link Pack Area for programs which must reside below the 16-megabyte line.

The BetterGener Facility BetterGener is a high-performance, transparent copy facility, which, in many cases, can replace IEBGENER. When BetterGener is activated, eligible jobs are automatically processed by MFX. You do not have to change IEBGENER job streams in order to take advantage of MFX’s much more efficient copying techniques. BetterGener will allow your installation to achieve impressive reductions in CPU time and EXCPs.

Syncsort MFX Programmer’s Guide1–2

PARASORT and Special Esoteric Unit Names PARASORT improves elapsed time performance for sorts whose input is a multi-volume tape data set and/or concatenated tape data sets. Reduced elapsed time can help critical sort applications achieve batch window goals.

The performance improvement from PARASORT is a result of processing the SORTIN input volumes in a parallel fashion. Depending upon the resources provided, elapsed time can be reduced up to 20% for 2-way input and up to 33% for 4-way input.

PARASORT requires additional tape units for the application. You will need from two to eight times the current number of tape units, depending upon resource availability and the degree of improvement desired. PARASORT automatically manages the tape units and minimizes the use of the tape drive resources by deallocating excess tape drives during initialization and releasing all the extra units at the end of the sort input phase.

The additional tape units are defined to PARASORT on up to four DDs labeled SORTPAR1, SORTPAR2, SORTPAR3, and SORTPAR4. A segment of SORTIN will be read in parallel from each of these DDs. The segmentation of SORTIN is automatic.

Increased parallel input processing (up to four SORTPARn DDs) increases the elapsed time benefit. However, for optimal PARASORT performance, MFX must be able to read each SORTPARn input DD simultaneously with no channel contention.

Generally, the normal allocation of tape drives will not ensure sufficient channel path availability, particularly for a 4-way PARASORT (four SORTPARn DD statements). Therefore, you may need to create special esoteric unit names for PARASORT. Assigning certain groups of drives to each esoteric unit name used in the PARASORT JCL will in most cases ensure the required channel separation.

Although you may need to create special esoteric unit names, PARASORT itself is included with MFX and will be available once MFX is installed. If you will be using PARASORT, see the instructions for creating PARASORT esoteric unit names in “Chapter 5, PARASORT”.

Dynamic Storage Management (DSM) MFX’s Dynamic Storage Management (DSM) capability is an automatic facility for the dynamic control of memory utilization and SORTWK device selection.

Memory resources can come from the address space, data space and memory objects (which are used by MFX’s ZSPACE technique). The DSM facility dynamically determines which resources to use and how much of them to commit to a sorting application. DSM is designed to provide the best performance for each sort while optimizing overall system throughput.

Syncsort MFX Programmer’s Guide 1–3

The DSM facility considers the VSCORET option to be an initial recommendation for the amount of address space memory to use. From this starting point, DSM’s sophisticated algorithms analyze overall system activity and the particular sort’s resource requirements. Using this information, the actual amount of address space, data space and memory objects is determined at run time.

For example, during periods of low activity on the system, the DSM facility makes efficient use of idle memory, providing better performance for the particular sort that’s running and improving throughput for the entire system. On a busy system (as when an interactive facility is running), MFX utilizes less memory so that more remains available for other system tasks.

In the area of dynamic SORTWK device selection, DSM chooses devices from among those designated for its use on the basis of speed and the level of contention for those devices. DSM looks at contention from all applications and from other sorts currently running on the system.

The DSM facility can be operated in one of two ways. The most effective way is through a centralized administrative program that executes in its own address space and communicates with sorts in progress through the z/OS subsystem interface. The term “global DSM” will be used to refer to this preferred way of using DSM throughout this manual.

A second method of using DSM is locally from within a particular execution of the MFX product itself. This method will be referred to as “local DSM” and can be used in all operating environments. The resources coordinated by local DSM are a subset of those handled by global DSM, and its decisions about resource usage are based on local rather than global considerations. If global DSM is active, it will supersede the local DSM.

Global DSM Functions Global DSM has two functions: monitoring and decision-making.

Monitoring

When global DSM is active, it continually monitors the state and performance of SORTWK devices, central storage, and DASD I/O channel paths. The knowledge it acquires through monitoring is recorded in a special history database, allocated as a single small data set. The information in the database summarizes the patterns and regularities that govern the daily and weekly cycles of system activity. Since monitoring is an ongoing process, the database will always contain an accurate and up-to-date profile of the system.

Decision-Making

Global DSM’s second function is to decide how each sort can make the best possible use of available resources. Global DSM’s algorithms analyze and coordinate the information in the history database, the current level of resource usage, and the

Syncsort MFX Programmer’s Guide1–4

sort’s own characteristics. In this way, global DSM selects the best way to balance available system resources and run each sort as efficiently as possible while improving overall system throughput.

Although global DSM considers virtual storage in the sort’s address space, data space, memory objects, and SORTWK, its true focus is on the underlying real resources: central storage and available SORTWK disk devices and their associated channel paths.

Local DSMLocal DSM is a variation of MFX’s DSM facility in which the information used for DSM’s decision making is limited primarily to the information available in the sort’s address space. This includes the characteristics of the specific sort and the current availability of system resources, but does not include the system monitoring and history information used by global DSM. While local DSM has the ability to perform some basic system-wide coordination of storage resources between MFX applications, its scope is limited compared to global DSM. The decisions made by local DSM will improve individual sort efficiency and system throughput, but not as effectively as the decisions made by global DSM.

Local DSM is controlled by parameters of the DSM and DSMWEND options in SYNCMAC.

Notational ConventionsThe following notational conventions are observed in this manual:

• Braces ( { } ) indicate that a choice must be made among the alternatives listed.

• Brackets ( [ ] ) indicate an optional item. Two or more items in brackets are mutually exclusive options; only one can be chosen for a particular application.

• Defaults are underlined.

• Upper-case letters and numbers, commas, equal signs, and parentheses must be entered exactly as indicated. Lower-case letters represent variables, which must be replaced by actual values.

• Subscripts show position in a series, and three dots indicate an ellipsis.

For example, a1,a2,...,a5 is equivalent to a1,a2,a3,a4,a5 and represents five “a” items (variables which will be replaced with actual values).

Syncsort MFX Programmer’s Guide 1–5

• Examples, which may be entered exactly as shown, are presented in typeface as follows:

Related ReadingThe following guides supplement the information provided in the Syncsort MFX Installation Guide.

Syncsort MFX Programmer’s Guide

This manual explains how to install and maintain Syncsort MFX and defines the default options.

Exploiting MFX: SortWriter Data Utilities Guide

This two-part user’s guide demonstrates how MFX’s versatile Data Utility features provide an efficient, one-step alternative to writing, testing and debugging programs. Five comprehensive sample applications illustrate how the control statements work together to produce formatted reports.

Exploiting MFX: MAXSORT

This user’s guide explains how to use the special MAXSORT feature of MFX to sort very large amounts of data with only a limited amount of disk space. MAXSORT’s unique restart capability is described and sample job control streams and tuning information are included.

Exploiting MFX: JOIN

This booklet demonstrates through several examples various approaches for creating applications with the join facility. Each example contains a statement of the problem, a sample of the inputs, MFX control statements used to produce the output, and a sample of the output.

ALTSEQ CODE=(F0B7,F1B8,F2B9,F3BA,F4BB,F5BC,F6BD,F7BE,F8BF,F9C0)

Syncsort MFX Programmer’s Guide1–6

Chapter 2 Installation

This chapter describes how to install Syncsort MFX with IBM’s SMP/E program product.

The SMP/E installation procedures will vary depending on whether you are installing into new or old libraries:

• The procedures in this chapter are designed for use with new SMP/E libraries. If you are installing into new SMP/E libraries, you can follow the instructions in this chapter exactly.

• If you are installing into preexisting target and distribution zones, not every direction in this chapter will be applicable to you. Also, you should understand that installing the new release into a preexisting SMP/E target or distribution zone will delete a prior release if it exists in that zone. You should read this chapter understanding that you will have to make decisions based on your particular site.

Preliminary TasksBefore beginning to install MFX, you must do the following:

1. Prepare for acquiring license keys if you do not already have them. MFX requires a license key for every machine on which it is run. To provide you with a license key, Precisely requires the customer profile report that is produced by the SYNCCPR program. A jobstream to create this report will reside in your sample JCL library. This jobstream can also be emailed to you.

Note: You do not need new license keys for Syncsort MFX 3.1 if you have valid keys for release 2.1. Also, the Syncsort MFX 3.1 license does not affect existing licenses for Syncsort PipeSort, Syncsort PROCSort, and Syncsort ZPSaver.

2–1Syncsort MFX Programmer’s Guide

The installation process is simplified if you have the license keys before you set your default options in “STEP 12: Set and Install the MFX Options” on page 2-13. If you do not have your license keys already, it is a good idea to send the SYNCCPR output to Precisely as quickly as possible. If you want to run SYNCCPR before you download the installation files, contact Precisely so that the SYNCCPR jobstream can be emailed to you.

The directions for running SYNCCPR are found under “STEP 2: Execute SYNCCPR” on page 2-11.

2. Determine the number of the SVC that MFX will use.

An SVC allows MFX to use its high performance access methods, to optimize the performance of DASD with cache, and to support the key data set facility. MFX also uses its SVC to create SMF records.

If you are converting from an previous MFX release, Precisely recommends using a different SVC number for MFX 3.1 than the number that was used for the previous release. This will facilitate testing.

See “SVC Option” on page 3-49 for more information.

3. To use global DSM, ensure there is up to 750K of Extended Common Storage Area (ECSA) available when MFX is run. For more information on the DSM facility, see “Dynamic Storage Management (DSM)” on page 1-3.

4. If you do not have IBM’s Language Environment, but intend to write E15 or E35 exits in the C language or VS COBOL II, check to see whether you have the following three IBM libraries:

• The SEDCBASE library for C

• The SIBMBASE library for PL/I

• The COB2LIB library for VS COBOL II

If you have the SEDCBASE and SIBMBASE libraries, install the MFX SMP/E function named BSSID31, which installs C exit support when the Language Environment is absent. If you have the COB2LIB library, install the MFX SMP/E function named BSSIC31, which installs VS COBOL II exit support when Language Environment is absent. For more information on VS COBOL II exits, see “COBEXIT Option” on page 3-7.

5. If you have IBM’s Language Environment, check that you have the library named SCEELKED required at link-editing time. If you do, then install MFX’s SMP/E function named BSSIL31, which gives you the ability to utilize certain MFX functions in Language Environment. The functions include:

• LOCALE processing which allows you to choose a set of collating rules based on a national language and cultural environment. For more information on LOCALE processing, see “LOCALE Option” on page 3-22.

Syncsort MFX Programmer’s Guide2–2

• The processing of E15 and E35 exits written in the C language, Enterprise COBOL for z/OS, or VS COBOL II. For more information on VS COBOL II exits, see “COBEXIT Option” on page 3-7.

At run time, additional subroutines in the Language Environment SCEERUN library must be available to MFX.

6. If you have a DB2 environment, check that you have the DB2 library named SDSNLOAD that is required at link-editing time. If you do, then install the SMP/E function named BSSIP31 that provides support for specifying DB2 queries to access a DB2 database.

More information on how to install this support is provided in the JCL that is unloaded during the installation process.

7. Optional: Decide whether to activate BetterGener.

The BetterGener utility program offers improved performance over IEBGENER in straight copy tasks and is completely transparent to MFX users.

Complete information about BetterGener can be found in “Chapter 4, BetterGener Utility Program”.

If you decide to use BetterGener, you must activate it. See activation instructions in “STEP 18: Put MFX into Production” on page 2-18.

8. Optional: Decide whether esoteric unit names will be used for PARASORT. This facility is installed automatically, but to take advantage of it you may need to create special esoteric unit names. Note that creating PARASORT esoteric unit names need not be done as part of the installation procedure. It can be done at any time. For more information on PARASORT and creating special esoteric unit names for it, see “Chapter 5, PARASORT”.

9. Optional: Decide whether to use the OUTFIL facility to create PDF, RTF, and HTML files. You need to install the MFX SMP/E function named BSSIJ13 on the z/OS UNIX system and set up the Java environment.

This facility also requires the IBM Java SDK for z/OS, the IBM JZOS Batch Toolkit for z/OS SDKs, and the MFX zFS library. The locations of the SDK, Toolkit and MFX zFS library need to be specified in the SYNCMAC options JAVAHOME, JZOSHOME, and SYNCHOME respectively.

To simplify the MFX installation, prepare the Java environment before setting up your default options by following these steps:

IBM Java SDK for z/OS:

• Invoke the z/OS UNIX shell by logging on to TSO/E and entering the TSO/E OMVS command, or by entering the OMVS command from the ISPF Command Shell.

• Find the IBM Java SDK. It is usually installed in the OMVS directory /usr/lpp/java. Enter the UNIX list command to see if the SDK is installed there: ls /usr/lpp/java

Syncsort MFX Programmer’s Guide 2–3

The installed releases of the SDK are displayed. Note that Java 6 or later are supported. If J8.0 is displayed, for example, then the SDK 8.0 version is installed under directory /usr/lpp/java/J8.0. In this case, you would specify /usr/lpp/java/J8.0 for the JAVAHOME option when you set your default values in “STEP 12: Set and Install the MFX Options” on page 2-13.

• If the Java SDK has not been not installed on your system, download it from the IBM SDK, Java Technology Edition website.

• Exit from OMVS by entering the exit command from the UNIX shell.

IBM JZOS Batch Launcher and Toolkit for z/OS SDKs:

The IBM JZOS Batch Launcher Toolkit for z/OS SDK may have been deliv-ered as part of the z/OS Java product. If the Batch Toolkit has been installed, SYS1.SIEALNKE will contain a load module name beginning with ‘JVMLDM’. In this case, the value you would specify for the JAVAHOME installation option would also be specified for the JZOSHOME installation option when you set your default values in “STEP 12: Set and Install the MFX Options” on page 2-13.

If the JZOS Batch Toolkit has not been installed on your system, do the following:

• Download the JZOS Batch Launcher and Toolkit for z/OS SDKs.

• The location of the Toolkit will be specified in the JZOSHOME option when you set your default values later in “STEP 12: Set and Install the MFX Options” on page 2-13.

• Exit from OMVS by entering the EXIT command from the UNIX shell.

MFX zFS Library:

• This library will be installed after your SMP/E installation. These instructions appear later in “STEP 6: Create a zFS Directory (Optional)” on page 2-11. The location of the zFS library will be specified in the SYNCHOME option when you set your default values later in “STEP 12: Set and Install the MFX Options” on page 2-13.

Syncsort MFX Programmer’s Guide2–4

Required FilesYou will need the nine data set files listed in Table 1 to completely install MFX. The files are downloaded from the Precisely Support website.

Make sure that the complete data set name, as it appears in the table, is used as the low-level qualifiers on your mainframe DASD specifically for files 2 through 8 which are SMP/E RELFILEs. You may add a high-level qualifier to all these names with the understanding that you will add the exact same high-level qualifier to all of them. Any deviation from this rule can result in an RC=8 with the SMP/E errors GIM54701E and GIM39101E when processing the RELFILEs.

File Number Data Set Name

1 SYNSRT.R31.SMPMCS

2 SYNSRT.BSSIZ31.F1

3 SYNSRT.BSSIZ31.F2

4 SYNSRT.BSSIC31.F1

5 SYNSRT.BSSID31.F1

6 SYNSRT.BSSIJ31.F1

7 SYNSRT.BSSIL31.F1

8 SYNSRT.BSSIP31.F1

9 SYNSRT.SAMPLE.JCL

Table 1. Files Needed for SMP/E Installation

Syncsort MFX Programmer’s Guide 2–5

SYSMODsTable 2 lists the names of the sysmods in Syncsort MFX along with a short description of the contents of each.

DDnames for Target and Distribution LibrariesTable 3 provides a list of the target and distribution DDnames needed to install MFX.

SYSMOD Description

BSSIZ31 Function containing the MFX base code

BSSIC31 Function containing the code for support of VS COBOL II exits without Language Environment

BSSID31 Function containing the code for support of C exits without Lan-guage Environment

BSSIJ31 Function containing the code for support of the OUTFIL facility to create PDF, RTF, and HTML files in a Java environment

BSSIL31 Function containing the code for National Language support (LOCALE), VS COBOL II exits, Enterprise COBOL for z/OS exits, and C exits, all within Language Environment

BSSIP31 Function containing the code for specifying DB2 queries to access a DB2 database

Table 2. SYSMODs Used for Installation

DDname Description

SYNCLINK Target for MFX LINKLIB load modules

SYNCLPA Target for MFX SVC load module

SYNCRENT Target for MFX system resident reentrant load modules

SYNCAUTH Target for global DSM load modules

SYNCPRMG Target for MFXPRMG load module

SYNCCLIB Target for CLISTs in SS31MSG dialog

SYNCMLIB Target for Messages in SS31MSG dialog

SYNCPLIB Target for Panels in SS31MSG dialog

Table 3. (Page 1 of 2) DDNames for Target and Distribution Libraries

Syncsort MFX Programmer’s Guide2–6

ELPA Storage RequirementsTable 4 lists the storage requirements in the Extended Link Pack Area (ELPA) for a resident configuration of MFX. In a non-resident configuration, only the SVC will be in the ELPA.

SYNCTDAT Target for DB2 DBRM

SYNCTZFS Target for directory on z/OS UNIX system

SYNCTMAC Target for user MACROs

SYNCTSRC Target for source code for options

SYNCTJCL Target for installation JCL

SYNCLIB Distribution for ++MOD elements

SYNCISP Distribution for ++CLIST, ++MSG and ++PNL elements

SYNCDAT Distribution for ++DATA elements

SYNCMAC Distribution for ++MAC elements

SYNCSRC Distribution for ++SRC elements

SYNCJCL Distribution for ++SAMP elements for the installation JCL

SYNCZFS Distribution for ++HFS elements

DDname Description

Table 3. (Page 2 of 2) DDNames for Target and Distribution Libraries

Location SVC Module Sorting Modules

Extended Link Pack Area 87K 1793K

Table 4. ELPA Storage Requirements

Syncsort MFX Programmer’s Guide 2–7

DASD Space RequirementsThe DASD space allocation requirements for installing MFX will vary depending on the functions that you install. Table 5 gives the maximum DASD space needed in data blocks.

DDname Block Size PrimaryData Blocks

DirectoryBlocks

SYNCLINK 32760 38 11

SYNCLPA 32760 6 1

SYNCRENT 32760 98 18

SYNCAUTH 32760 7 4

SYNCPRMG 32760 1 1

SYNCCLIB 27920 4 1

SYNCMLIB 27920 2 1

SYNCPLIB 27920 100 30

SYNCTDAT 27920 20 2

SYNCTMAC 27920 38 1

SYNCTSRC 27920 2 1

SYNCTJCL 27920 18 6

SYNCLIB 32760 420 260

SYNCISP 27920 100 31

SYNCDAT 27920 20 2

SYNCZFS 27920 280 2

SYNCMAC 27920 38 1

SYNCSRC 27920 2 1

SYNCJCL 27920 18 6

DSMHIST 468 6624 0

SMPLTS 32760 15 2

SMPMTS 27920 38 1

SMPPTS 27920 1000 25

Table 5. (Page 1 of 2) DASD Space Requirements

Syncsort MFX Programmer’s Guide2–8

SMPCSI is a VSAM data set that requires 3 cylinders. For a complete definition of the SMPCSI cluster, see member SS31ALOE in the sample JCL library that is loaded in “STEP 1: Download MFX and Load the Sample JCL Library” on page 2-10.

The SMP/E DSSPACE entry is set to (300,30,300). The cumulative space for the six SMPTLIB libraries is 487 tracks.

SMPSTS 27920 8 1

SMPSCDS 27920 50 25

SMPLOG 6320 500 0

SMPLOGA 6320 1 0

DDname Block Size PrimaryData Blocks

DirectoryBlocks

Table 5. (Page 2 of 2) DASD Space Requirements

Syncsort MFX Programmer’s Guide 2–9

Installation ProcedureThe procedure for installing MFX with SMP/E consists of several steps. It also includes suggestions for testing MFX and BetterGener.

STEP 1: Download MFX and Load the Sample JCL LibraryThis step explains how to access the tersed installation files from the Precisely secure FTP server, upload them to your mainframe, and unpack the tersed data sets.

1. Open the Syncsort MFX page on the Precisely Support website and click Software Download in the Release 3.1 section to download the base product to your machine.

2. Extract the contents of the MFX310_Install.zip file to a local directory. This includes a README with instructions for “Transferring Syncsort MFX SMP/E files to Mainframe” and PDFs of the Syncsort MFX documentation.

3. Upload the SS3100.BT541.SIS31.README.TXT to your mainframe, modifying the job control statement with your local system’s credentials. The Precisely secure FTP server will then transfer nine tersed hlq.SSP.BT541 files and the hlq.SS.BT541.UPKSIS31.TXT file to your mainframe.

Note: You can delete the hlq.SSP.BT541 files after completing the installation.

4. Modify and submit the JCL in the hlq.SS.BT541.UPKSIS31.TXT file according to the directions in the job to unterse the compressed files into these nine z/OS-formatted data sets:

hlq.BT541.SYNSRT.BSSIC31.F1hlq.BT541.SYNSRT.BSSID31.F1hlq.BT541.SYNSRT.BSSIJ31.F1hlq.BT541.SYNSRT.BSSIL31.F1hlq.BT541.SYNSRT.BSSIP31.F1hlq.BT541.SYNSRT.BSSIZ31.F1hlq.BT541.SYNSRT.BSSIZ31.F2hlq.BT541.SYNSRT.R31.SMPMCShlq.BT541.SYNSRT.SAMPLE.JCL

5. The sample JCL library named hlq.BT541.SYNSRT.SAMPLE.JCL contains the following the job members to proceed with the installation:

MFXOPTSS31ACPTSS31ALOCSS31ALOESS31APLY

SS31BN89

SS31CPRSS31DDEFSS31HALOSS31HINTSS31HPRCSS31INIT

SS31MKDRSS31OMFXSS31OPTSSS31RECVSS31RNMSSS31SVC

SS31TST1 SS31TST2

SS31TST3SS31TST4SS31TST5SS31TST6USERMODA

Table 6. Installation Job Members in Sample JCL Library

Syncsort MFX Programmer’s Guide2–10

STEP 2: Execute SYNCCPR Before continuing with the installation process, it is a good idea to take the time now to provide the necessary information to acquire your license key.

Note: You do not need new license keys for Syncsort MFX 3.1 if you have valid keys for release 2.1. Also, the Syncsort MFX 3.1 license does not affect existing licenses for Syncsort PipeSort, Syncsort PROCSort, and Syncsort ZPSaver.

In order to generate the appropriate license key, Precisely requires certain information about the machine on which MFX will be running. The SYNCCPR program produces a report with this information.

Review and submit SS31CPR in the sample JCL library to execute SYNCCPR. If you will be using MFX on multiple machines, submit SS31CPR on each machine.

After producing a report for each applicable machine, request your license keys by referring to the instructions for “Downloading a License Key File from Precisely Support” on page B-3.

STEP 3: Allocate Target and Distribution Libraries To allocate the target and distribution libraries needed to install MFX, edit and submit SS31ALOC from the sample JCL library. Comments in the member will help you to add any information that is needed.

STEP 4: Allocate SMP/E Libraries Modify and submit member SS31ALOE from the sample JCL library. This job allocates the CSI, LOG, LTS, MTS, PTS, STS, and SCDS data sets.

STEP 5: Initialize SMP/E CSI Modify and submit member SS31INIT from the sample JCL library to initialize the newly created SMPCSI data set.

STEP 6: Create a zFS Directory (Optional)If you plan to create PDF, RTF, and HTML files using the OUTFIL facility in a Java environment, then modify and submit member SS31MKDR from the sample JCL library to create a zFS directory. Make sure you have the necessary access permissions to CREATE and WRITE for the designated directory on the z/OS UNIX system.

STEP 7: Create DDDEFsModify and submit member SS31DDEF from the sample JCL library to create DDDEFs in the SMP/E zones.

Syncsort MFX Programmer’s Guide 2–11

STEP 8: RECEIVE the MFX FunctionsModify and submit member SS31RECV from the sample JCL library to RECEIVE the MFX functions. Comments in the member will help you select the functions needed at your site.

STEP 9: Supply a Module Name for the MFX SVC Modify and submit SS31SVC from the sample JCL library to supply the MFX module name for the SVC. You must have the SVC number for MFX R3.1 to complete this step. For more information, see “SVC Option” on page 3-49.

STEP 10: APPLY the MFX FunctionsModify and submit member SS31APLY from the sample JCL library to APPLY the MFX functions.

STEP 11: Configure a Java Environment (Optional)If you installed function BSSIJ31 and the APPLY step has successfully completed, you can access the zFS directory you created in “ STEP 6: Create a zFS Directory (Optional)”. SMP/E unpacks and stores the package in the designated directory created in STEP 7. There are two subdirectories and one script file to unpack the package after installation.

If you plan to use 31-bit Java SDK release 6 or later, you must code the full path of sshfsj6 in the SYNCHOME; directory, where sshfsj6X is for 64-bit Java SDK releases 6.0 or later.

The following example uses the 64-bit Java SDK for the run-time environment:

SYNCHOME=’/u/syncsort/mfx/sshfsj6X’One of the directories will be specified for the SYNCHOME option in USERMODA and/or SS31OMFX described in “ STEP 12: Set and Install the MFX Options”.

For the 64-bit Java SDK, you must also set the JVM64 option to “YES” in USERMODA and/or SS31OMFX, as follows:

JVM64=YESIf you do not install the BSSIJ31 function at installation time and would like to install this function, you need to do the following:

• Modify and submit “ STEP 6: Create a zFS Directory (Optional)” to create the zFS directory if it does not exist.

• Modify SMP/E SYNCTZFS DDDEF’s definition and submit the JCL stream if the zFS directory is different from installation default of /u/syncsort/mfx/.

SET BDY (SYNCTGT).UCLIN.REP DDDEF(SYNCTZFS) PATH('/u/smpe/mfx/').ENDUCL.

Syncsort MFX Programmer’s Guide2–12

STEP 12: Set and Install the MFX Options The MFX options are the values that MFX uses as defaults when it executes. An explanation of each option is provided in “Chapter 3, Default Options”.

There are two methods that can be used to customize installation options for MFX.

• The first method stores the installation options within the MFX load libraries. This method is appropriate when only one set of installation options is required.

• The second method has two options for storing the installation options in data sets that are independent of the MFX libraries, and allows more than one set of options. This method is appropriate when different LPARs require different options. It is also beneficial at sites where the MFX SMP/E libraries reside at a central location and there is a need to change options on an LPAR at a remote location that has only target libraries.

If you prefer not to store the data set name of your MFX options in the PAR-MLIB concatenation, as described in “Method 2a – Default Option PARM-LIB” on page 2-14, you can use the ALTOPLIB subparameter of the MFXPRM statement to customize the installation options for MFX outside of SMP/E without using SYS1.PARMLIB, as described in “Method 2b – Default Option ALTOPLIB” on page 2-15.

If an MFX installation on a particular LPAR has both methods deployed, then the options deployed by Method 2a or Method 2b take precedence.

Method 1

This method is done entirely within SMP/E. To set options with this method, do the following:

• Edit the values in member USERMODA in the sample JCL library. You must specify values for the SVC and KEY or KEYDSN options; otherwise these options will default to null values. Customize the values of the other options or take the values shown. A complete explanation of each option is given in “Chapter 3. Default Options”.

• Modify and submit member SS31OPTS from the sample JCL library to RECEIVE and APPLY the sysmod that is in member USERMODA.

Method 2a and Method 2b

Method 2a and 2b are done entirely outside of SMP/E. The SMPCSI, SMPPTS, SMPSCDS, SMPLTS, SMPMTS and SMPSTS do not have to be accessed.

Syncsort MFX Programmer’s Guide 2–13

Method 2a – Default Option PARMLIB

To set options with this method, do the following:

• Review the JCL in member SS31OMFX in the sample JCL library. Comments in the member will help you add any information that is needed. The SS31OMFX job does an assembly and then a link edit of a set of option values and places the options into a load module. Carefully edit the option values in SS31OMFX as needed. For more detailed information, see Chapter 3. Default Options”.

Since you will execute this job multiple times, you should assign a unique name to the output of the link edit for each execution. Each SS31OMFX exe-cution defines a unique set of option values that you can activate on a par-ticular date, time or LPAR. This is why you must make the combination of the output library name plus module name unique for each SS31OMFX execution.

• In the SYS1.PARMLIB library (or a library in the PARMLIB concatenation), you must create a member named MFXPRMxx, where xx can be any two characters. You most likely will have multiple MFXPRMxx members. Each MFXPRMxx member will correspond to each output of your SS31OMFX execution. In the MFXPRMxx member, specify the unique name of the output load library and module name you have specified in job SS31OMFX. Each MFXPRMxx member contains just one line as follows:

assigned.load.library.name(assigned_module_ name)Note: The library named above must be given APF authorization. Enter thelibrary name in member IEAAPFxx or PROGxx, depending on the preferredmember in use at your site for this purpose. To temporarily make it APF-authorized use the following system command:

SETPROG APF,ADD,DSNAME=assigned.load.library.name,SMS• In the SYS1.PROCLIB library (or a library in the PROCLIB concatenation),

create a member named MFXOPT with the JCL below (note: you can copy the JCL directly from member MFXOPT in the sample JCL library to your newly created member in SYS1.PROCLIB). The MFXOPT JCL will run as a started task that executes the program named MFXPRMG. The MFXPRMG program resides in the SYNCPRMG target library. MFXPRMG must run as an authorized program and therefore the SYNCPRMG library must be APF-authorized. To temporarily make the SYNCPRMG library APF-authorized you can issue the following system command:

SETPROG APF,ADD,DSNAME=SYNCSORT.MFX.R31.SYNCPRMG,SMSProgram MFXPRMG searches the PARMLIB concatenation for the MFX-PRMxx member whose name is passed in the PARM field. It opens and reads the assigned library/module in the MFXPRMxx member and makes these options available to all MFX applications until the started task is deactivated. The following is the MFXOPT JCL:

Syncsort MFX Programmer’s Guide2–14

//MFXOPT PROC //MFX1 EXEC PGM=MFXPRMG,PARM=’&MFXPRM’//STEPLIB DD DISP=SHR,DSN=SYNCSORT.MFX.R31.SYNCPRMG

• The system command to start MFXOPT is coded as follows:

S MFXOPT,MFXPRM=’ACT,xx,r.r’where MFXPRM is the symbolic parameter in the JCL displayed in the pre-vious item, ACT tells MFXPRMG this is an activation request (see DISP and DEACT requests further down), xx is the suffix of the MFXPRMxx PARMLIB member and r.r is the release of MFX.

There are two ways to issue the start MFXOPT command. First, you can issue the command directly from the system console which starts MFXOPT immediately. The alternative, which will start MFXOPT after each IPL, is to create a new COMMNDxx member in SYS1.PARMLIB and place the START MFXOPT command in it.

The MFXOPT return codes are:

0 The MFXOPT command was successfully executed.

8 An error occurred during MFXOPT processing. Refer to the WER8nna MFXOPT message for more information.

12 The MFXPRMG program was not executed from a START MFX-OPT command. This type of invocation is not valid.

You can display the source location of the options in effect by using the command:

S MFXOPT,MFXPRM=’DISP’You can deactivate the options in effect by using the command:

S MFXOPT,MFXPRM=’DEACT,3.1’ Note: The user ID that is assigned to the MFXOPT started task needsREAD authority for the PARMLIB concatenation. For example:

ADDSD ‘SYS1.PARMLIB’ UACC(NONE)PERMIT ‘SYS1.PARMLIB’ CLASS(DATASET) ID(useid) ACCESS(READ)

See IBM’s z/OS MVS PLANNING: Operations for information about con-trolling who can issue the START MFXOPT command.

Method 2b – Default Option ALTOPLIB

If you prefer not to store the data set name of your MFX options in the PARMLIB concatenation, as described in “Method 2a – Default Option PARMLIB” on page 2-14, you can use the ALTOPLIB subparameter of the MFXPRM statement to customize the installation options for MFX outside of SMP/E. When using

Syncsort MFX Programmer’s Guide 2–15

ALTOPLIB, you do not have to create a member in SYS1.PARMLIB named MFXPRMxx.

However, when you issue the START command for the MFXOPT started task, you will need to use the ALTOPLIB parameter on the MFXPRM statement to indicate the output load library and module name specified in job SS31OMFX.

The supported syntax is as follows:

S MFXOPT,MFXPRM='ACT,ALTOPLIB=dsn(member),3.1'S MFXOPT,MFXPRM='ACTIVATE,ALTOPLIB=dsn(member),3.1'

Note: Due to system command restrictions, MFXPRM=... cannot exceed 66 bytes. Therefore, when using ACT, the DSN(MEMBER), length cannot exceed 41 bytes. Similarly, when using ACTIVATE, DSN(MEMBER), length cannot exceed 36 bytes.

These messages could reflect the possible use of ALTOPLIB as an alternative to a PARMLIB member: WER805A, WER806A, WER813I and WER815I.

See IBM’s z/OS MVS PLANNING: Operations for information about controlling who can issue the START MFXOPT command.

STEP 13: Perform Installation Verification Testing After SS31OPTS has completed successfully or you have started MFXOPT, you should review and submit member SS31TST1 in the sample JCL library to confirm that your installation is complete up to this point. If you have chosen the KEYDSN option, you should create your key data set and place your license keys into it before running the verification test. For more information, see “Appendix B, Using a Data Set for MFX License Keys”.

STEP 14: Allocate Global DSM’s History Data SetReview and submit SS31HALO in the sample JCL library to allocate the history data set that will be used by global DSM.

If MFX is running on more than one z/OS system image or logical partition (LPAR), you must allocate a history data set for each. SS31HALO contains descriptive comments, and it may be run as many times as necessary to allocate multiple history data sets.

STEP 15: Initialize Global DSM’s History Data SetThere are two ways to initialize the global DSM (GDSM) history data set, depending upon whether you are a first time user of GDSM or are converting from an earlier release of MFX in which you were also using GDSM.

• If you are installing GDSM for the first time, you must initialize each history file you created in the prior step. To perform this initialization you must review and submit SS31HINT on each system where you have allocated a history data set. SS31HINT is a member in the sample JCL library, and it contains descriptive comments.

Syncsort MFX Programmer’s Guide2–16

• If you have been using GDSM, you will want to preserve the history information developed by the earlier release of MFX. So instead of running SS31HINT, copy your existing history data set to the one you just allocated. If you have more than one history data set because of multiple system images, be sure that the input and output data sets for each copy operation are on the same system because each history data set needs specific information from the system on which it will be used. If the data set is copied from a different system, GDSM will terminate with a WER619A message.

If the system identifier on your system changes, you must reinitialize the history data set on that system by running SS31HINT again. The system identifier is the SID parameter in member SMFPRMxx of SYS1.PARMLIB.

STEP 16: Place SYNCG310 PROC into SYS1.PROCLIBGlobal DSM cannot be activated until you review and submit SS31HPRC to place the procedure SYNCG310 in SYS1.PROCLIB. SS31HPRC is a member in the sample JCL library, and it contains descriptive comments.

STEP 17: Perform Production Validation Testing After the installation verification test (see “STEP 13: Perform Installation Verification Testing” on page 2-16) has run successfully and global DSM is ready for activation, you should perform a variety of production validation tests. To prepare for these tests, do the following:

1. If you are using a type 3 SVC number in the range 200-255, update IEASVCxx in SYS1.PARMLIB with the SVC number being used for MFX. If you are using SVC 109 with the alternate routing code then do not update IEASVCxx.

2. Update LPALSTxx in SYS1.PARMLIB with the SYNCLPA data set name. If you want a system resident configuration of MFX, also place the SYNCRENT data set name in LPALSTxx.

3. Update IEAAPFxx in SYS1.PARMLIB with the SYNCAUTH and SYNCPRMG data set names. If member PROGxx in SYS1.PARMLIB is the preferred member used at your site to specify program libraries that are to receive APF authorization then add these names to the APF statement in PROGxx.

If you have performed the optional procedure in “STEP 6: Create a zFS Directory (Optional)” on page 2-11 and if you are using an authorized Syncsort MFX version, then also APF-authorize the “libSSLib.so” which is present in your SYNCHOME directory. Go inside the SYNCHOME directory and issue the command that follows below. (APF authorization is mandatory for this DLL file if you are using an authorized Syncsort MFX version, irrespective of the Java version you are using.)

extattr +a libSSLib.so4. After updating SYS1.PARMLIB, IPL your system.

Syncsort MFX Programmer’s Guide 2–17

5. After the IPL, activate global DSM by issuing the START command for procedure SYNCG310. For complete information on activating global DSM, see “Activating Global DSM with the START Command” on page 2-20.

During production validation testing, you should run the key jobs at your installation in parallel with the current production runs of those jobs, and compare the results. You should also make the new release of MFX available to selected users. The jobstreams for both the parallel jobs and the selected user jobs should contain STEPLIBs linking them to your SYNCLINK library. (If you have not chosen a system resident configuration, the jobstreams should also contain a STEPLIB to the SYNCRENT library.)

To confirm the Java environment is set up correctly, submit sample job SS31TST2 which will create a PDF. If you have elected to support the email facility then also submit SS31TST3 which will create a PDF and email it to a specified recipient.

STEP 18: Put MFX into ProductionTo put the new release of MFX into production, you must place your SYNCLINK library in the link list concatenation. Depending on whether you are using member LNKLSTxx or PROGxx to define your link list concatenation, you must update one of these members in SYS1.PARMLIB. Take note of these additional items:

1. If you decided to activate BetterGener, then you must ensure that the applications that execute program IEBGENER find the IEBGENER member in your SYNCLINK library ahead of the IBM IEBGENER in SYS1.LINKLIB. Choose one of the following methods to facilitate this:

• You can place the MFX SYNCLINK library ahead of SYS1.LINKLIB in your system link list concatenation, or

• You can keep SYS1.LINKLIB at the top of the link list but use UCLIN to change the target DDname of the LMOD IEBGENER from LINKLIB to some alternate name (e.g., GENRLIB). Allocate a ‘SYS1.GENRLIB’ library. Add a DDDEF in the operating system target zone for GENRLIB which points to ‘SYS1.GENRLIB’. Create a USERMOD whose FMID is the function that owns the IBM IEBGENER module in your level of the operating system, and then use a ++MOVE statement have SMP/E move IEBGENER and its alias to GENRLIB. This USERMOD must be received and applied in the operating system SMP/E zones. Then construct your link list concatenation so that ‘SYS1.LINKLIB’ is on top, followed somewhere below by ‘SYNCSORT.MFX.R31.SYNCLINK’ and followed somewhere below that is your new ‘SYS1.GENRLIB’, or

• You can keep SYS1.LINKLIB at the top of the link list but create a USERMOD whose FMID is the function that owns the IBM IEBGENER in your level of the operating system, and then use the ++RENAME statement to change the name of IBM’s IEBGENER to a new name, such as OLDGENER. This USERMOD must be received and applied in the operating system SMP/E zones.

Syncsort MFX Programmer’s Guide2–18

Note: If any installation has the SMP/E sysmod BSSIAnn where nn represents release 1.4 or earlier, you must RESTORE it out of the operating system zones because mixing release components will yield unpredictable results.

2. If you have chosen a non-resident configuration, then you must place your SYNCRENT library in the link list concatenation by adding SYNCRENT to the link list concatenation in LNKLSTxx or PROGxx. Putting the SYNCRENT library in the link list concatenation presumes that you have not already chosen a resident configuration by putting SYNCRENT in the LPALSTxx as described in item number 2 in the prior step.

After refreshing LLA, submit the following test jobs in the sample JCL library as production verification tests. Submit sample job SS31TST4 to do a test sort. If you activated BetterGener, submit sample job SS31TST5. If you have an Syncsort PipeSort license, submit sample job SS31TST6.

Note: It is recommended that you keep the previous production version of MFX available for a period after the new release is placed in production. If necessary, ref-erence the previous release with a STEPLIB.

If sysmod BSSIP31 (DB2 Query Support) was installed, then either DB2 SYSADM or DB2 “BINDADD” and “CREATE IN” authority are needed to run the first sort on each DB2 subsystem.

For example, the userid has been granted the security privileges required to create “PACKAGES” and “PLAN” that other jobs will use, as follows:

GRANT BINDADD TO userid;GRANT CREATE IN COLLECTION SY14PK8I TO userid;GRANT CREATE IN COLLECTION SY14PK8E TO userid;

If you don’t want to use the default DB2 options to bind our SYNCSORT packages and plan, you can manually do the binding by using DBRM members which are included with your MFX installation files.

To bind our SYNCSORT packages and plan with options that are preferred at your site, review, modify, and submit member SS31BN89 from the sample JCL library. Member SS31BN89 is for users on DB2 version 8 and later versions of DB2.

Note: If the plan SY14PLV8 was previously bound with Syncsort MFX release 2.1 or earlier, then you do not need to re-BIND the plan.

If you have a secured environment, the PLAN SY14PLV8 must be granted EXECUTE authorization for all users if the plan is not granted PUBLIC.

STEP 19: ACCEPT the MFX FunctionsModify and submit member SS31ACPT from the sample JCL library to ACCEPT the MFX functions.

Syncsort MFX Programmer’s Guide 2–19

Required Setup for Syncsort ZPCopy or Syncsort ZPSaver (Optional)If you have Syncsort ZPCopy or are planning to use Syncsort ZPSaver, you will need to authorize certain MFX modules. For more information, refer to the installation instructions in the Syncsort ZPSaver User’s Guide.

Activating Global DSM with the START CommandGlobal DSM may be activated whenever your system is active, even when MFX jobs are executing. However, only MFX jobs that begin after global DSM is activated will use it.

To activate global DSM, issue the START command from the console. The START command uses the JCL procedure SYNCG310, which was placed in SYS1.PROCLIB in “STEP 16: Place SYNCG310 PROC into SYS1.PROCLIB” on page 2-17.

The START command must be issued each time you IPL your system unless you choose automatic activation. See the section “Automatic Activation of Global DSM” on page 2-21.

Note: Since global DSM will be active on your system constantly after it is acti-vated with the START command, you may want to restrict the time global DSM is active to the hours when you are testing MFX by using the START and STOP com-mands. However, to receive the full benefit of global DSM once MFX is in produc-tion, global DSM should be active whenever your system is running.

The format of the START command is:

HDSN=nameThe HDSN option allows you to use a history data set that has a name other than SYNCSORT.MFX.R31.HISTORY, which is the delivered default name in SYNCG310. This option is useful when you are activating global DSM on several different systems since the data sets on different systems may have different names.

LIB=nameThe LIB option allows you to change the default library name that contains the global DSM processing modules. The delivered default name is SYNCSORT.MFX.R31.SYNCAUTH.

Figure 1. START Command Format

START

S

SYNCG310

,HDSN=name

,LIB=name

,SYSOUT=class

Syncsort MFX Programmer’s Guide2–20

SYSOUT=classThe SYSOUT option allows you to change the output class for global DSM’s printed output. The delivered default is '*'.

START Command ExampleHere is an example of the START command:

In this example, global DSM is started (S) and the name of the default history data set (SYNCSORT.MFX.R31.HISTORY) in the activating PROC (SYNCG310) is replaced with the name ALT.HISTORY.NAME.

When the initialization is successful, message WER605I is routed to the console.

See the appropriate IBM System Commands Reference for your system for the complete syntax of the START command.

Automatic Activation of Global DSMGlobal DSM can be activated automatically as part of master scheduler initialization whenever a system is IPLed. To do this, place the START command described above in the COMMNDxx member of SYS1.PARMLIB.

Here is an example of the way in which the START command would be specified in COMMNDxx:

You can add the options described above (HSDN, LIB, and SYSOUT) to the START command in COMMNDxx if you wish.

When the initialization is successful, message WER605I is routed to the console.

S SYNCG310,HDSN='ALT.HISTORY.NAME'

Figure 2. Sample START Command

COM='S SYNCG310'

Figure 3. Sample START Command in COMMNDxx

Syncsort MFX Programmer’s Guide 2–21

Deactivating Global DSMYou may deactivate global DSM by issuing the STOP command from the console, even when an MFX job is executing. MFX will automatically detect the absence of global DSM and will not attempt to communicate with it. If local DSM is enabled, DSM will continue to function locally.

The format of the STOP command follows.

Global DSM will issue the message WER607I to acknowledge that the STOP command has been received and deactivation is in progress. When deactivation is complete, message WER606I is routed to the console.

See the appropriate IBM System Commands Reference for your system for the complete syntax of the STOP command.

PARASORTPARASORT improves elapsed time performance for sorts whose input is a multi-volume tape data set and/or concatenated tape data sets. Reduced elapsed time can help critical sort applications achieve batch window goals.

The performance improvement from PARASORT is a result of processing the SORTIN input volumes in a parallel fashion. Depending upon the resources provided, elapsed time can be reduced up to 20% for 2-way input and up to 33% for 4-way input.

Although you may need to create special esoteric unit names, PARASORT itself is included with MFX and will be available once MFX is installed. Note that creating PARASORT esoteric unit names need not be done as part of the installation procedure. It can be done at any time.

If you will be using PARASORT, see the instructions for creating PARASORT esoteric unit names in “Chapter 5, PARASORT”.

Figure 4. STOP Command Format

STOP

P

SYNCG310

Syncsort MFX Programmer’s Guide2–22

Activating SS31MSGSS31MSG is designed to allow anyone who uses MFX to have online access to MFX’s message texts and explanations. This facility is especially useful when information about an MFX message is needed, but the Syncsort MFX Programmer’s Guide is not available. SS31MSG runs under the ISPF Dialog Management Services. SS31MSG prompts the user for an MFX message number and then displays the corresponding message text and explanation on the screen.

During apply processing of SMP/E function BSSIZ3, components are copied to three target libraries named: SYNCCLIB, SYNCMLIB, and SYNCPLIB, which respectively contain the dialog’s CLISTs, messages, and panels.

STEP 1: Edit CLISTReview member SS31MSG2 in the SYNCCLIB library. Instructions are embedded in the member directing you to confirm or edit the settings on two variables.

STEP 2: Add CLIST Library to SYSPROC ConcatenationAdd the SYNCCLIB library name to the SYSPROC concatenation of the logon procedure for anyone using MFX.

STEP 3: Perform Installation Verification TestSS31MSG can be tested by issuing the command TSO SS31MSG from the command line of any ISPF panel. When the main SS31MSG screen appears, it will prompt for the 3-digit number and letter of the message you want explained. Two simple tests should be performed. First, enter 111A and view the complete 111A explanation displayed on a single screen. Then go back to the main screen to do the second test by entering 416B. The 416B display continues through multiple screens. Check that PF8 scrolls forward through the 416B explanation and PF7 scrolls backward.

STEP 4: Put SS31MSG into ProductionPut SS31MSG into production by modifying one of the ISPF/PDF menus. It is suggested that you select the menu that users select SDSF from, since that is where users will see batch jobs with MFX output. If you are unsure of how to modify an ISPF/PDF menu, refer to the appropriate IBM manual.

Syncsort MFX Programmer’s Guide 2–23

Installing Syncsort MFX Release 3.1 Over a Prior ReleaseSyncsort MFX Release 3.1 can be installed in target and distribution zones that contain any prior release. Applying sysmod BSSIZ31 will delete the prior release.

SMFDSECT LocationThe DSECT for MFX SMF records will be found in the target library associated with DDname SYNCTMAC. The member name is SMFDSECT.

SYNCLIST OutputThe SYNCLIST report program produces a formatted listing of the following:

• All generated options from SYNCMAC

• All Special Customer Options (SCOs) applied

• The current maintenance (TPF) level

• System environmental information

• A PARASORT configuration report and esoteric unit name table

More information about SYNCLIST can be found in “SYNCLIST Report Program” on page 3-59. That section includes a figure with JCL to execute SYNCLIST any time after your installation is completed.

MaintenanceThere are two kinds of maintenance to MFX:

• Individually issued PTFs that will correct a specific problem.

• A collection of PTFs that Precisely refers to as a new TPF level. To achieve a new TPF level, the entire collection of PTFs must be applied.

Syncsort MFX Programmer’s Guide2–24

Precisely Support Knowledge BaseThe Precisely Support website provides access to a Knowledge Base. This Knowledge Base contains search and download functions for individual PTF fixes for Syncsort MFX. Please contact Precisely Support for more information.

Release/Maintenance Information in MFX Message OutputThe message output from an MFX execution contains information about the release of MFX. It contains a header (unless the NOLIST option is specified) and a WER169I informational message (unless suppressed by the MSGCLAS option), described below.

MFX HeaderThe first line (unless NOLIST is specified) in the message output begins with the following format:

where:

n.n Indicates the release number (for example, 3.1).

m Indicates the TPF maintenance level.

t Indicates the TPF sublevel.

c Is either N or R, where N indicates a non-resident configuration of MFX, and R indicates a resident configuration.

i Is either I or a blank, where I indicates a program-invoked sort, and a blank indicates a JCL-initiated sort.

For example, a header line containing 3.1.1.0RI indicates that the version of MFX that was executed was Release 3.1 at the TPF1 level of maintenance; that it was installed as resident; and that this execution of MFX was invoked by a program.

Release information in the header indicates the latest maintenance level applied.

WER169I MessageA WER169I informational message appears in MFX’s message output.

The message has the following format:

SYNCSORT FOR Z/OS n.n.m.tci U.S. PATENTS…

Figure 5. MFX Header (First Line) Format

Syncsort MFX Programmer’s Guide 2–25

where:

n.n Indicates the MFX release number.

bbbb Indicates the batch number of the original installation package.

t.t Indicates the last TPF applied.

The batch number in the WER169I message does not change when a TPF is applied. It always reflect the batch number of the installation package.

WER169I RELEASE n.n BATCH bbbb TPF LEVEL t.t

Figure 6. WER169I Message Format

Syncsort MFX Programmer’s Guide2–26

Chapter 3 Default Options

The SYNCMAC macro is used to select permanent MFX defaults at installation time. To make changes after installation, use SYNCMAC again to modify individual options. The format of the SYNCMAC macro is displayed in figure 7. Note that column 1 must be blank on the first statement or contain a label. Labels may be up to 8 characters long, and must be followed by at least one blank.

The format of a statement continuation is displayed in Figure 8. To continue a statement, end the statement with a comma after a completed parameter, place any character in column 72, and start the next option in column 16 on the next line.

See figure 9 for an example of an actual SYNCMAC macro.

Col 1|blank SYNCMAC option,option,…,optionor

label+blank

Figure 7. SYNCMAC Format

Col 1 Col 16 Col 72| | |label SYNCMAC option,option,option,option, X

option,option,option

Figure 8. SYNCMAC Continuation Format

3–1Syncsort MFX Programmer’s Guide

For information on how to use the SYNCMAC macro, see “STEP 12: Set and Install the MFX Options” on page 2-13.

Important MFX OptionsHere is a list of options to which you should pay special attention when you are installing MFX:

• KEY-related parameters: KEY, KEYDSN, KEYMSG, KEYWARN

MFX requires a license key for every CPU on which it is run. These options support the installation of the keys, the use of key data sets, and the control of key-related warning messages.

Note: You do not need new license keys for Syncsort MFX 3.1 if you have valid keys for release 2.1. Also, the Syncsort MFX 3.1 license does not affect existing licenses for Syncsort PipeSort, Syncsort PROCSort, and Syncsort ZPSaver.

• SVC

An SVC allows MFX to use its high performance access methods, to optimize the performance of DASD with cache, and to support the key data set facility. MFX also uses its SVC to create SMF records.

If you are converting from an earlier release, use a different SVC number for MFX than the one you used previously. This will facilitate testing.

• MINCORE

The MINCORE option specifies the minimum amount of virtual storage that will be available to MFX. Make sure that the MINCORE value is high enough to support all the sorts at your installation.

• VSCORE, VSCORET

The VSCORE option specifies the maximum amount of virtual storage available to MFX below the 16-megabyte line.

The VSCORET option specifies the total amount of virtual storage available to MFX below and above the 16-megabyte line when MFX’s Dynamic Storage Management (DSM) facility is inactive. When DSM is active, the setting of the VSCORET option is treated as an initial recommendation.

Col 1 Col 16 Col 72| | |OPTS SYNCMAC NOLIST,SVC=(109,242), X

KEYDSN=SYNCSORT.MFX.R31.KEYS, XRSRVTI=60K,RC16=ABE

END

Figure 9. Sample SYNCMAC Macro

Syncsort MFX Programmer’s Guide3–2

• DSM, DSMWEND

The DSM and DSMWEND options allow you to set the optimization mode for all the sorts run on your system. You can direct MFX to provide the best overall balance of CPU time, elapsed time (wall clock time), and I/O activity, or you can direct MFX to minimize the use of one of these three. DSM and DSMWEND also allow you to vary the optimization mode during specific time intervals and to control local DSM.

STGPCT is a parameter of DSM/DSMWEND that provides users with an option to significantly improve elapsed time performance using more real storage in a highly controlled way. STGPCT creates dynamic optimization to control the maximum amount of real storage for MFX processing. MFX can utilize storage as a memory object to hold temporary SORTWK data rather than using a DASD SORTWK. Increasing the amount of memory object space can improve sort elapsed time (usually with minimal increase in CPU time, if any).

• JAVAHOME, JVM64, JZOSHOME, SYNCHOME, HOSTNAME, PORT

These options need to be defined to support the OUTFIL OUTPUT facility to create PDF, RTF, and HTML files and email them. These options are discussed in this chapter as well as in the Preliminary Tasks sections of the installation chapters.

MFX Options in SYNCMACAll of the MFX options are listed below in alphabetical order along with information about coding them as parameters of the SYNCMAC macro.

Defaults are underlined, and you do not need to code any option for which you are using the delivered default setting. However, all options are coded for documentation purposes in the SYNCMAC skeleton supplied with MFX.

A number of the MFX options in SYNCMAC can be overridden at run time by using their corresponding execution time parameters (PARMs). See the Syncsort MFX Programmer’s Guide as well as the end of this chapter for details.

ALTMSG Option

The ALTMSG option allows you to change the message data set DDname that will be used for program-initiated applications. The default name is SYSOUT.

ALTMSG =

Figure 10. ALTMSG Format

SYSOUTcccccccc

Syncsort MFX Programmer’s Guide 3–3

To use a different name, substitute it in place of cccccccc. The name may contain up to 8 characters.

If the DDname specified by ALTMSG is not provided in the JCL for a program-initiated application, then MFX will use the DDname specified in the MSGDD option, if available.

ALTPARM Option

The ALTPARM option allows you to change the alternate parameter data set DDname. The default name is $ORTPARM.

To use a different name, substitute it in place of cccccccc. The name may contain up to 8 characters.

ALTSEQ Option

The ALTSEQ option modifies the standard EBCDIC collating sequence for control fields labeled with an AQ format code. Note that the installation modifications will be overridden at execution time if an ALTSEQ control statement is supplied.

The coding format of the installation option is similar to that of the control statement. See the Syncsort MFX Programmer’s Guide for additional details.

cc is the hexadecimal representation of the character to be repositioned in the alternate sequence. pp shows the new position in the EBCDIC sequence for the character represented by cc. Up to 50 ccpp combinations may be specified with the IEV90 assembler or up to 204 ccpp combinations with ASMA90.

The default is the standard EBCDIC collating sequence.

BRKPTIM Option

ALTPARM =

Figure 11. ALTPARM Format

$ORTPARMcccccccc

ALTSEQ = (ccpp1,…,ccppnn)

Figure 12. ALTSEQ Format

BRKPTIM =

Figure 13. BRKPTIM Format

10nnnn

Syncsort MFX Programmer’s Guide3–4

The BRKPTIM option sets the minimum amount of time that must elapse during a MAXSORT before operator communication at breakpoints after the SORTIME option OC value has expired. The BRKPTIM option is ignored if the SORTIME option is not specified as 'OC' or 'n,OC'.

Specify the number of minutes of execution time (nnnn) that must elapse before the operator is requested to continue or to terminate the sort.

The default is 10 minutes.

CENTWIN Option

The CENTWIN option defines a sliding or fixed 100-year window that determines the century to which 2-digit year data belongs when processed by SORT, MERGE, INREC, OUTREC, or OUTFIL OUTREC control statements.

The 2-digit year data formats (Y2B, Y2C, Y2D, Y2P, Y2S, and Y2Z) plus the full-date formats (Y2T, Y2U, Y2V, Y2W, Y2X, and Y2Y) work with CENTWIN to treat a 2-digit year value as a 4-digit year. The 2-digit and full-date year data formats can be specified on control statements as follows:

• Use SORT/MERGE control statements to correctly collate 2-digit years that span century boundaries.

• Use INCLUDE/OMIT or OUTFIL INCLUDE/OMIT control statements for correct comparisons involving 2-digit year data formats.

• Use INREC/OUTREC or OUTFIL OUTREC control statements to convert 2-digit years to 4-digit printable output.

In addition, two date formats, Y2ID and Y2IP, are provided for year conversion with INREC/OUTREC and OUTFIL OUTREC. These formats work with CENTWIN to expand a 2-digit year in packed decimal format to a 4-digit year while maintaining the packed decimal format in the output field.

For more information on using the date data formats for SORT/MERGE field specifications and INREC or OUTREC processing, see the Syncsort MFX Programmer’s Guide.

CENTWIN ensures that year data spanning centuries will be sequenced correctly. For example, without CENTWIN processing, an ascending sort/merge would sequence the year 01 before the year 98. With CENTWIN processing, the 01 field could be recognized as a twenty-first century date (2001) and would thus be sequenced after 98 (1998) for an ascending sort.

CENTWIN =

Figure 14. CENTWIN Format

0sf

Syncsort MFX Programmer’s Guide 3–5

The CENTWIN option generates either a sliding or fixed century window, depending on which form of CENTWIN is used: CENTWIN=s or CENTWIN=f.

• CENTWIN=s specifies a sliding century window, which automatically advances as the current year changes.

The variable s is a number 0 through 100. This value is subtracted from the current year to set a century-window starting point. For example, in 1996 CENTWIN=20 would create the century window 1976 through 2075. Ten years later in 2006, the century starting year would slide to 1986 (2006 minus 20 = 1986) and the century window would be 1986 through 2085.

The CENTWIN delivered default is s=0, which means the current year is the starting year of a century window.

• CENTWIN=f specifies a fixed century window.

The variable f is a 4-digit year (yyyy) between 1000 and 3000. For example, CENTWIN=1976 establishes a fixed starting year 1976 for the century window 1976 through 2075. This window will not change as the current year changes.

The century window defined by CENTWIN controls processing of year-data. If a 2-digit year field (indicated by Y2B, Y2C, Y2D, Y2P, Y2S, Y2Z, Y2ID, Y2IP, Y2T, Y2U, Y2V, Y2W, Y2X, or Y2Y) has a value less than the last two digits of the century window start year, the year field will be treated as a year in the century following the year of the century window. All other 2-digit years will be treated as in the same century as the century window start year.

For example, consider the century window 1950 through 2049. The 2-digit year fields would be processed as follows:

An ascending sort of the above sample data would produce output data in the following sequence:

Two-digit Field Processed as Year

01 2001

49 2049

50 1950

99 1999

Two-digit Field Processed as Year

50 1950

99 1999

01 2001

49 2049

Syncsort MFX Programmer’s Guide3–6

CMP Option

The CMP option specifies the kind of compare operation to be used for sort/merge control fields up to 16 bytes long with the format PD or ZD. CPD may use the compare decimal instruction, and CLC uses the compare logical instruction.

PD or ZD fields longer than 16 bytes automatically default to CMP=CLC.

The delivered default, CMP=CPD, provides a more efficient way of comparing records than CMP=CLC. However, if there is invalid data in the zone portion of a ZD field when CMP=CPD is used, the zone fields will be changed as a result of unpacking. If there is invalid data in either a ZD or a PD field when CMP=CPD is used, an OC7 abend may occur.

COBEXIT Option

The COBEXIT option indicates which libraries COBOL E15 and E35 exit routines should use when they are executed.

COBEXIT=COB1 specifies that COBOL exits should use either OS/VS COBOL libraries or no libraries at all.

COBEXIT=COB2, the default, specifies that COBOL exits should use VS COBOL II or Enterprise COBOL for z/OS libraries.

VS COBOL II or Enterprise COBOL for z/OS run-time library modules typically require more virtual storage than OS/VS COBOL library modules, and the amount of additional storage depends on VS COBOL II or Enterprise COBOL for z/OS installation options. When VS COBOL II or Enterprise COBOL for z/OS run-time library modules are used, it may be necessary to account for this additional storage by adjusting the b value of the Exit-Name parameter on the MODS statement.

If you install MFX with COBEXIT=COB1 and later wish to change from OS/VS COBOL to either VS COBOL II or Enterprise COBOL for z/OS, you must complete a series of steps. The process includes changing the COBEXIT option to COB2 and installing two additional modules in your SYNCLINK library. Follow “Changing Default Option Settings” .

CMP =

Figure 15. CMP Format

CPDCLC

COBEXIT =

Figure 16. COBEXIT Format

COB1COB2

Syncsort MFX Programmer’s Guide 3–7

DSM and DSMWEND Options

The DSM and DSMWEND options allow you to control local DSM and to set an optimization mode.

MFX provides its best performance when global DSM is used instead of local DSM. For this reason, you should use local DSM only when processing requirements are unusual. For more information about local and global DSM, see “Dynamic Storage Management (DSM)” on page 1-3. In addition, you should change the delivered default that controls local DSM only under special circumstances.

DSM and DSMWEND also allow you to set an optimization mode for MFX. Normally, you would use the delivered default setting, which provides for a balance among CPU time, elapsed time, and I/O activity. However, in certain circumstances, you may want to direct MFX to minimize one of these resources at all times or during specific time intervals. For example, you can direct MFX to minimize elapsed time during the hours when your batch window is in effect and balance the use of all resources throughout the rest of the day.

The DSM (valid Monday through Friday) and DSMWEND (valid on weekends) options have five positional subparameters (subp1, etc.) If you omit any of the optional subparameters, you must remember to include the positional comma.

Figure 17. DSM/DSMWEND Format

DSMDSMWEND

intervalinterval1 … interval5, ,( )OFF [,subp4]( )0000 2359 100 BALANCE,30, , ,( )

=

interval subp1,subp2 [,subp3][,subp4][,subp5]( )=

subp1 hhmm=

subp2 hhmm=

subp3,ppp,OFF

=

subp4

,BALANCE,CPU,ELAP,IO

=

subp5 nn=

Syncsort MFX Programmer’s Guide3–8

The first two DSM and DSMWEND subparameters (subp1 and subp2) define a time interval. hh represents an hour value from 00 to 23. mm represents a minute value from 00 to 59. If you are setting parameters for local DSM, the DSM facility will be active for the entire minute specified in mm.

The time interval begins at hhmm of subp1 and ends at hhmm of subp2. A maximum of five intervals may be specified, and one interval can cross a day boundary (for example, from 8 p.m. to 8 a.m. on weekdays). Time periods cannot overlap.

The third subparameter (subp3) has been superseded by the functionality of the fifth subparameter. The third subparameter is accepted but ignored.

The fourth subparameter (subp4) describes the optimization mode that MFX will use during the time period specified. This optimization mode will be used regardless of whether local or global DSM is enabled.

The values that can be specified in the fourth subparameter are BALANCE, CPU, ELAP, and IO:

BALANCE Provides the best overall balance of CPU time, sort elapsed time (wall clock time), and I/O activity to SORTIN, SORTOUT, and SORTWORK.

CPU Minimizes the CPU time of each sort at the expense of sort elapsed time and I/O activity.

ELAP Minimizes the elapsed time (wall clock time) of each sort at some expense of CPU time.

IO Minimizes the amount of I/O activity (EXCPs) that a sort will perform.

The fifth subparameter (subp5) specifies the STGPCT value, which is the maximum percentage of available storage a sort can utilize. If this parameter is omitted, then for all optimization modes other than ELAP a default value of 30% will be used. For the ELAP optimization mode a default value of 40% will be used. If a value is specified, it will be used for all optimization modes. The valid values are from 1 to 95. This value can be overridden at run time by using the STGPCT runtime parameter.

Here is an example of how you would direct MFX to minimize elapsed time and use up to 50% of available storage during the hours between midnight (0000) and 6 a.m. (0600) and balance the use of all resources and use the default 30% of available storage throughout the rest of the day (0601 to 2359) on weekdays (Monday to Friday):

DSM=((0000,0600,,ELAP,50),(0601,2359,,BALANCE))

Figure 18. Sample DSM Coding

Syncsort MFX Programmer’s Guide 3–9

If you wish to disable local DSM at all times, you can specify OFF in place of the first three subparameters. You can also then specify an optimization mode. The following example shows turning all DSM off and having the sort use the ELAP optimization mode.

Note: If sorts occasionally need to be performed with an optimization mode other than that defined in the DSM and DSMWEND parameters, you can specify a differ-ent optimization mode at execution time.

DSMALTST Option

The DSMALTST option specifies whether or not the STGPCT runtime parameter will be honored.

DSMALTST=YES enables the use of the STGPCT runtime parameter.

DSMALTST=NO disables the use of the STGPCT runtime parameter. If DSMALTST=NO and STGPCT is passed as a parameter at run time, the STGPCT value will be validated and ignored.

The delivered default is YES.

DSMMAXST Option

The DSMMAXST option specifies the maximum value a user can specify for the STGPCT runtime parameter. It does not affect or limit the value specified as the fifth subparameter for DSM or DSMWEND. Valid values are in the range 1 to 95.

The delivered default is 95.

DSM=(OFF,ELAP)

Figure 19. Sample DSM Coding

DSMALTST =

Figure 20. DSMALTST Format

YES

NO

DSMMAXST =

Figure 21. DSMMAXST Format

n

95

Syncsort MFX Programmer’s Guide3–10

DSORGDA Option

The DSORGDA option permits the use of a random access data set (DSORG=DA) as input to the sort/merge. Note that dummy records will not be recognized as such but will be sorted with the rest of the SORTIN file. The default is to accept only physical sequential (PS) and partitioned organized (PO) members as input.

DYNALOC Option

The DYNALOC option is used to dynamically allocate SORTWK data sets. These data sets are deallocated at the conclusion of all program-invoked sorts, and MFX may override specified values when it finds that sorting can be completed more efficiently. Some sort applications that use SUM, DUPKEYS, OUTREC, OUTFIL, or VSAM SORTOUT and do not provide JCL SORTWORKs may automatically have DYNALOC enabled. Therefore, you should ensure that appropriate options are set at installation so that DYNALOC can be used effectively.

If SMS is not installed or active for temporary DASD work data sets, use cccccccc in the first subparameter to give the generic name of the class from which the sort should dynamically allocate the SORTWK data sets. (Note that VIO is not accepted as a unit device.) SYSDA is the default. If SMS is active, refer to the SC subparameter of DYNALOC described below, at the end of this section.

DSORGDA

Figure 22. DSORGDA Format

Figure 23. DYNALOC Format

DYNALOC ( ccccccccSYSDA

,nn,3

,ON,OFF

,ON,OFF

,6000000,nnnnnnnnnn

=

,3000000,nnnnnnnnnn

,3390,nnnn

,RETRY ( mm005

,nn,00,3

)=

,SC ssssssss= ,MAXNUMnnn32

=

,DSNTYPEBASIC

LARGE

= ,EATTRNO

OPT

= )

Syncsort MFX Programmer’s Guide 3–11

Use nn in the second subparameter to specify the number of SORTWK files to be dynamically allocated for a MAXSORT. The maximum number allowed is 32, and the default is 3. Note that the MAXNUM subparameter of DYNALOC (see definition below) is not applicable to a MAXSORT application.

ON in the third subparameter tells MFX to dynamically allocate SORTWK files when appropriate. Dynamic allocation can be provided even if it is not specified as a PARM or on the SORT control statement. ON is the default. OFF tells MFX that no dynamic allocation should be done for a sort.

ON in the fourth subparameter tells MFX that, although SORTWK files have been allocated in the JCL, additional SORTWK files should be dynamically allocated. ON is the default. OFF in the fourth subparameter tells MFX not to dynamically allocate additional SORTWK files if SORTWK files have been allocated in the JCL. Note that this specification will only be used with MAXSORT.

Use the nnnnnnnnnn in the fifth subparameter to specify the total amount of primary space to be obtained by dynamic allocation of SORTWK files for MAXSORT applications. The default value for primary space is 6 million bytes. The maximum value is 4,294,967,295.

Use the nnnnnnnnnn in the sixth subparameter to specify the amount of secondary space to be obtained by dynamic allocation of SORTWK files for MAXSORT applications. The default value for secondary space is 3 million bytes. The maximum value is 4,294,967,295.

In the seventh subparameter, specify the DASD with the smallest track capacity that might be encountered at your installation by a dynamically allocated SORTWK data set. The default is 3390. If, during dynamic allocation, MFX receives a device with a track capacity smaller than the one specified, it may ignore the specified device type. Below is a table of the devices and their track capacities:

The RETRY, SC, MAXNUM, DSNTYPE and EATTR subparameters must follow all the other positional subparameters in the DYNALOC option.

Specify RETRY to enable MFX to perform automatic DYNALLOC retry. This facility will attempt to avoid a SORTWK capacity-exceeded condition when disk space is not immediately available to satisfy a DYNALLOC request. MFX will automatically wait a prescribed length of time between retries and will retry a request a specified number of times.

TYPE TRACK CAPACITY

3380 47476

3390 56664

9345 46456

Table 7. DASD Device Track Capacity

Syncsort MFX Programmer’s Guide3–12

Use the mm in the first position in the RETRY subparameter to specify the number of times MFX is to retry a failed DYNALLOC request. The minimum value allowed is 0 and the maximum value is 16. The default of 5 tells MFX that automatic DYNALLOC RETRY is to be retried 5 times.

Use the nn in the second position in the RETRY subparameter to specify the number of minutes to wait between each DYNALLOC request. The minimum value allowed is 0 and the maximum value is 15. The default of 3 tells MFX to wait 3 minutes between each RETRY attempt.

If SMS is active to manage temporary work data sets, the SC subparameter can be specified to instruct MFX to DYNALLOC SORTWKs from storage class (STORCLAS) ssssssss. If this parameter is not specified in an SMS environment, MFX will dynamically allocate devices from the generic class cccccccc specified in the first subparameter. Note that an installation written automatic class selection (ACS) routine can override the DYNALOC parameter you specify.

The MAXNUM subparameter is used to set the maximum number of SORTWK files that could be used in non-MAXSORT applications. If the number of SORTWK data sets specified in the JCL is less than MAXNUM, MFX may dynamically allocate more data sets to bring the total number of SORTWK data sets up to MAXNUM. Specify a value from 32 to 255. MFX will automatically determine the appropriate number of SORTWK files to use within the cap specified. Note that the specification of values greater than 32 will increase the need for virtual storage below the 16-megabyte line. This storage is required for system control blocks such as DCBs. Since most applications can be supported with the minimum of 32, it may be best to specify at run time, via the DYNALLOC parameter, a larger value when it is required.

The DSNTYPE subparameter is used to control the DSNTYPE attribute when MFX performs DYNALLOC. The allowed values are LARGE and BASIC. DSNTYPE=LARGE is the default. When DSNTYPE=BASIC is specified, MFX will not use the DSNTYPE=LARGE attribute when performing DYNALLOC, and the upper limits for primary and secondary allocations are lowered accordingly. (For the effects of the DSNTYPE attribute, refer to the section titled DSNTYPE Parameter in the DD Statement chapter in the IBM z/OS MVS JCL Reference.)

The EATTR subparameter is used to control the EATTR attribute when MFX performs DYNALLOC. The allowed values are OPT and NO. EATTR=OPT is the default. (For the effects of the EATTR attribute, refer to the section titled EATTR Parameter in the DD Statement chapter in the IBM z/OS MVS JCL Reference.)

As noted above, if you want to enable DYNALOC with the default settings, specify DYNALOC=(,,ON). This is the minimum specification to ensure dynamic allocation for SORTWK data sets.

Syncsort MFX Programmer’s Guide 3–13

DYNATAPE Option

The DYNATAPE option instructs MAXSORT to dynamically allocate any tape drives needed for its merges. DYNATAPE may be used instead of (or as a supplement to) SORTOUxx DD statements.

NODYNTPE is the default and suppresses dynamic allocation.

EMSPACE Option

The EMSPACE option instructs MFX to reserve the specified amount of virtual storage below the 16-megabyte line. The EMSPACE specification is always rounded up to the next page size.

The recommended amount of EMSPACE depends on whether or not you have a disk or tape management system, security package, or CA-1 on your system:

• If you are not using a security package or a tape or disk management system, accept the default EMSPACE value of 0.

• If you are using a tape or disk management system, but not CA-1 or a security package, specify EMSPACE=4K.

• If you are using a security package, but not CA-1, specify EMSPACE=12K.

• If you are using CA-1, with or without a security package, specify EMSPACE=32K.

EQUALS Option

Figure 24. DYNATAPE Format

DYNATAPENODYNTPE

EMSPACE =

Figure 25. EMSPACE Format

nnnnnnnnnK0

Figure 26. EQUALS Format

EQUALSNOEQUALS

Syncsort MFX Programmer’s Guide3–14

The EQUALS option affects the order in which equal-keyed records are processed. Equal-keyed records are records with identical values in all key fields.

If you specify NOEQUALS, the output sequence of the records within a set of equal-keyed records will be unpredictable. NOEQUALS is the default.

If you specify EQUALS, the records within a set of equal-keyed records will be released in the same order, relative to each other, in which they entered the sort or merge.

Because preserving the order of equal-keyed records adds overhead to sort and merge processing, you should only specify EQUALS when necessary.

If a single file is sorted and the EQUALS option has been chosen, the order of the records with equal key fields will be the same in the output file as in the input file.

If EQUALS is chosen for a sort or a merge and there is more than one input file, equal-keyed records from individual input files will appear in contiguous sets in the output file. These sets will be in the order in which their respective input files were defined to the application.

If EQUALS is in effect in an application with SORTMInn data sets, the order of equal-keyed records within each SORTMInn file will be preserved. In addition, equal-keyed records from the lowest-numbered SORTMInn file will be written before those from the second SORTMInn file, and so on.

If you are using a SUM or DUPKEYS control statement with MFX during a particular application and you wish to guarantee that the record preserved is the first record originally released for processing, you can use the EQUALS parameter at execution to override the default set at installation.

EXITNAME Option

The EXITNAME option allows you to link-edit an exit routine in SYSIN when the CSECT of the exit routine is not the same as the member name on the MODS control statement.

To allow this type of link-editing, specify EXITNAME. The default is not to allow this form of link-editing by not specifying EXITNAME.

HOSTNAME Option

EXITNAME

Figure 27. EXITNAME Format

HOSTNAME = 'c1 …c256'

Figure 28. HOSTNAME Format

Syncsort MFX Programmer’s Guide 3–15

The HOSTNAME option is used to specify the name or IP address of the SMTP server that will be used to send an email.

Up to 256 characters can be specified. The value must be enclosed within single apostrophes.

This option is required to support the OUTPUT EMAIL feature of the OUTFIL control statement.

The default is a null HOSTNAME.

Note: A single ampersand character (&) is not accepted by the ASMA90 assembler. If you want an ampersand in the HOSTNAME option, use two ampersands (&&).

IOERR Option

The IOERR option controls error handling when there is an I/O error.

If IOERR=ABE is specified and an I/O error occurs, MFX will issue user abend 999 and produce a dump instead of a return code 16 or a user abend 16. A WER061A error message will also be routed to the console in addition to the normal destination for messages.

The default is IOERR=NOABE (or NOIOERR). If one of these is specified, MFX will terminate with a return code of 16 when I/O errors occur if RC16=NOABE has also been specified. Otherwise, the sort will issue a user abend 16.

If IOERR=NOSNAP is specified and an I/O error occurs, MFX will issue user abend 999 but not produce a dump unless DEBUG is specified. This is in place of a return code 16 or user abend 16. A WER061A error message will also be routed to the console in addition to the normal destination for messages.

JAVAHOME Option

The JAVAHOME option is used to specify the location of the IBM Java SDK for z/OS. This is the location you found during the preliminary tasks section of the

Figure 29. IOERR Format

IOERRABENOABENOSNAP

=

NOIOERR

JAVAHOME = 'c1 …c256'

Figure 30. JAVAHOME Format

Syncsort MFX Programmer’s Guide3–16

installation instructions. Normal values would be ‘/usr/lpp/java/J1.4’, ‘/usr/lpp/java/J5.0’, or ‘/usr/lpp/java/J6.0’.

Up to 256 characters can be specified for the location. The value must be enclosed within single apostrophes.

This option is required to support the OUTPUT feature of the OUTFIL control statement.

The default is a null JAVAHOME.

Note: A single ampersand character (&) is not accepted by the ASMA90 assembler. If you want an ampersand in the JAVAHOME option, use two ampersands (&&).

JVM64 Option

The JVM64 option indicates whether the Java SDK is 64-bit or not. The Java SDK is used for the OUTFIL OUTPUT feature.

JVM64=YES indicates that the 64-bit Java SDK is used.

JVM64=NO indicates that the 64-bit Java SDK is not used.

The delivered default is NO.

This parameter works in conjunction with the SYNCHOME parameter. If you specify JVM64=YES, you should specify the sshfsj6x file in your SYNCHOME directory location.

JZOSHOME Option

The JZOSHOME option is used to specify the location of the IBM JZOS Batch Toolkit for z/OS SDKs. This is where you either found a ‘JVMLDMnn’ module in SYS1.SIEALNKE or downloaded the Toolkit during the preliminary tasks section of the installation instructions. If there is a ‘JVMLDMnn’ module in SYS1.SIEALNKE, set JZOSHOME to the same value as your JAVAHOME option. If you downloaded the Toolkit, specify the OMVS location. For example, ‘/u/xxx/jzos’ could be specified.

JVM64 =

Figure 31. JVM64 Format

YES

NO

JZOSHOME = 'c1 …c256'

Figure 32. JZOSHOME Format

Syncsort MFX Programmer’s Guide 3–17

Up to 256 characters can be specified for the location. The value must be enclosed within single apostrophes.

This option is required to support the OUTPUT feature of the OUTFIL control statement. The default is a null JZOSHOME.

Note: A single ampersand character (&) is not accepted by the ASMA90 assembler. If you want an ampersand in the JZOSHOME option, use two ampersands (&&).

KEY-Related Options (KEY, KEYDSN, KEYMSG, and KEYWARN)A license key must be provided for each authorized machine on which Syncsort MFX, Syncsort PipeSort, Syncsort PROCSort is used. Syncsort PROCSort and Syncsort PipeSort each invoke Syncsort MFX, which performs the license key validation for those products.

To obtain a license key, you will need to run the SYNCCPR program. For more information, see “STEP 2: Execute SYNCCPR” on page 2-11.

License keys for all three products can be maintained either in the SYNCMAC installation options macro or in a separate data set. To maintain the keys in SYNCMAC, use the SYNCMAC KEY option. To maintain the keys in a separate data set, specify the name of the data set in the KEYDSN option of SYNCMAC. Using a data set eliminates the need to assemble and link modules each time a key is added or replaced and avoids SMP/E involvement. The data set option is recommended for sites that have many license keys and experience frequent key changes.

The data set can also be used to tell MFX to suppress key-related warning messages. As a license nears expiration, or if there has been a change to a machine on which an MFX product is executed, WER901I and WER903I messages may be issued. If you want to suppress these messages, you can do so by using a PARMS statement in the key data set.

The SYNCMAC options KEY, KEYDSN, KEYMSG, and KEYWARN are described below. For information on creating and updating the key data set, see.

Syncsort MFX Programmer’s Guide3–18

KEY Option

The KEY option allows you to specify your license keys in SYNCMAC. Each key is an encrypted sequence of 16 hexadecimal characters.

A maximum of 140 keys may be coded to validate MFX products on multiple machines. Because of IBM Assembler language limitations, only 14 keys may be coded in the KEY parameter. The KEY2 through KEY10 parameters should be used in numerical order for additional keys, leaving no unspecified key subparameters before the last one.

Here is an example of the KEY option for a user with three licensed machines:

The KEY2 parameter should not be used until at least fifteen license keys need to be entered.

KEYDSN Option

The KEYDSN option specifies the name of a data set that you will allocate and populate with your license keys.

Note that every sort step needs to have READ access to this data set. WRITE authority should be limited to the systems programming staff that maintains MFX. MFX dynamically allocates the data set, so there is no need for a DD statement in the sort JCL.

Figure 33. KEY Format

KEY=(123456789ABCDEF0,23456789ABCDEF01,3456789ABCDEF012)

Figure 34. Sample KEY Option

KEY xxxxxxxxxxxxxxxx1 …,xxxxxxxxxxxxxxxx, 14( )=KEY2 xxxxxxxxxxxxxxxx15 …,xxxxxxxxxxxxxxxx, 28( )=KEY3 xxxxxxxxxxxxxxxx29 …,xxxxxxxxxxxxxxxx, 42( )=KEY4 xxxxxxxxxxxxxxxx43 …,xxxxxxxxxxxxxxxx, 56( )=

………KEY10 xxxxxxxxxxxxxxxx127 …,xxxxxxxxxxxxxxxx, 140( )=

KEYDSN = data set name

Figure 35. KEYDSN Format

Syncsort MFX Programmer’s Guide 3–19

Following is an example of a KEYDSN coding:

For more information on how to create key data sets, see “Using a Data Set for MFX License Keys” on page B-1.

Note that since the KEY and KEYDSN parameters are mutually exclusive, you will have to delete the KEY parameter if you currently have it specified among your default options. If you already have MFX installed and are changing options at this point, see “Changing Default Option Settings” on page 3-63 for more information.

KEYMSG Option

The KEYMSG option controls the destination of certain key-related warning messages.

If SYSOUT, the default, is specified, the WER901I expiration warning message and the WER903I unlicensed machine warning message are written to the SYSOUT data set. If NOSYSOUT is specified, the writing of these messages to SYSOUT is suppressed, except for the last 7 days of the warning.

If WTO, the default, is specified, these messages are written to the console with a WTO macro several times a day. If NOWTO is specified, the writing of these two messages as WTOs is suppressed, except for the last 7 days of the warning.

The n1 through n16 parameters are optional routing codes to be used when these messages are written to the console with a WTO macro. 16 is the maximum value for each routing code. The default is to issue the WTO without a routing code.

KEYDSN=SYNCSORT.MFX.R31.KEYS

Figure 36. Sample KEYDSN Coding

Figure 37. KEYMSG Format

KEYMSG = ( SYSOUTNOSYSOUT

,WTO,NOWTO

n, 1 …,n16, )

Syncsort MFX Programmer’s Guide3–20

KEYWARN Option

The KEYWARN option sets the number of days before contract expiration that the WER901I expiration warning message will begin appearing.

The default value is 60. The valid range is from 0 to 180.

LISTJ Option

The LISTJ option controls whether or not header lines and user control statements are written on the message data set for all JCL-initiated sorts/merges.

Specify LISTJ (the default) if you want these lines and control statements to be written. Specify NOLISTJ if you do not want them to be written.

LISTT Option

The LISTT option controls whether or not header lines and user control statements are written on the message data set for all program-invoked sorts and merges.

Specify LISTT (the default) if you want these lines and control statements to be written. Specify NOLISTT if you do not want them to be written.

KEYWARN =

Figure 38. KEYWARN Format

n60

Figure 39. LISTJ Format

LISTJNOLISTJ

Figure 40. LISTT Format

LISTTNOLISTT

Syncsort MFX Programmer’s Guide 3–21

LOCALE Option

The LOCALE option controls cultural environment processing, allowing you to choose an alternative set of collating rules based on a specified national language. For SORT/MERGE processing, the alternative collating applies to character (CH) fields. For INCLUDE/OMIT comparison processing, the alternative collating applies to character fields and hexadecimal constants compared to character fields.

MFX employs the callable services of IBM’s Language Environment for z/OS to collate data in a way that conforms to the language and conventions of a selected locale. A locale defines single and multi-character collating rules for a cultural environment. Numerous pre-defined locales are available.

NONE, the default setting for LOCALE, results in normal EBCDIC collating.

CURRENT directs MFX to use the locale active when MFX begins.

name is the name of a supplied or user-defined locale that is to be active during MFX processing. A locale name may be up to 32 characters and is not case sensitive. The locale that is active just before MFX processing begins will be restored when MFX processing completes. Table 8 contains a list of locales provided with the IBM National Language Resources Feature of Language Environment.

LOCALE =

Figure 41. LOCALE Format

NONECURRENTname

Syncsort MFX Programmer’s Guide3–22

Notes:

1. Make sure the JCL gives MFX access to the library that contains the loadable locale routines. For the supplied locales, these are the dynamically loadable routines in the IBM Language Environment SCEERUN library. For more

Locale Name Language Country

C

DA_DK Danish Denmark

DE_CH German Switzerland

DE_DE German Germany

EL_GR Greek Greece

EN_GB English United Kingdom

EN_JP English Japan

EN_US English United States

ES_ES Spanish Spain

FI_FI Finnish Finland

FR_BE French Belgium

FR_CA French Canada

FR_CH French Switzerland

FR_FR French France

IS_IS Icelandic Iceland

IT_IT Italian Italy

JA_JP Japanese Japan

NL_BE Dutch Belgium

NL_NL Dutch Netherlands

NO_NO Norwegian Norway

PT_PT Portuguese Portugal

SV_SE Swedish Sweden

TR_TR Turkish Turkey

Table 8. Defined Locales

Syncsort MFX Programmer’s Guide 3–23

information, see the IBM publication Language Environment for z/OS & VM Installation and Customization Guide, SC26-4817.

2. If locale processing is used for fields specified in a SORT or MERGE control statement, VLTEST=1 will be forced on in addition to any other VLTEST options in effect. VLTEST=1 will cause MFX to terminate if a variable-length input record does not contain all SORT/MERGE control fields.

3. Although locale processing can improve performance compared to external collating routines, it should be used only when necessary. Locale processing can significantly degrade SORT/MERGE and INCLUDE/OMIT performance compared to normal collating.

4. An E61 exit cannot be used with locale processing.

5. Locale processing requires additional main storage to support the use of Language Environment facilities. For those jobs that use locale, the below-the-line region size should be increased by 1MB to accommodate the storage needs of the IBM Language Environment modules.

6. A single ampersand character (&) is not accepted by IEV90 and ASMA90 assemblers. If you want an ampersand in a locale name, use two (&&).

MAXMERG Option

The MAXMERG option limits the number of tape drives that a MAXSORT will dynamically allocate for merging strings of data.

The value specified for n is the maximum number of tape drives that the program will use for merging the intermediate output tapes created on the SORTOUxx tape drives. Any SORTOUxx tape drive allocated in the JCL will be included in n. At least 2 must be specified, and 8 is the default.

Specify 'OC' if you want the operator to choose the maximum number of tape drives at each breakpoint.

Give a value for n and specify OC if you want the operator to be able change the value for n at breakpoints.

Note: Enabling operator communications (OC) requires that the operators are familiar with MAXSORT and prepared to respond to MAXSORT messages. See the Syncsort MFX Programmer’s Guide for more information on MAXSORT.

DYNATAPE must be in effect for MAXMERG to take effect.

MAXMERG =

Figure 42. MAXMERG Format

n8(n,OC)OC

Syncsort MFX Programmer’s Guide3–24

MAXWKSP Option

The MAXWKSP option gives the maximum amount of disk SORTWK space that MFX will use to form sorted strings of data during a MAXSORT.

When the default value, MAX, is used, MFX will obtain all available secondary allocations for the SORTWK data sets. This will ensure an efficient MAXSORT execution since it will result in the lowest number of individual sorts and merges required to sort the entire input file.

Use nM when you wish to give a specific maximum amount of disk space (n) in megabytes.

Use n when you wish to give a specific maximum amount of disk space in cylinders.

Note: MAXWKSP should be specified as greater than or equal to MINWKSP.

MINCORE Option

The MINCORE option specifies the minimum virtual storage request to be honored by MFX. Any virtual storage requests less than MINCORE will be raised to this value during MFX execution.

Use nnnnnnnn to give a minimum virtual storage value in bytes. Use nK to give a minimum virtual storage value (n) in kilobytes.

The default value is 184,320 bytes (180K). The minimum allowable value is 143,360 bytes (140K).

Storage requirements increase as the quantity and/or complexity of the control statements increase. For example, applications which use SortWriter features or produce multiple output files may require additional storage. Make sure that the MINCORE value is set high enough to support such applications.

MAXWKSP =

Figure 43. MAXWKSP Format

MAXnMn

MINCORE =

Figure 44. MINCORE Format

nnnnnnnnnK184320

Syncsort MFX Programmer’s Guide 3–25

MINMERG Option

The MINMERG option allows you to specify the minimum number of tape drives that a MAXSORT must have for merging intermediate sorted output. The default and minimum permissible is 2.

MAXSORT forces termination when the minimum number of tape drives specified is not available. The MAXSORT may be restarted later when more drives are available.

MINWKSP Option

The MINWKSP option specifies the minimum amount of SORTWK disk space that must be present for MAXSORT to begin processing. This option helps ensure that each individual sort in a MAXSORT will be large enough so that the input file can be divided into a reasonably small number of segments.

Use n to specify the minimum acceptable amount of SORTWK disk space in cylinders.

Use nM to specify the minimum acceptable amount of SORTWK disk space (n) in megabytes.

The default value is 500 cylinders.

Note: MINWKSP should be specified as less than or equal to MAXWKSP.

MODSLNK Option

MINMERG =

Figure 45. MINMERG Format

2n

MINWKSP =

Figure 46. MINWKSP Format

nnM500

MODSLNK =

Figure 47. MODSLNK Format

TN

Syncsort MFX Programmer’s Guide3–26

The MODSLNK option controls exit link-editing. When a MODS statement does not specify a link-editing code, the setting of the MODSLNK option determines whether or not the exit should be link-edited along with other routines specified for the same sort/merge phase. If you specify MODSLNK=N, MFX will not link-edit exits defined on a MODS statement if the link-editing code on the MODS statement is omitted.

The delivered default (MODSLNK=T) instructs MFX to dynamically link-edit exits defined on a MODS statement if the link-editing code on the MODS statement is omitted.

Note: The IBM Data Facility Removable Media Manager (RMM) has some applica-tions which use a MODS statement without a link-editing option. In these cases, link-editing is not desired.

MSG Option

The MSG option allows you to indicate where messages are to be routed.

AB causes all messages to be routed both to the message data set and to the console.

AC causes all messages to be routed to the console but none to the message data set.

AP causes all messages to be routed to the message data set but none to the console. This is the default.

CB causes only critical messages to be routed both to the message data set and to the console.

CC causes only critical messages to be routed to the console but none to the message data set.

CP causes only critical messages to be routed to the message data set but none to the console.

NO causes no messages to be routed to either the message data set or to the console.

MSG =

Figure 48. MSG Format

ABACAPCBCCCPNOPCSCSP

Syncsort MFX Programmer’s Guide 3–27

PC causes all messages to be routed both to the message data set and to the console.

SC causes only critical messages to be routed to the console but all messages to the message data set.

SP causes only critical messages to be routed to the message data set but all messages to the console.

Note that if no messages are to be routed to the message data set (options AC, CC, and NO), the MFX header lines and user control statements will also not be written. This condition is handled differently for BetterGener. See “MSGGENR Option” on page 3-30.

MSGCLAS Option

The MSGCLAS option defines the types of MFX messages to be issued. The message type is determined by the character at the end of the message number.

If this option is not specified, message types A, B, C, D, and I are the default. Type A messages are critical error messages, and types B, C, D, and I are informational messages. (Note that only types A, B, C, D, and I are meaningful at this time.)

MSGDD Option

The MSGDD option is used to specify the DDname of the message data set. The default name is SYSOUT, or you can give a specific name (cccccccc).

MSGEXIT Option

The MSGEXIT option enables you to modify, delete, and insert Precisely messages.

When MSGEXIT is defined as a default option, it will be called before each SYNCSORT message is written to SYSOUT DD.

MSGCLAS = ([A][,B][,C][,D][,E][,F][,G][,H][,I])

Figure 49. MSGCLAS Format

MSGDD =

Figure 50. MSGDD Format

ccccccccSYSOUT

MSGEXIT = ([n][,m][,s][,N])

Figure 51. MSGEXIT Format

Syncsort MFX Programmer’s Guide3–28

n – specifies the name of your routine.

m –specifies the number of bytes of main storage your routine uses.

s – specifies the name of the DD statement that defines the library in which your routine is located.

N – only option currently accepted, indicating the EXIT program is prelinked.

Caution!

• MSGEXIT must only be passed as an installation option, not as a run-time parameter.

• If you do not define the routine name, all sort jobs will fail with an S806 abend.

Input Information to the Exit:

• R1 – Address of MSGEXIT PARMLIST.

• MSGEXIT PARMLIST – Two words long:

• WORD1: Address of message to be posted

• WORD2: Address of work area

The work area contains JOBNAME, STEPNAME, and PROCNAME of the current job step. Each field is 8-bytes long:

+0 JOB NAME+8 STEP NAME+16 PROC NAME

Return Information from the Exit:

• R1: Should be pointing to the new message.

• R15: return code from the exit.

0: Accept the message4: Delete the message8: Normal terminate exit processing12: Insert additional message

Syncsort MFX Programmer’s Guide 3–29

MSGGENR Option

The MSGGENR option allows you to indicate where messages are to be routed for BetterGener applications.

See the MSG option for a description of the parameters.

Note that the defaults for MSG and MSGGENR are different. Also, the MFX header lines will never be written to the message data set (SYSPRINT) for BetterGener applications.

MXROUTC Option

The MXROUTC option is used to specify the route code(s) for MAXSORT WTO messages. Acceptable values for n are 1 to 16. The default is route code 2.

NOSNAP Option

The NOSNAP option instructs MFX not to produce a SNAP dump in the event of an abend during a sort or merge, unless the DEBUG parameter is specified.

MSGGENR =

Figure 52. MSGGENR Format

ABACAPCBCCCPNOPCSCSP

MXROUTC =

Figure 53. MXROUTC Format

n1 …,n, 16( )2

NOSNAP

Figure 54. NOSNAP Format

Syncsort MFX Programmer’s Guide3–30

NULLOFL Option

The NULLOFL option specifies the action to be taken when any non-SORTOUT OUTFIL data set contains no data records. NULLOFL will be ignored for a BetterGener application.

RC0 The delivered default instructs MFX to issue a return code of 0 if not over-ridden by a higher return code set for another reason.

RC4 Instructs MFX to issue a WER461I warning message and continue process-ing. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

RC16 Instructs MFX to issue a WER461A message and to terminate processing with a return code of 16.

NULLOUT Option

The NULLOUT option specifies the action to be taken when SORTOUT in a sort, merge, or copy application contains no data records. NULLOUT will be ignored for a BetterGener application.

RC0 The delivered default instructs MFX to issue a return code of 0 if not over-ridden by a higher return code set for another reason.

RC4 Instructs MFX to issue a WER461I warning message and continue process-ing. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

RC16 Instructs MFX to issue a WER461A message and to terminate processing with a return code of 16.

NULLOFL =

Figure 55. NULLOFL Format

RC0RC4RC16

NULLOUT =

Figure 56. NULLOUT Format

RC0RC4RC16

Syncsort MFX Programmer’s Guide 3–31

OPTELAP Option

The OPTELAP option enables you to run offloaded work on the general CP to improve the elapse time when all zIIP engines are busy. When OPTELAP=YES, then MFX will not attempt zIIP offloads when all zIIP engines are busy.

The delivered default is NO.

OUTSPCE Option

The OUTSPCE option designates the amount of space for each secondary extent that MFX will obtain for the output data set(s) if it has not been specified in the JCL.

You can give a specific amount of space (nnnn) for each secondary extent. nnnn will be in tracks, cylinders, or blocks, depending on the type of space specified on the DD statement(s).

If this option is not specified, the default is 16.

Specify nnn% (a value followed by a percent sign) to give a percentage of primary space to be used for each secondary extent in the output data set(s).

Specify 0 to signal that no automatic secondary space is to be obtained for the output data set(s).

PARMEXIT Option

The PARMEXIT option controls whether or not the PARMEXIT facility can be used. To enable the PARMEXIT facility, specify PARMEXIT. The default is not to specify PARMEXIT, and consequently to disable this facility.

OPTELAP =

Figure 57. OPTELAP Format

YES

NO

OUTSPCE =

Figure 58. OUTSPCE Format

nnnn16nnn%0

PARMEXIT

Figure 59. PARMEXIT Format

Syncsort MFX Programmer’s Guide3–32

The PARMEXIT facility provides a means of dynamically modifying PARM values based on conditions at execution time, and requires a user-written program/routine.

The PARMEXIT routine must follow standard IBM linkage conventions. When the routine is entered, register 13 contains the address of a save area that can be used, register 14 contains the address that must be returned to, and register 15 contains the entry point address to the exit. The routine must save registers 2 through 14, and must restore them before control is returned to MFX. No parameter list is passed to the routine.

The routine must pass a return code in register 15: if a PARM is being passed to MFX, the return code must be 0; otherwise, 4. If the routine is passing a PARM field to MFX, a standard parameter list must be created, and the address of a pointer to the PARM field must be loaded into register 1. The four-byte pointer must contain a 1 in the high-order bit and the address of the PARM field in the remaining low-order 31 bits. The first two bytes of the PARM field contain the length of the PARM field (excluding the two-byte length field); the remainder contains text of the same parameters that might otherwise be coded in the PARM field of an MFX EXEC statement. Leading and trailing blanks are permitted in the text; embedded blanks are not. The PARM field passed back to MFX cannot exceed 256 bytes.

Below is an illustration of the format of the PARMEXIT parameter list.

The routine should be written as reentrant, assembled, and link-edited with the RENT option into the main MFX load module library with the load module name of $ORTPARM. The name $ORTPARM may be changed with the PARMNME option.

The parameters passed through the PARMEXIT facility take precedence over the PARM field of the EXEC statement and the parameter list for a program-initiated sort. Parameters presented by means of the $ORTPARM DD statement take precedence over PARMEXIT PARM values.

The PARMEXIT and PARMTABLE facilities are mutually exclusive. If both are specified, only PARMTABLE will be processed.

REGISTER 1 POINTER

ADDRESS OF POINTER 1 ADDRESS OF PARM FIELD

Bit 0 1 31

LENGTH OF PARM TEXT PARM TEXT

Byte 1 Byte 3

Syncsort MFX Programmer’s Guide 3–33

PARMNME Option

The PARMNME option allows you to alter the PARMEXIT or PARMTABLE load module name. The default name is $ORTPARM.

PARMTBLE Option

The PARMTBLE option controls whether or not the PARMTABLE facility can be used. To enable the PARMTABLE facility, specify PARMTBLE. The default is not to specify PARMTBLE, and consequently to disable this facility.

The PARMTABLE facility allows you to alter MFX PARM values depending on the jobname, stepname, and/or procstepname of a sorting application.

To use the PARMTABLE facility, you must construct a load module containing one entry for each jobname/stepname/procstepname combination for which parameters will be specified. However, if you are specifying the same value for all sorts with the same procstepname (no matter what the jobname or stepname) or for all steps that have the same jobname, a single entry is used.

The load module must be a variable-length block of variable-length records, and each entry must be a variable-length record. An entry is composed of four fields. Each of the first three fields is eight bytes long and may contain, respectively, a jobname, a stepname, and a procstepname. The names must be left-justified and initialized with blanks. The fourth field of an entry may have a length from 0 to 256 bytes, and must contain only information that is valid in the PARM field of the sort EXEC job control statement.

Whenever the PARMTABLE facility is used, a comparison is made between the jobname, stepname, and procstepname of the task that is being executed (first three fields of the TIOT) and the first three fields of each entry in the load module table. If a match is found, the PARM data of the matching entry is used in the sort.

A blank (X'40') in the first byte of any of the first three fields of an entry causes that field to be considered equal to the corresponding field in the TIOT. If the first byte of the first field contains X'00', that entry is skipped.

PARMNME =

Figure 60. PARMNME Format

cccccccc$ORTPARM

PARMTBLE

Figure 61. PARMTBLE Format

Syncsort MFX Programmer’s Guide3–34

The table must be assembled and should be link-edited with the RENT option into the main MFX load module library with the load module name of $ORTPARM. The name $ORTPARM can be changed with the PARMNME option.

Figure 62 contains a sample macro definition for constructing a PARM table.

Figure 63 contains a typical assembly for PARMTABLE. Note that all PARMs must be enclosed in single quotation marks.

MACROALTPARM &JNAME=,&SNAME=,&PSNAME=,&PARM=LCLA &COUNT

&COUNT SETA K'&PARMDC AL2(28+&COUNT-2)DC AL2(0)AIF (K'&JNAME NE 0).SK001DC CL8' 'AGO .SK002

.SK001 ANOPDC CL8'&JNAME'

.SK002 ANOPAIF (K'&SNAME NE 0).SK003DC CL8' 'AGO .SK004

.SK003 ANOPDC CL8'&SNAME'

.SK004 ANOPAIF (K'&PSNAME NE 0).SK005DC CL8' 'AGO .SK006

.SK005 ANOPDC CL8'&PSNAME'

.SK006 ANOPDC C&PARMMEND

Figure 62. Sample Macro Definition for PARM Table

Column 72$ORTPARM CSECT

DC AL2(LAST-*)DC AL2(0)ALTPARM JNAME=JOB1,SNAME=STEP2, XPARM='CORE=MAX-10000'ALTPARM PSNAME=SMLSORT,PARM='DYNALLOC=SYS90'ALTPARM JNAME=TESTJOB,PARM='BMSG'

LAST EQU *END

Figure 63. Typical Assembly for PARMTABLE

Syncsort MFX Programmer’s Guide 3–35

The sample assembly establishes a core value for STEP2 of JOB1, a DYNALLOC parameter for the jobs with the procstepname of SMLSORT, and a BMSG parameter for jobs with a jobstepname of TESTJOB.

The parameters passed through the PARMTABLE facility take precedence over the PARM field of the EXEC statement and the parameter list for a program-initiated sort. Parameters presented by means of the $ORTPARM DD statement take precedence over PARMTABLE PARM values.

The PARMTABLE and PARMEXIT facilities have similar functions, but the two facilities are mutually exclusive. Because of this, only PARMTABLE will be processed if both are specified.

PGMIEAL Option

The PGMIEAL option allows program-initiated sorts to use the z/OS IEALIMIT facility when sufficient memory is otherwise unavailable. The default is not to use the IEALIMIT facility in these cases. The IEALIMIT facility is automatically used in JCL sorts when necessary.

PGMRC16 Option

The PGMRC16 option controls whether a user abend 16 or a return code of 16 will be issued when an unsuccessful sort is program-initiated.

If PGMRC16 is specified and an error is detected, MFX will issue a return code of 16 instead of a user abend 16.

If PGMRC16 is not specified and an error is detected in a program-initiated sort, MFX’s response is determined by the setting of the RC16 option.

JCL-initiated sorts are always handled according to the setting of the RC16 option.

PGMIEAL

Figure 64. PGMIEAL Format

PGMRC16

Figure 65. PGMRC16 Format

Syncsort MFX Programmer’s Guide3–36

PORT Option

The PORT option is used to define the TCP port number that will be used to relay an email. The default is 25.

Up to 8 digits can be specified.

This option is required to support the OUTPUT EMAIL feature of the OUTFIL control statement.

PREFIX Option

The PREFIX option allows you to change the prefixes of the DSNAMEs that MAXSORT generates for the intermediate output data sets.

The last character specified must always be a period, and a maximum of 27 other characters may be coded unless the TIMESTMP option is also specified. If TIMESTMP is specified, a maximum of 18 characters plus the final period may be used. TDS. is the default name.

The PREFIX option can be overridden by the BKPTDSN PARM at execution time.

PRINT121 Option

The PRINT121 option controls whether or not MFX is to alter its DCB values for the output message data set (SYSOUT) during JCL-initiated sorts. If you specify PRINT121, the DCB values will be changed as in the figure below.

PORT =

Figure 66. PORT Format

n1…n825

PREFIX =

Figure 67. PREFIX Format

c1…c27TDS.

PRINT121

Figure 68. PRINT121 Format

Syncsort MFX Programmer’s Guide 3–37

The default is not to specify PRINT121, and so not to alter the DCB values for the output message data set. The DCB settings cannot be changed during program-invoked sorts.

RC16 Option

The RC16 option controls whether a user abend 16 or a return code of 16 will be issued for an unsuccessful sort.

If you wish to handle abends differently for JCL and program-initiated sorts, set the RC16 option for JCL-initiated sorts and set the PGMRC16 option for program-initiated sorts.

If you specify RC16=ABE, MFX will issue user abend 16 in the case of an unsuccessful sort. User abend 16 does not produce a dump.

If you specify RC16=NOABE (or NORC16), MFX will issue a return code of 16 when a sort is unsuccessful.

RELEASE Option

From:

DCB=(LRECL=125,BLKSIZE=882,RECFM=VBA)

To:

DCB=(LRECL=121,BLKSIZE=121,RECFM=FA)

Figure 69. DCB Changes When PRINT121 Specified

Figure 70. RC16 Format

RC16ABENOABE

=

NORC16

RELEASE =

Figure 71. RELEASE Format

ONOFF

Syncsort MFX Programmer’s Guide3–38

The RELEASE option controls whether or not excess space on the SORTWK data sets will be released at the end of the input phase during JCL-initiated sorts where DISP=OLD is not specified on the SORTWK DD statement.

If RELEASE=ON is specified, MFX will release the space. This is the default. If RELEASE=OFF is specified, the excess space will not be released.

During a MAXSORT, excess space will be released only if SORTWK space exceeds the MAXWKSP value, and it will be released before the input phase begins.

Note that the RELSAMT option directly affects this option. If the RELSAMT default has not been changed, RELEASE=ON will not take effect unless at least 20 million bytes are sorted.

RELSAMT Option

The RELSAMT option is used to control the release of excess space on the SORTWK data sets. The release is dependent on the amount of data sorted.

Specify an amount of data (nnnnnnnn) in bytes that must be sorted in order for excess SORTWK space to be released. The default is 20 million bytes of data.

RESET Option

The RESET option allows you to prevent VSAM from treating an output file as a DISP=MOD data set if the output VSAM file was created using the REUSE option.

To prevent this type of VSAM processing, specify RESET. If REUSE was not specified when the data set was created, the RESET specification will be ignored and the data set will have output performed to it in a DISP=MOD fashion.

The default is to treat all VSAM output files as DISP=MOD data sets by not specifying RESET.

RELSAMT =

Figure 72. RELSAMT Format

nnnnnnnn20000000

RESET

Figure 73. RESET Format

Syncsort MFX Programmer’s Guide 3–39

RLSOUT Option

The RLSOUT option allows you to control the release of excess disk space on output data set(s) at the end of a sort execution if the data sets were specified with DISP=NEW.

To release the excess space, specify RLSOUT.

The default is not to release the excess space by specifying NORLSOUT.

ROUTCDE Option

The ROUTCDE option allows you to specify up to 16 route codes (n) for MFX messages to the console.

The default is 0.

RSRVJI Option

The RSRVJI option is used to reserve virtual storage below the 16-megabyte line for system or exit requirements during a JCL-initiated sort.

This option will be in effect if the execution time parameter CORE is not passed, or if CORE is set to MAX when it is passed. Information about execution time parameters can be found in the Syncsort MFX Programmer’s Guide.

The amount of storage to be reserved may be specified in bytes (nnnnnnnn) or kilobytes (nK).

The default is 0.

Figure 74. RLSOUT Format

RLSOUTNORLSOUT

ROUTCDE =

Figure 75. ROUTCDE Format

n1 …,n, 16( )0

RSRVJI =

Figure 76. RSRVJI Format

nnnnnnnnnK0

Syncsort MFX Programmer’s Guide3–40

RSRVTI Option

The RSRVTI option is used to reserve virtual storage below the 16-megabyte line for system or program requirements during a program-initiated sort.

This option will be in effect if the execution time parameter CORE is not passed, or if CORE is set to MAX when it is passed. Information about execution time parameters can be found in the Syncsort MFX Programmer’s Guide.

The amount of storage to be reserved may be specified in bytes (nnnnnnnn) or kilobytes (nK).

The default is 44K.

RSRVJIZ Option

The RSRVJIZ option is used to reserve memory above the 2-gigabyte bar for system or exit requirements during a JCL-initiated sort.

Information about the RESERVEZ execution time parameter can be found in the Syncsort MFX Programmer’s Guide.

The amount of memory to be reserved can be specified in a decimal number of G for a gigabyte Memory Object, where G=1073741824 bytes.

For example: RSRVTIZ=253G indicates reserving a 253 gigabyte Memory Object.

The range is 0-255. The default is 0.

RSRVTI =

Figure 77. RSRVTI Format

nnnnnnnnnK44K

RSRVJIZ =

Figure 78. RSRVJIZ Format

nG0

Syncsort MFX Programmer’s Guide 3–41

RSRVTIZ Option

The RSRVTIZ option is used to reserve memory above the 2-gigabyte bar for system or program requirements during a program-initiated sort.

Information about the RESERVEZ execution time parameter can be found in the Syncsort MFX Programmer’s Guide.

The amount of memory to be reserved can be specified in a decimal number of G for a gigabyte Memory Object, where G=1073741824 bytes.

For example: RSRVTIZ=30G indicates reserving a 30 gigabyte Memory Object.

The range is 0-255. The default is 0.

SDB Option

The SDB option specifies whether system-determined blocksize should be used to select an optimal blocksize for SORTOUT, SORTOFxx, SORTOFx, SORTXSUM, and SORTXDUP data sets when none is provided. This parameter will automatically provide a blocksize that will most efficiently utilize the space on the output device.

SDB=ON enables the use of system-determined blocksize for both tape and new or previously allocated but unopened DASD output data sets except in the following conditions:

• A blocksize is found in the JCL DCB BLKSIZE specification or, in the case of a DISP=MOD tape data set, it is derived from an available tape label.

RSRVTIZ =

Figure 79. RSRVTIZ Format

nG0

SDB =

Figure 80. SDB Format

ONOFFDISKONLYTAPEONLYLARGESMALLINPUTLARGEONLYINPUTONLY

Syncsort MFX Programmer’s Guide3–42

• The output file is a VSAM data set.

If the output data set is on DASD, the blocksize selected will be based upon the RECFM and LRECL, either specifically provided or determined from the usual analysis of SORTIN or RECORD statement attributes. For example, the blocksize selected for a blocked output data set assigned to a 3380 or 3390 DASD device will represent a size as close to half-track blocking as possible.

If the output file is a tape data set, the blocksize will be determined from the RECFM and LRECL in conjunction with the following rules:

• RECFM of F or FS: BLKSIZE=LRECL

• RECFM of FB or FBS and LABEL type is not AL: BLKSIZE=highest multiple of LRECL that is less than or equal to 32760.

• RECFM of FB and LABEL type is AL: BLKSIZE=highest multiple of LRECL that is less than or equal to 2048.

• RECFM of V, VS, D: BLKSIZE=LRECL +4

• RECFM of VB, VBS: BLKSIZE=32760

• RECFM of DB: BLKSIZE=2048

If SDB=OFF is specified, MFX will not use system-determined blocksize. The blocksize, if unavailable, will be determined from SORTIN if the SORTIN and output data set LRECLs are the same, otherwise MFX will select an appropriate blocksize.

If SDB=DISKONLY is specified, MFX will use system-determined blocksize only for disk output data sets.

If SDB=TAPEONLY is specified, MFX will use system-determined blocksize only for TAPE output data sets.

SDB=LARGE enables the use of system-determined blocksize for both tape and DASD output data sets, as with SDB=ON. Additionally, SDB=LARGE enables selection of a system-determined blocksize greater than 32760 for eligible tape output data sets if not restricted by the system BLKSZLIM value.

SDB=SMALL has the same meaning as SDB=ON.

SDB=INPUT enables the use of system-determined blocksize for both tape and DASD output data sets, as with SDB=ON. Additionally, if an input tape data set has a blocksize greater than 32760, SDB=INPUT enables selection of a system-determined blocksize greater than 32760 for eligible tape output data sets if not restricted by the system BLKSZLIM value. SDB=INPUT is the default.

SDB=LARGEONLY enables the use of system-determined blocksize for tape output data sets only, as with SDB=TAPEONLY. Additionally, SDB=LARGEONLY enables selection of a system-determined blocksize greater than 32760 for eligible tape output data sets if not restricted by the system BLKSZLIM value.

Syncsort MFX Programmer’s Guide 3–43

SDB=INPUTONLY enables the use of system-determined blocksize for tape output data sets only, as with SDB=TAPEONLY. Additionally, if an input tape data set has a blocksize greater than 32760, SDB=INPUTONLY enables selection of a system-determined blocksize greater than 32760 for eligible tape output data sets if not restricted by the system BLKSZLIM value.

SDBGENR Option

The SDBGENR option specifies whether system-determined blocksize should be used to set an optimal blocksize for SYSUT2 data sets in BetterGener applications when no blocksize is provided. This parameter will automatically provide a blocksize that will most efficiently utilize the space on the output device.

See the SDB option for a description of the parameters, substituting SYSUT1 for SORTIN and SYSUT2 for SORTOUT in the description.

SMF Option

The SMF option controls the MFX SMF facility. This facility allows MFX to generate a user SMF record at the end of each MFX execution to describe how MFX ran. Information such as how much data was sorted, how much virtual storage was used, and how much disk space was allocated is collected. This data can be used to improve the efficiency of subsequent runs of the same sort application.

Specify SMF=ON if you want MFX SMF records to be generated. The default is SMF=OFF, which means that no MFX SMF records will be generated.

SDBGENR =

Figure 81. SDBGENR Format

ONOFFDISKONLYTAPEONLYLARGESMALLINPUTLARGEONLYINPUTONLY

SMF =

Figure 82. SMF Format

( ONOFF

,nnn,208

,S,P,D

)

Syncsort MFX Programmer’s Guide3–44

Use nnn to give an SMF record type number to the MFX SMF record. Specify a decimal number from 128 to 255. If you do not specify a number, 208 will be used.

If S (the default) is specified, MFX will issue the SMFWTM SVC to write the SMF records to the system SMF data set.

If P is specified, MFX will write to the data set defined by the $ORTSTAT DD statement, which must be included in the JCL stream of every sort for which SMF records are to be obtained.

If D is specified, MFX will attempt to write to the data set normally defined by a $ORTSTAT DD statement. If a $ORTSTAT DD statement is not present, MFX will dynamically allocate that DD statement, using the data set name SYS1.SYNCSMF. A data set named SYS1.SYNCSMF must have been previously allocated and catalogued. MFX SMF records will then be written to SYS1.SYNCSMF.

The STATREC option allows you to tell MFX to generate a formatted report from its SMF records. See “STATREC Option” on page 3-48 for complete details.

SOPAD Option

The SOPAD option specifies the action to be taken if the LRECL defined in the JCL for a non-OUTFIL SORTOUT is larger than the SORTIN/SORTINnn LRECL or the internally processed record length when the SORTIN/SORTINnn LRECL is modified by features.

RC0 The delivered default specifies that MFX should issue a WER462I, pad fixed-length output records with binary zeros, and issue a return code of zero.

RC4 Specifies that MFX should issue a WER462I and pad fixed-length output records with binary zeros. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

RC16 Instructs MFX to issue a WER462A message and to terminate processing with a return code of 16.

SOPAD =

Figure 83. SOPAD Format

RC0RC4RC16

Syncsort MFX Programmer’s Guide 3–45

SOPADGN Option

The SOPADGN option specifies the action to be taken in BetterGener applications if the LRECL defined in the JCL for SYSUT2 is larger than the SYSUT1 LRECL or the internally processed record length when the SYSUT1 LRECL is modified by features.

RC0 The delivered default specifies that BetterGener should issue a WER462I, pad fixed-length output records with binary zeros, and issue a return code of zero.

RC4 Specifies that BetterGener should issue a WER462I and pad fixed-length output records with binary zeros. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

IEB Specifies that BetterGener should transfer control to IEBGENER when the SYSUT2 LRECL is larger than the SYSUT1 LRECL.

SORTIME Option

The SORTIME option is used to specify the minimum amount of elapsed time to be consumed by MAXSORT before automatic termination takes place.

Specify the amount of time (n) that should elapse before automatic termination. MAXSORT will take action at the next breakpoint after this amount of time elapses.

Specify OC for operator communication at the breakpoint so that the operator can decide whether to terminate the sort at that breakpoint or to continue until the next breakpoint. If no operator communication is specified, automatic termination will take place at that breakpoint.

The default if you do not specify OC (operator communication) is 1440 minutes or 24 hours. If you specify only OC, the default is 120 minutes or 2 hours. The delivered default is 1440.

SOPADGN =

Figure 84. SOPADGN Format

RC0RC4IEB

SORTIME =

Figure 85. SORTIME Format

(

nn,OC120,OC1440

)

Syncsort MFX Programmer’s Guide3–46

SOTRN Option

The SOTRN option specifies the action to be taken if the LRECL defined in the JCL for a non-OUTFIL SORTOUT is smaller than the SORTIN/SORTINnn LRECL or the internally processed record length when the SORTIN/SORTINnn LRECL is modified by features.

RC0 The delivered default specifies that MFX should issue a WER462I, truncate the output records, and issue a return code of zero.

RC4 Specifies that MFX should issue a WER462I and truncate the output records. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

RC16 Specifies that MFX should issue a WER462A message and terminate pro-cessing with a return code of 16.

SOTRNGN Option

The SOTRNGN option specifies the action to be taken in BetterGener applications if the LRECL defined in the JCL for SYSUT2 is smaller than the SYSUT1 LRECL or the internally processed record length when the SYSUT1 LRECL is modified by features.

RC0 The delivered default specifies that BetterGener should issue a WER462I, truncate the output records, and issue a return code of zero.

RC4 Specifies that BetterGener should issue a WER462I and truncate the output records. A return code of 4 will be issued if not overridden by a higher return code set for another reason.

IEB Specifies that BetterGener should transfer control to IEBGENER when the SYSUT2 LRECL is smaller than the SYSUT1 LRECL.

SOTRN =

Figure 86. SOTRN Format

RC0RC4RC16

SOTRNGN =

Figure 87. SOTRNGN Format

RC0RC4IEB

Syncsort MFX Programmer’s Guide 3–47

STATREC Option

The STATREC option allows you to generate a formatted report based on the data collected for the MFX SMF record.

The format of MFX’s SMF record is laid out in member SMFDSECT. For information about the location of SMFDSECT, see “SMFDSECT Location” on page 2-24.

Specify SYNCSMF (default) if you want MFX to write its statistical data only to an SMF data set.

Specify SYNCSTAT if you want MFX to generate a formatted report of the statistical data.

If SYNCSTAT is specified, a DD statement must be provided in the JCL in the following format:

The module that produces the listing (SYNCSTAT) is always installed when MFX is installed.

The SMF option controls the following:

• Whether or not an MFX SMF record is written

• The type number of the MFX SMF record

• Where the MFX SMF record is written.

For more information, see “SMF Option” on page 3-44.

The following rules will be helpful when setting the SMF and STATREC options:

• If SMF=ON and STATREC=SYNCSTAT, the MFX SMF data will be written to the SMF data set, and the SYNCSTAT report will also be produced.

• If SMF=ON and STATREC=SYNCSMF, the MFX SMF data will be written to the SMF data set, but no SYNCSTAT report will be produced.

• If SMF=OFF and STATREC=SYNCSTAT, no MFX SMF data will be written to the SMF data set, but a SYNCSTAT report will be produced based on the collected data.

STATREC =

Figure 88. STATREC Format

//STATOUT DD SYSOUT=*

Figure 89. DD Statement Format for SYNCSTAT

SYNCSMFSYNCSTAT

Syncsort MFX Programmer’s Guide3–48

• If SMF=OFF and STATREC=SYNCSMF, no MFX SMF data will be written to the SMF data set, and no SYNCSTAT report will be produced.

SUMOVFL Option

The SUMOVFL option specifies the action to be taken if a summed or averaged field overflows or underflows during SUM, DUPKEYS SUM, or DUPKEYS AVG processing.

RC0 The delivered default instructs MFX to issue a WER049I warning message and continue processing. A return code of 0 will be returned if not overrid-den by a higher return code set for another reason. The WER049I will only be issued on the first occurrence of the overflow or underflow.

RC4 Instructs MFX to issue a WER049I warning message and continue process-ing. A return code of 4 will be issued if not overridden by a higher return code set for another reason. The WER049I will only be issued on the first occurrence of the overflow or underflow.

RC16 Instructs MFX to issue a WER049A message and to terminate processing with a return code of 16.

SVC Option

The SVC option is used to assign an SVC number to MFX. An SVC is needed for MFX’s high-performance access methods, optimized DASD performance when using cache devices, and for the key data set facility. It is also used to access the SMFWTM SVC when writing records to the system SMF data set.

The SVC number specified in this option must be valid on your system, and it must be the SVC specified during MFX installation. Failure to provide a valid SVC number for MFX will cause a critical MNOTE to be issued when you are assembling the SYNCMAC macro, and you will be unable to install.

SUMOVFL =

Figure 90. SUMOVFL Format

RC0RC4RC16

SVC =

Figure 91. SVC Format

( nnn109,mmm0,0

)

Syncsort MFX Programmer’s Guide 3–49

You may designate a value from 200 to 255 (nnn) for the SVC number. Be careful to select an SVC number not already in use on your system.

If you use SVC 109, you must also specify a valid router code (mmm) that is not currently defined. The router code may have a value from 200 to 255.

Use the following guidelines when specifying an SVC load module name:

• If SVC=nnn is coded, assign a module name of IGC00nna where the “a” in “nna” corresponds to the last digit of the SVC number with an X'C' in the zone portion of the byte. This is the standard naming convention for a type-3 SVC. For example, if SVC=245 is specified, the load module name would be IGC0024E.

When assigning the SVC an IGC-type module name, a corresponding type-3 SVC slot must be defined via the SVCTABLE SYSGEN macro.

• If SVC=(109,mmm) is coded, assign a module name of IGX00mmm.

In all cases, insure that the load module name you assign does not already exist on your system. If you are converting from a previous MFX release, use a different SVC number for MFX than the one you used for the previous release to facilitate testing.

Although the delivered default is 0 for both the SVC number and the router code, you cannot install MFX unless you substitute a valid SVC number for the delivered default.

SWCRYPT Option

The SWCRYPT parameter specifies whether or not to use encryption for SORTWORK data sets during the SORT process.

SWCRYPT=YES enables the use of encryption for SORTWORK data sets. SORTWORK data sets will only be encrypted when SORTIN or SORTOUT are encrypted, or when neither are present. Otherwise, SORTWORK encryption is disabled.

SWCRYPT=NO disables the use of encryption for SORTWORK data sets.

The delivered default is NO.

SWCRYPT =

Figure 92. SWCRYPT Format

YES

NO

Syncsort MFX Programmer’s Guide3–50

SYNCHOME Option

The SYNCHOME option is used to specify the location of the MFX HFS library under OMVS. This will be created during the installation process by transferring a member to your OMVS environment. You will create a directory named /sshfsj4 or /sshfsj5 or /sshfsj6 or /sshfsj6X, corresponding to your release of the IBM Java SDK for z/OS.

Note that sshfsj6 should be used for release 6 or later releases of the 31-bit Java SDK; whereas, sshfsj6X should be used for all 64-bit releases of the Java SDK. This directory will be under the current directory you are using during the transfer. For example, if your current directory is /u/xxx, and your SDK release is 5.0, you would specify ‘/u/xxx/sshfsj5’ for the SYNCHOME option. For more information, see “STEP 6: Create a zFS Directory (Optional)” on page 2-11.

Up to 256 characters can be specified for the location. The value must be enclosed within single apostrophes.

This option is required to support the OUTPUT feature of the OUTFIL control statement.

The default is a null SYNCHOME.

Note: A single ampersand character (&) is not accepted by the ASMA90 assembler. If you want an ampersand in the SYNCHOME option, use two ampersands (&&).

TAPENME Option

The TAPENME option sets the generic name of the tape unit (cccccccc) that MAXSORT can use for the dynamic allocation of tapes. The default is CART.

The TAPENME option takes effect only when the DYNATAPE option is also specified.

SYNCHOME = 'c1 …c256'

Figure 93. SYNCHOME Format

TAPENME =

Figure 94. TAPENME Format

ccccccccCART

Syncsort MFX Programmer’s Guide 3–51

TIMESTMP Option

The TIMESTMP option will generate a time stamp as part of each data set name of the intermediate output data sets of a MAXSORT.

The time stamp will appear as an index in the data set names in the form “Ddddhhmm.” with ddd the Julian day, hh the hour, and mm the minute.

To generate a time stamp, specify TIMESTMP. The default is not to generate a time stamp by not specifying TIMESTMP.

TITLE Option

The TITLE option allows a user-supplied installation heading of up to 84 characters (c) to be written on the second line of each MFX heading. The default is blanks.

Note: A single ampersand character (&) is not accepted by the ASMA90 assembler. If you want an ampersand in the TITLE option, use two ampersands (&&).

UNINTDS Option

The UNINTDS option indicates how MFX should process a non-VSAM uninitialized DASD SORTIN or SORTINnn data set in a non-SMS environment. An uninitialized data set is one that has been created but never successfully opened and closed for output. In an SMS environment, uninitialized data sets are always processed as valid empty files.

UNINTDS=YES indicates that an uninitialized data set should be processed as an empty file. If an uninitialized multi-volume data set has the DS1IND80 and DS1IND02 flags off in the format-1 DSCB of the first volume and the number of data extents is non-zero, MFX will open the data set for output to set an end-of-file mark before the data set is used for input.

TIMESTMP

Figure 95. TIMESTMP Format

TITLE = 'c1…c84'

Figure 96. TITLE Format

UNINTDS =

Figure 97. UNINTDS Format

YESNO

Syncsort MFX Programmer’s Guide3–52

UNINTDS=NO indicates that MFX should terminate with a WER400A critical message if an uninitialized data set is provided as input on SORTIN or SORTINnn.

UNINTGN Option

The UNINTGN option indicates how MFX’s BetterGener facility should process a non-VSAM uninitialized DASD SYSUT1 data set in a non-SMS environment. An uninitialized data set is one that has been created but never successfully opened and closed for output. In an SMS environment, uninitialized data sets are always processed as valid empty files.

UNINTGN=YES indicates that an uninitialized data set should be processed as an empty file. If an uninitialized multi-volume data set has the DS1IND80 and DS1IND02 flags off in the format-1 DSCB of the first volume and the number of data extents is non-zero, BetterGener will open the data set for output to set an end-of-file mark before the data set is used for input.

UNINTGN=NO indicates that BetterGener should terminate with a WER400A critical message if an uninitialized data set is provided as input on SYSUT1.

IEBGENER will treat an uninitialized data set as an empty data set. If you want to replicate this processing in BetterGener, set UNINTGN=YES. MFX (non-BetterGener) processing of uninitialized data sets can be separately controlled by the UNINTDS installation option.

VLTEST Option

The VLTEST option allows you to do the following when variable-length records are processed:

• Choose the type of record length validity testing to be performed.

• Choose whether or not to verify the correct sequence of segments in variable-length spanned records.

UNINTGN =

Figure 98. UNINTGN Format

YESNO

VLTEST =

Figure 99. VLTEST Format

( n1

,ON,OFF,OFF4

)

Syncsort MFX Programmer’s Guide 3–53

Record length validity testing may be performed in all types of applications: sort, merge, copy, and BetterGener. Segment sequence checking may only be done during sort and merge applications.

The first subparameter of the VLTEST PARM is a number n that instructs MFX in the type of validity testing to be performed on variable-length records. Choosing a validity test instructs MFX to terminate with a critical error (outlined in WER027A, WER160A or WER167A) in the event of an illegal condition.

A primary use of VLTEST is to instruct the sort/merge in the handling of “short” variable-length records, i.e., records not long enough to contain all of the control fields specified in the SORT/MERGE control statement. The delivered default for VLTEST is 1.

When VLTEST is set to an even number, MFX will accept short variable-length records, padding them with binary zeros to the length of the sort key for the sort compare process. In order to prevent system 0C7 abends due to the binary zero padding, the CMP PARM is automatically set to CMP=CLC in these cases. The binary zeros are removed from the record, restoring it to its original state, as the output record is being written.

The second subparameter allows you to specify whether or not MFX should verify that the sequence of segments is correct in each variable-length spanned record during sort and merge applications. ON is the delivered default and signals that the segment sequence should be verified. If OFF is selected, all illogical record segments encountered in the input file will be eliminated and message WER464I will be produced. If OFF4 is selected, the processing described for OFF will occur,

0* No record length validity testing of variable-length records.

1 If any input record does not contain all SORT/MERGE control fields, ter-minate. This is the default.

2* If any input record is longer than the maximum LRECL or l2 value, terminate.

3 If either or both of the conditions in tests 1 and 2 are satisfied, terminate.

4* If any input record is longer than the output LRECL or l3 value, terminate.

5 If either or both of the conditions in test 1 or 4 are satisfied, terminate.

6* If any input record is longer than the maximum input LRECL or l2 value, or longer than the output LRECL or both, terminate.

7 If any of the conditions in test 1, 2, or 4 are satisfied, terminate.

* These values force the use of CMP=CLC for variable-length input.

Table 9. Values of n for VLTEST Option

Syncsort MFX Programmer’s Guide3–54

but in addition if an illogical segment is found, a return code of 4 will be returned if not overridden by a higher return code set for another reason.

The second subparameter does not apply during copy applications. In a copy application, all illogical record segments encountered in the input file will be eliminated.

Note: If an illegal condition is detected during a validity test and segment sequence checking is on, message WER182A will be issued.

VLTESTI Option

The VLTESTI option specifies to MFX how to process variable-length records that do not contain all specified INCLUDE or OMIT fields. VLTESTI applies to regular, OUTFIL, and JOINKEYS INCLUDE/OMIT processing.

The delivered default of 0 instructs MFX to terminate if a record does not completely contain all INCLUDE or OMIT fields. A WER250A critical error message is generated to indicate this condition.

When VLTESTI=1 is specified, a record that does not completely contain all INCLUDE/OMIT fields is treated as having failed the comparison. MFX will omit the record if INCLUDE is being used or include the record if OMIT has been specified.

When VLTESTI=2 is specified, MFX will treat comparisons to fields not completely contained within the record as false and decide a record’s status for inclusion or omission from fields that are available. If all fields are not present, the record will be processed as having failed the comparison. MFX will omit the record if INCLUDE is being used or include the record if OMIT has been specified.

VSAMEMT Option

The VSAMEMT option specifies the processing of empty VSAM data sets provided as input to a sort, merge, or copy.

VLTESTI =

Figure 100. VLTESTI Format

012

VSAMEMT =

Figure 101. VSAMEMT Format

NOYES

Syncsort MFX Programmer’s Guide 3–55

If you specify VSAMEMT=YES, an empty VSAM data set will be processed as a legitimate data set containing 0 records, and MFX will end with a return code of 0.

The delivered default, VSAMEMT=NO, instructs MFX to terminate with a WER254A critical error if an empty VSAM data set is specified for input.

VSCORE Option

The VSCORE option allows you to set the maximum amount of virtual storage below the 16-megabyte line that MFX can use for its working set.

The VSCORE limit cannot be overridden by the execution time parameter CORE. However, it can be overridden by the execution time parameter VSCORE.

Use nnnnnnnn to give the storage limit in bytes, nK to give the storage limit (n) in kilobytes, and nM to give the storage limit (n) in megabytes. The delivered default is 1M.

VSCORET Option

The VSCORET option allows you to set the maximum amount of virtual storage below and above the 16-megabyte line that MFX can use for its working set when MFX’s Dynamic Storage Management (DSM) facility is inactive.

When DSM is active, VSCORET is treated as an initial recommendation.

Without DSM, MFX cannot dynamically adjust its use of virtual storage in response to system activity. For the best performance of MFX and your system, DSM is strongly recommended. If you choose to disable DSM, however, you should determine the VSCORET value based on factors such as the amount of central storage on your system, sort filesize, page activity, and the number of sorts which would typically run concurrently.

Important! Do not disable DSM without first contacting Precisely Support for advice on setting this option.

VSCORE =

Figure 102. VSCORE Format

nnnnnnnnnKnM1M

VSCORET =

Figure 103. VSCORET Format

nnnnnnnnnKnM6M

Syncsort MFX Programmer’s Guide3–56

The VSCORET limit cannot be overridden by the execution time parameter CORE. However, it can be overridden by the execution time parameter VSCORET.

The VSCORET value cannot be less than the value set in the VSCORE option.

Use nnnnnnnn to give the storage limit in bytes, nK to give the storage limit (n) in kilobytes, and nM to give the storage limit (n) in megabytes. The delivered default is 6M.

WKSPCE Option

The WKSPCE option allows you to specify the amount of space for each secondary extent that MFX will obtain for each SORTWK disk data set if no secondary allocation is specified in the JCL SPACE parameter.

Use cccccccc to give an absolute quantity in cylinders. The default is 10 cylinders, and only sorts with primary allocations specified in cylinders are affected.

Use tttttttt to give an absolute quantity in tracks. The default is 200 tracks, and only sorts with primary allocations specified in tracks are affected.

Use bbbbbbbb to give an absolute quantity in blocks. The default is 400 blocks, and only sorts with primary allocations specified in blocks are affected.

When present, the ppp% subparameter is used to override the defaults for cylinders, tracks, and blocks. It sets the percentage (ppp) of the primary allocation that is to be allocated as space for each secondary extent.

The following rules are important when using ppp%:

• The percent sign (%) must be specified. For example, 80% is a valid value for ppp%.

• It is illegal to specify ppp% unless at least one of the other subparameters is omitted. For example, to request cylinder allocations of 15 secondary cylinders, track allocations of 200 tracks, and block allocations of an additional 20% in work space, specify WKSPCE=(15,200,,20%). Note that, even though 200 is the default for tttttttt, it must be specified here because all defaults are overridden when ppp% is present. A percentage of the primary allocation is used instead.

• The ppp% parameter itself has no default value. When ppp% is omitted, any other omitted subparameter receives the default value indicated and no percentage is taken.

WKSPCE =

Figure 104. WKSPCE Format

( cccccccc10

,tttttttt,200

,bbbbbbbb,400

,ppp%[ ] )

Syncsort MFX Programmer’s Guide 3–57

ZDPRINT Option

The ZDPRINT option applies to the SUM, DUPKEYS SUM, and DUPKEYS AVG features.

ZDPRINT specifies if positive ZD summed or averaged results are to be converted to printable numbers. This option controls the handling of ZD fields specified on a SUM or DUPKEYS control statement.

ZDPRINT determines whether the sign byte of a positive summed or averaged ZD field will be converted to a printable format. More precisely, the option specifies whether the zone of the last digit should be changed from a hexadecimal C to a hexadecimal F.

ZDPRINT=YES, the default, enables the conversion of positive ZD summed or averaged results to printable numbers.

ZDPRINT=NO will prevent the conversion of a positive ZD summed or averaged result to a printable number.

ZIIPPCT Option

The ZIIPPCT option enables you to define the zIIP offload percentage. The zIIP percentage valid value nn is in the range of 1-100. The default percent is 100.

ZDPRINT =

Figure 105. ZDPRINT Format

YESNO

ZIIPPCT =

Figure 106. ZIIPPCT Format

nn

100

Syncsort MFX Programmer’s Guide3–58

SYNCLIST Report ProgramThe SYNCLIST report program is an aid to MFX installation and maintenance. It produces a formatted listing of the current status of MFX which includes:

• All installation default options in effect

• All Special Customer Options (SCOs) applied

• The current maintenance (TPF) level

• System environmental information

• A PARASORT configuration report and esoteric unit name table

SYNCLIST may be used to determine all the current MFX options prior to installing a new release of MFX.

SYNCLIST is automatically installed during MFX installation.

Job Control LanguageThe following two examples show sample executions of SYNCLIST when MFX load modules appear in a PDS and a PDSE:

Notes:

1. The STEPLIB DD statement in Figure 107 (PDS) is not required if the SYNCLINK library is in the system link list. In Figure 108 (PDSE), the STEPLIB DD can be removed if the modules in both the SYNCLINK and

//STEP EXEC PGM=SYNCLIST//STEPLIB DD DSN=SYNCSORT.MFX.R31.SYNCLINK,DISP=SHR//SYSPRINT DD SYSOUT=*//SYSLIB DD DSN=SYNCSORT.MFX.R31.SYNCLINK,DISP=SHR// DD DSN=SYNCSORT.MFX.R31.SYNCRENT,DISP=SHR

Figure 107. JCL when Load Modules are in a PDS

//STEP EXEC PGM=SYNCLIST,PARM=(,NOSYSLIB)//STEPLIB DD DSN=SYNCSORT.MFX.R31.SYNCLINK,DISP=SHR// DD DSN=SYNCSORT.MFX.R31.SYNCRENT,DISP=SHR//SYSPRINT DD SYSOUT=*

Figure 108. JCL when Load Modules are in a PDSE

Syncsort MFX Programmer’s Guide 3–59

SYNCRENT libraries are locatable through the system link list and LPA list search.

2. The SYSPRINT DD statement assigns the SYNCLIST report to the output device associated with class *.

3. In Figure 107 (PDS), the SYSLIB DD statement concatenates the SYNCLINK and SYNCRENT libraries for which a SYNCLIST report is desired.

Options in EffectWhen SYNCLIST is executed, it will display the default installation options in effect. For Syncsort MFX, the options can come from a library specified in a PARMLIB MFXPRM member, or the options can come from the MFX load library. Options loaded from an MFXPRM library take precedence over options in the MFX load library. If you want to force SYNCLIST to display the options from the MFX load library that is a PDS, specify PARM=(,USELIB) on the EXEC PGM=SYNCLIST statement in Figure 107. For a PDSE, specify PARM=(,NOSYSLIB,USELIB) in Figure 108.

PARM Values for the Systems ProgrammerThere are many PARM values that the applications programmer can use to control the execution of MFX. These parameters are described in the Syncsort MFX Programmer’s Guide. In addition, several PARMs are useful to the systems programmer. For convenience, these parameters are listed and described briefly below.

Systems programmers can enter PARM values through any of the following:

• The PARM field of the EXEC statement of a JCL-initiated sort

• The $ORTPARM data set

• The PARMEXIT facility

• The PARMTABLE facility

Most of the parameters mentioned in this section have default settings that can be changed through the options in the SYNCMAC macro. However, in some cases, the spelling differs slightly.

Maintenance PARM ValuesYou may need to pass the options in the following list for special circumstances or during maintenance. Complete information on these options is given earlier in this chapter unless otherwise noted in the list.

Syncsort MFX Programmer’s Guide3–60

• ASR

ASR=OFF disables MFX’s Automatic Sort Retry facility. For more information on this facility, see “Chapter 6, Debugging”.

• EMSPACE

EMSPACE sets the amount of virtual storage below the 16-megabyte line that MFX is to reserve when it is executing. EMSPACE is specified in bytes (nnnnnnnn) or kilobytes (nK).

• MINCORE

MINCORE specifies the minimum virtual storage for MFX in bytes (nnnnnnnn) or kilobytes (nK). It is needed when you are executing an MFX job with a large number of control statements.

• ROUTCDE

ROUTCDE sets the route code that MFX will use to send messages to the console.

• SVC

SVC allows you to set the MFX SVC number along with a router code.

Performance PARM ValuesThe options in the following list are normally passed as PARMs for performance tuning. Complete information on these options is given earlier in this chapter unless otherwise noted in the list.

• Optimization modes

You may pass one of four PARMs to reset MFX’s optimization mode. BALANCE tells MFX to provide the best balance of CPU time, sort elapsed time, and I/O activity. CPU tells MFX to minimize CPU time, ELAP tells MFX to minimize elapsed time, and IO tells MFX to minimize its I/O activity. For a complete explanation of these values, see “DSM and DSMWEND Options” on page 3-8.

• BMSG

Passing this PARM causes MFX to print a number of optional B-type messages, which are useful for tuning purposes.

• STATREC

A PARM of STATREC=SYNCSTAT directs MFX to produce a formatted report of its SMF data. The delivered default (SYNCSMF) disables the generation of this report.

• STGPCT

STGPCT sets the maximum percentage of available storage that MFX can use for processing and overrides the value specified in the fifth subparameter of the

Syncsort MFX Programmer’s Guide 3–61

SYNCMAC DSM and DSMWEND options. Specify STGPCT=n where the valid range of n is from 1 through 95.

This parameter is ignored if the SYNCMAC installation option DSMALTST is set to NO.

No messages are generated if this parameter is disabled or limited by installation defaults.

• VSCORE

VSCORE sets the maximum amount of virtual storage below the 16-megabyte line that MFX can use for its working set. Virtual storage can be specified in bytes (nnnnnnnn), kilobytes (nK), or megabytes (nM).

• VSCORET

VSCORET sets the maximum amount of virtual storage below and above the 16-megabyte line that MFX can use for its working set when DSM is inactive. Virtual storage can be specified in bytes (nnnnnnnn), kilobytes (nK), or megabytes (nM).

MAXSORT PARM ValuesThe PARMS in the following list can be passed during a MAXSORT.

• BKPTTIME

The values for BKPTTIME are the same as those for the BRKPTIM option. See “BRKPTIM Option” on page 3-4.

• MAXMERGE

The values for MAXMERGE are the same as those for the MAXMERG option. See “MAXMERG Option” on page 3-24.

• MINMERGE

The values for MINMERGE are the same as those for the MINMERG option. See “MINMERG Option” on page 3-26.

• SORTTIME

The values for the SORTTIME are the same as those for the SORTIME option. See “SORTIME Option” on page 3-46.

Syncsort MFX Programmer’s Guide3–62

Changing Default Option SettingsTo change the default values of MFX options, you must use Method 1 or Method 2 below which respectively relates to the two methods described in “STEP 12: Set and Install the MFX Options” on page 2-13.

Method 1.

• This method is very similar to the one described in “STEP 12: Set and Install the MFX Options” on page 2-13. The only difference is that you must provide a new USERMOD name and supersede the old USERMOD name. For example, if your original USERMOD was named SZSS310 then make the new USERMOD be named SZSS311. Copy the old MCS USERMOD statements and update them as shown in bold italics in the following example:

• Next you must make the changes needed to the option values in the source code below the ++SRC(QKSYVEC) statement in Figure 109.

• Do a RECEIVE and an APPLY of the new USERMOD, which will result in an assembly and link-edit of your new settings.

• Skip to the next item if your changed values do not include the SVC option. Otherwise, do the following which relate to a change to the SVC option:

a. Rename the SVC module in accordance with the IBM SVC naming convention. Use an online facility such as ISPF/PDF to rename the SVC module, which resides as a member in our library named SYNCSORT.MFX.R31.SYNCLPA.

b. To update your CSI with the load module renaming described above, edit and submit member SS31RNMS in the sample JCL library. The member SS31RNMS contains UCLIN commands that will update the LMOD entry in your CSI so it corresponds to the new SVC number.

c. Add or update the SVC definition for your new number in member IEASVCxx in SYS1.PARMLIB if you have chosen an SVC number from

++USERMOD(SZSS311).++VER(Z038) FMID(BSSIZ31) SUP(SZSS310).++SRC(QKSYVEC).SYNCSORT SYNCMAC X

ALTMSG=SYSOUT, XALTPARM=$ORTPARM, X. X. X. XEND

Figure 109. Sample MCS Statements

Syncsort MFX Programmer’s Guide 3–63

200 through 255. Updating IEASVCxx is not required when your SVC number is 109 with a route code.

• You must refresh LLA to allow the system to find the load module that has your new option values.

Note: If you changed the SVC option and your operating system is z/OS 1.13.0, then you can use the SETPROG LPA system command to load the renamed SVC into LPA. If you have an earlier operating system, then a change of the SVC number normally requires an IPL.

Method 2.

• This method assumes you have a currently active options load module that was specified in an MFXPRMxx member. In addition, you resubmitted the sample JCL member SS31OMFX to assemble and link an alternate options load module having a different set of values. The alternate library and load module are specified in the separate MFXPRMyy PARMLIB member.

You can switch the options from the current to the alternate by using the MFXOPT ACT command described in “Method 2a – Default Option PARMLIB” on page 2-14, specifying the MFXPRMyy suffix to provide the location of the load module that you want activated.

Note: If your alternate MFXPRMyy PARMLIB member specifies an options load module containing a different SVC number than the one being deactivated then you need to rename the SVC module in accordance with the IBM SVC naming convention. If your operating system is z/OS 1.13.0, then you can use the SETPROG LPA system command to load the renamed SVC into LPA. If you have an earlier operating system, then changing the SVC number normally requires an IPL.

Syncsort MFX Programmer’s Guide3–64

Chapter 4 BetterGener Utility Program

The BetterGener utility program offers improved performance over IEBGENER in straight copy tasks and is transparent to users when it is installed with MFX.

Implementing BetterGener will provide significant savings in system resources such as elapsed time, CPU time, and channel utilization through improved I/O handling.

Once BetterGener is activated, eligible IEBGENER job streams are automatically processed by MFX. There is no need to replace working IEBGENER job streams with explicit requests for MFX’s more efficient copying. BetterGener’s SYNCGENR module will intercept calls to IEBGENER and determine whether the particular copy application should be processed by MFX. In situations supported by MFX, SYNCGENR will link to the sort, generating the environment of a program-initiated sort execution. In situations not supported by MFX, SYNCGENR will transfer control to IEBGENER.

4–1Syncsort MFX Programmer’s Guide

Eligibility for MFX ProcessingCertain IEBGENER job streams are not eligible for MFX processing. For instance, IEBGENER SYSIN control statements are not supported by MFX. Under such circumstances, SYNCGENR will transfer control to IEBGENR, which is the standard alias for IEBGENER.

BetterGener will also process applications not supported by IEBGENER. Automatic padding of fixed-length records and truncation of fixed and variable-length records will be done when necessary, based upon SYSUT2 LRECL. Incomplete SYSUT2 DCB specifications will be processed consistent with MFX use. This means that output data set DCB attributes will always be well defined, which is not always true when IEBGENER is used. Support for VSAM data sets is also provided.

BetterGener may require approximately 200K more memory than IEBGENER.

Figure 110. BetterGener Processing Flow

Syncsort MFX Programmer’s Guide4–2

Activating BetterGenerBetterGener requires that a system search for program IEBGENER find the IEBGENER module in the MFX SYNCLINK library ahead of the IEBGENER module in SYS1.LINKLIB. Therefore you need to do one of the 3 alternatives mentioned in “STEP 18: Put MFX into Production” on page 2-18.

BetterGener OptionsThere are five MFX default options specifically designed for BetterGener. Further information and the syntax of these options can be found in “Chapter 3, Default Options”. The five options are:

• MSGGENR indicates where messages are to be routed.

• SDBGENR controls the use of system determined blocksize for SYSUT2.

• UNINTGN indicates how an uninitialized SYSUT1 data set is to be processed.

• SOPADGN specifies the action to be taken in BetterGener applications if the LRECL defined in the JCL for SYSUT2 is larger than the SYSUT1 LRECL or the internally processed record length when the SYSUT1 LRECL is modified by features.

• SOTRNGN specifies the action to be taken in BetterGener applications if the LRECL defined in the JCL for SYSUT2 is smaller than the SYSUT1 LRECL or the internally processed record length when the SYSUT1 LRECL is modified by features.

Using $ORTPARM with BetterGenerActivating BetterGener provides additional “IEBGENER” editing capability by permitting the inclusion of the $ORTPARM DD statement in IEBGENER job streams. In order for the contents of the $ORTPARM data set to affect the copy execution, the copy must be done through MFX; if SYNCGENR transfers control to IEBGENER, the $ORTPARM DD statement is ignored. Therefore, whenever MFX file editing is crucial to a copy application, explicit FIELDS=COPY MFX coding should be used. Here is an example of such a jobstream:

Syncsort MFX Programmer’s Guide 4–3

In this example, $ORTPARM acts to right-pad the first (8-byte) field of the record with 10 blanks, truncating the final 10 bytes, if MFX is executed. If, however, BetterGener routes the job back to IEBGENER, no padding or truncation is done.

BetterGener Error MessagesWhen BetterGener is activated, IEBGENER job streams may issue MFX error messages. MFX messages can be identified by the WER prefixed to the message number.

// EXEC PGM=IEBGENER//SYSPRINT DD SYSOUT=*//SYSUT1 DD DSN=OLDTAPE,UNIT=TAPE,// DISP=OLD,VOL=SER=000629,// DCB=(RECFM=F,LRECL=80,BLKSIZE=80)//SYSUT2 DD DSN=NEWDISK,UNIT=3390,DISP=(NEW,KEEP),// VOL=SER=001492,SPACE=(CYL,(2,1,1)),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=)//SYSIN DD DUMMY//$ORTPARM DD *INREC FIELDS=(1,8,10X,9,62)

/*

Figure 111. Sample Job Where MFX Must Be Used

Syncsort MFX Programmer’s Guide4–4

Chapter 5 PARASORT

PARASORT improves elapsed time performance for sorts whose input is a multi-volume tape data set and/or concatenated tape data sets. Reduced elapsed time can help critical sort applications achieve batch window goals.

The performance improvement from PARASORT is a result of processing the SORTIN input volumes in a parallel fashion. Depending upon the resources provided, elapsed time can be reduced up to 20% for 2-way input and up to 33% for 4-way input.

PARASORT requires additional tape units for the application. You will need from two to eight times the current number of tape units, depending upon resource availability and the degree of improvement desired. PARASORT automatically manages the tape units and minimizes the use of the tape drive resources by deallocating excess tape drives during initialization and releasing all the extra units at the end of the sort input phase.

The additional tape units are defined to PARASORT on up to four DDs labeled SORTPAR1, SORTPAR2, SORTPAR3, and SORTPAR4. A segment of SORTIN will be read in parallel from each of these DDs. The segmentation of SORTIN is automatic.

Creating PARASORT Esoteric Unit NamesIncreased parallel input processing (up to four SORTPARn DDs) increases the elapsed time benefit. However, for optimal PARASORT performance, MFX must be able to read each SORTPARn input DD simultaneously with no channel contention.

Generally, the normal allocation of tape drives will not ensure sufficient channel path availability, particularly for a 4-way PARASORT (four SORTPARn DD statements). Therefore, you may need to create special esoteric unit names for

5–1Syncsort MFX Programmer’s Guide

PARASORT. Assigning certain groups of drives to each esoteric unit name used in the PARASORT JCL will in most cases ensure the required channel separation.

The procedure for creating PARASORT esoteric unit names consists of three steps:

1. Run the SYNCLIST report program to create a report of available tape drives and potential esoteric unit names.

2. Implement the esoteric unit names in the report.

3. Distribute the esoteric unit name table to developers of PARASORT applications.

The following three sections describe the steps in detail.

STEP 1: Examine the PARASORT Report Generated by SYNCLIST

The SYNCLIST report program executed as part of the normal MFX installation process generates a report that includes a PARASORT report to aid you in creating esoteric unit names for PARASORT.

If you don’t have a copy of the SYNCLIST report on hand, or if you later need to regenerate the PARASORT report for a changed system configuration, simply run the SYNCLIST report program. The following shows sample JCL to execute SYNCLIST:

For more information on SYNCLIST, see “SYNCLIST Report Program” on page 3-59.

The PARASORT report, which appears in the SYNCLIST report after the “Environmental / Control Block Information” section, provides information in two forms:

• The body of the report is for system programmers. It lists the configuration of the available tape drives along with suggestions for esoteric unit names for each device type and for each type of multiple input (2, 3, or 4 SORTPARn DD statements). The suggested esoteric unit names appear in quotes.

• The conclusion of the report is a table for distribution to PARASORT application programmers. The table displays the exact esoteric unit names that must be used in PARASORT applications.

//STEP1 EXEC PGM=SYNCLIST//STEPLIB DD DSN=SYNCSORT.R31.SYNCLINK,DISP=SHR//SYSPRINT DD SYSOUT=*//SYSLIB DD DSN=SYNCSORT.R31.SYNCLINK,DISP=SHR// DD DSN=SYNCSORT.R31.SYNCRENT,DISP=SHR

Figure 112. Sample JCL to Execute SYNCLIST

Syncsort MFX Programmer’s Guide5–2

The report is generated twice, under the headings “PART 1: ONLINE AND OFFLINE DRIVES” and “PART 2: ONLINE DRIVES ONLY.”

The following shows a sample PARASORT report generated by SYNCLIST:

SYNCSORT PARASORT CONFIGURATION REPORTCPU SERIAL 123456 01/18/2009

PART 1: ONLINE AND OFFLINE DRIVES---------------------------------

3420 TYPE DRIVES

AVAILABLE STRINGS AND ASSOCIATED CHANNEL PATHSDRIVES 0120-012F, CHP=21DRIVES 0220-022F, CHP=22DRIVES 0320-032F, CHP=23DRIVES 0420-042F, CHP=24DRIVES 0520-052F, CHP=25DRIVES 0620-062F, CHP=26DRIVES 0720-072F, CHP=27DRIVES 0820-082F, CHP=28

SUGGESTED ESOTERIC UNIT NAME ASSIGNMENTSFOR 4-WAY INPUT:

"PAR241": 0120-012F,0220-022F"PAR242": 0320-032F,0420-042F"PAR243": 0520-052F,0620-062F"PAR244": 0720-072F,0820-082F

FOR 3-WAY INPUT:"PAR231": 0120-012F,0220-022F,0320-032F"PAR232": 0420-042F,0520-052F,0620-062F"PAR233": 0720-072F,0820-082F

FOR 2-WAY INPUT:"PAR221": 0120-012F,0220-022F,0320-032F,0420-042F"PAR222": 0520-052F,0620-062F,0720-072F,0820-082F

3480/3490 TYPE DRIVES

AVAILABLE STRINGS AND ASSOCIATED CHANNEL PATHSDRIVES 0140-014F, CHP=4142DRIVES 0240-024F, CHP=4344

SUGGESTED ESOTERIC UNIT NAME ASSIGNMENTSFOR 4-WAY INPUT:

"PAR441": 0140-014F"PAR442": 0140-014F"PAR443": 0240-024F"PAR444": 0240-024F

Figure 113. (Page 1 of 3)Sample PARASORT Report from SYNCLIST Output

Syncsort MFX Programmer’s Guide 5–3

FOR 3-WAY INPUT:"PAR431": 0140-014F,0240-024F"PAR432": 0140-014F"PAR433": 0240-024F

FOR 2-WAY INPUT:"PAR421": 0140-014F,0240-024F"PAR422": 0140-014F,0240-024F

3490E TYPE DRIVES

AVAILABLE STRINGS AND ASSOCIATED CHANNEL PATHSDRIVES 01E0-01EF, CHP=E1E2E3E4

SUGGESTED ESOTERIC UNIT NAME ASSIGNMENTSFOR 4-WAY INPUT:

"PARE41": 01E0-01EF"PARE42": 01E0-01EF"PARE43": 01E0-01EF"PARE44": 01E0-01EF

FOR 3-WAY INPUT:"PARE31": 01E0-01EF"PARE32": 01E0-01EF"PARE33": 01E0-01EF

FOR 2-WAY INPUT:"PARE21": 01E0-01EF"PARE22": 01E0-01EF

3590 TYPE DRIVES

AVAILABLE STRINGS AND ASSOCIATED CHANNEL PATHS DRIVES 0150-015F, CHP=0102

4-WAY PARASORT NOT POSSIBLE WITH 3590 TYPE DRIVES3-WAY PARASORT NOT POSSIBLE WITH 3590 TYPE DRIVESSUGGESTED ESOTERIC UNIT NAME ASSIGNMENTSFOR 2-WAY INPUT:

"PAR521": 0150-015F"PAR522": 0150-015F

Figure 113. (Page 2 of 3)Sample PARASORT Report from SYNCLIST Output

Syncsort MFX Programmer’s Guide5–4

Only the first few lines of Part 2 are shown in the sample report above. Part 2 is identical in format to Part 1. In general, Part 2 will list fewer drives than Part 1, since Part 2 lists only online drives, while Part 1 lists both online and offline drives.

The suggested esoteric unit names are within quotes (for example, “PAR241"). To comply with standards at your site, you may need to use esoteric unit names different from the suggested names.

The PARASORT esoteric unit name definitions ensure the required channel separation in most cases. You assign the indicated device strings to the names as described in STEP 2, below.

Even if all units within a device type already provide sufficient channel separation, it is recommended that you implement the PARASORT esoteric unit names and use them in your PARASORT applications. Doing so will allow you to respond easily to system configuration changes. If you use non-esoteric unit names in the JCL for your PARASORT applications (for example, “3480") and your tape configuration changes, the non-esoteric unit names may no longer provide

SYNCSORT PARASORT ESOTERIC UNIT NAME TABLECPU SERIAL 123456 01/18/2009

PART 1: ONLINE AND OFFLINE DRIVES---------------------------------

3420 3480/90 3490E 3590|----------|----------|----------|----------|

4-WAY | PAR241 | PAR441 | PARE41 | NOT |INPUT | PAR242 | PAR442 | PARE42 | POSSIBLE |

| PAR243 | PAR443 | PARE43 | || PAR244 | PAR444 | PARE44 | ||----------|----------|----------|----------|

3-WAY | PAR231 | PAR431 | PARE31 | NOT |INPUT | PAR232 | PAR432 | PARE32 | POSSIBLE |

| PAR233 | PAR433 | PARE33 | ||----------|----------|----------|----------|

2-WAY | PAR221 | PAR421 | PARE21 | PAR521 |INPUT | PAR222 | PAR422 | PARE22 | PAR522 |

|----------|----------|----------|----------|

SYNCSORT PARASORT CONFIGURATION REPORTCPU SERIAL 123456 01/18/2009

PART 2: ONLINE DRIVES ONLY---------------------------------

.

.

.

Figure 113. (Page 3 of 3)Sample PARASORT Report from SYNCLIST Output

Syncsort MFX Programmer’s Guide 5–5

sufficient channel separation. You would then need to change the JCL for all your PARASORT applications. On the other hand, if you use PARASORT esoteric unit names in all your PARASORT JCL, you don’t have to modify that JCL. Simply change the esoteric unit name definitions. Do this by repeating the 3-step procedure for creating PARASORT esoteric unit names.

If there are insufficient channel paths available to run PARASORT using a particular tape device type, the report will indicate “NOT POSSIBLE” for that device. In certain cases, 4-way input may not be possible, but 3-way or 2-way input may be possible. For instance, there are only two available channel paths for 3590 devices in the sample report. This implies that only a PARASORT with 2-way input (SORTPAR1 DD and SORTPAR2 DD) may be used on those devices. Thus, only two esoteric unit names would need to be defined for 3590 drives.

If you want all tape drives to be available for PARASORT, then use Part 1 of the report, “ONLINE AND OFFLINE DRIVES”. If you want to make only the online drives available for PARASORT, then use only Part 2 of the report, “ONLINE DRIVES ONLY.”

Check that the drives listed in the part of the report you will use are acceptable to you for use by PARASORT. If they are acceptable, skip the following section, “Generating a Customized Report,” and go to “STEP 2: Implement the Esoteric Unit Names” on page 5-7.

Generating a Customized Report

If you find that the report you want to use lists unacceptable drives, then you must generate a customized report that includes only the acceptable drives. However, you cannot simply drop the unacceptable drives from the esoteric unit name assignments. Doing so may invalidate the desired channel separation. Instead, use the following procedure to generate a new, customized report.

1. Rerun SYNCLIST, adding a new PARAOUT DD statement that defines a sequential data set or a partitioned data set member. A list of all tape drive unit numbers (one 10-byte record for each drive) will be written to PARAOUT, which may have any DSN. The following shows sample JCL for the PARAOUT DD statement:

//PARAOUT DD DSN=parasort.drives,DISP=(,CATLG),// UNIT=SYSDA,SPACE=(TRK,(1,1))

or

//PARAOUT DD DSN=my_dsn(drives),DISP=OLD//* must be RECFM=FB,LRECL=10

Figure 114. Sample JCL for PARAOUT DD Statement

Syncsort MFX Programmer’s Guide5–6

2. Edit the PARAOUT DD data set or member to remove all drive numbers that are not eligible for PARASORT use. Simply delete the lines containing the drive numbers of ineligible drives. Do not make any other editing changes.

3. Change the SYNCLIST JCL so that it will read the PARAOUT DD. To do this, change the PARAOUT DD to PARAIN. The following example shows JCL for the PARAIN DD statement:

The PARASORT report will be regenerated using only the drives listed in the PARAIN DD statement. The new report will contain only one part since you have specified all the acceptable drives.

STEP 2: Implement the Esoteric Unit NamesThe PARASORT esoteric unit name definitions may be implemented by using either the HCD process or an IOGEN. You will then be able to create PARASORT applications with the appropriate esoteric unit names.

STEP 3: Distribute the PARASORT Esoteric Unit Name Table to Programmers

A table, headed “SYNCSORT PARASORT ESOTERIC UNIT NAME TABLE,” is printed at the end of each part (Part 1 and Part 2) of the PARASORT report. It is also printed at the end of any customized PARASORT report you generate.

The table should display the exact unit names application programmers must use on the SORTIN and SORTPARn DD statements for a PARASORT application. Once you have implemented the suggested esoteric unit name definitions, distribute the appropriate table (from Part 1, Part 2, or customized report) to PARASORT application developers.

If you like, you can change the esoteric unit names from the suggested names before distributing the table.

Responding to System Configuration Changes

If the tape configuration at your installation changes, you may need to change the esoteric unit name definitions to ensure continued channel separation for PARASORT. To do this, simply repeat the 3-step procedure just described.

//PARAIN DD DSN=parasort.drives,DISP=SHR

or

//PARAIN DD DSN=my_dsn(drives),DISP=SHR

Figure 115. Sample JCL for PARAIN DD Statement

Syncsort MFX Programmer’s Guide 5–7

Syncsort MFX Programmer’s Guide5–8

Chapter 6 Debugging

This chapter contains debugging information for both MFX and for global Dynamic Storage Management (DSM).

Automatic Sort Retry FacilityWhenever possible, MFX will automatically retry a sort that fails because of an MFX internal error or certain system abends. The retry facility requires no JCL specifications or other intervention.

When an error occurs in an execution of MFX, the retry facility automatically sends messages to the console and to the unsuccessful sort’s SYSOUT listing. These are messages WER426I and WER427I, and they say that an exception has occurred and that a recovery attempt is in progress. For more specific information, see the MFX message dialog (SS31MSG) or the message section of the Syncsort MFX Programmer’s Guide.

MFX Termination MessageIf any abend occurs while MFX’s STAE or ESTAE is in effect, the following message will be received:

WER999A jobname,stepname,procstepname - UNSUCCESSFUL SORT xxxx y

Figure 116. MFX Termination Message

6–1Syncsort MFX Programmer’s Guide

xxxx is the abend code, and y can have the value “S” (system abend), “U” (user abend), or “W” (internally detected MFX error). The presence of the message does not necessarily mean that MFX was responsible for the error. Since STAE or ESTAE enables MFX to gain control in the event of any abend, the error may have occurred in a user program or the operating system, or in MFX itself.

DumpsIf a SYSUDUMP or SYSABEND dump is produced, it should be interpreted as it would for any other program that issues a STAE or ESTAE. In particular, the ACTIVE RB chain is valid and represents the best source of the PSW and general registers at the time the error was detected.

The MFX STAE/ESTAE routine can generate a SNAP dump with ID=255 for system abends and ID=nnn for internally detected errors, where “nnn” is the internal error number in decimal. This dump will be written to SYSUDUMP, SYSABEND, SPYSET, or the message data set (whose DDNAME is generally SYSOUT), depending on which is present.

Unlike in a system dump, the PSW AT ENTRY TO SNAP is meaningless for debugging purposes. Since MFX has detected an error and forced an abend, the registers may or may not be of use. If the termination was caused by a system abend, the PSW in the appropriate RB will be accurate as in any other system abend. However, if the termination was caused deliberately by MFX, the PSW will not be useful. This will be the case if the error code in the WER999A message ends with a “W” or if the error code is a 1000-series user abend (for example, 1024 U).

DEBUG Parm FacilityCertain MFX-detected errors simply produce an error message. In some of these cases, it may be useful to produce a dump for better diagnosis.

If RC16=ABE is set, a user abend 16 will be produced in case of an error, but no dump will be generated. In such cases, the diagnostic parameter DEBUG may be used to produce a SNAP dump (that is, a dump before any cleanup has taken place). DEBUG will also cause the sort to issue a user abend 16.

In the case of a system abend, a dump will be produced regardless of the parameters that are in effect. Should DEBUG be specified in this case, two dumps may be produced: a SNAP dump and the usual system dump. Both dumps generally have the same content.

In addition to a dump, DEBUG produces a listing of internal variables after each of the main phases, which may be useful to Precisely Support. The listing is produced

Syncsort MFX Programmer’s Guide6–2

on the SPYSET data set, if present. If only SYSOUT is present, the listing will not be produced, but the SNAP dump may be produced. To guarantee that both the listing and the dump will be produced, you must supply a SPYSET DD statement in the step. A SYSABEND statement will result in a full system dump, including a dump of the nucleus.

The DEBUG parm may be specified through any of the usual methods: EXEC parmlist, alternate parm facility ($ORTPARM), PARMTABLE, or PARMEXIT.

Error Handling in Global DSMMFX jobs will generally complete normally when a critical error or abend occurs in global DSM. The active MFX job will detect that global DSM is no longer available and will continue processing without attempting any further interaction with global DSM. However, if the DEBUG parameter is active on an MFX job step and an error or abend occurs in global DSM, the MFX job step will end with an internal abend (5DBW). This allows MFX to generate diagnostic information that will be helpful in debugging.

Abends in Global DSMTwo types of critical errors may occur in global DSM: a system abend or user-issued abend. In either case, global DSM will attempt to produce diagnostic information, and then will automatically terminate. When termination is complete, the message WER606I will be displayed on the console. At that point, global DSM will no longer be active, and all current and subsequent MFX jobs will automatically stop interacting with global DSM.

If a system abend occurs in global DSM, DSM will attempt to generate a SNAP dump to the SYSOUT data set as well as a standard SYSUDUMP. In certain instances, global DSM will also produce a diagnostic dump on the SYS1.DUMPxx data set.

If an error condition is detected internally in global DSM, DSM will attempt to generate a diagnostic dump on the SYSOUT data set and terminate with the USER abend code of 714 (hexadecimal).

Syncsort MFX Programmer’s Guide 6–3

Syncsort MFX Programmer’s Guide6–4

Chapter 7 Diagnostics and Technical Support

Before Calling Precisely SupportAll pertinent information (listings, dumps, maintenance level, SVC number, etc.) should be available for easy reference when calling Precisely Support. For error conditions producing the WER999A message, the system dump and/or MFX SNAP dump will prove helpful to an MFX analyst.

For other conditions cited with an “A” class message (e.g., WER039A INSUFFICIENT VIRTUAL STORAGE), additional diagnostic information may be required – a diagnostic SNAP dump can be produced by passing the DEBUG PARM in the $ORTPARM DD statement or (for a JCL sort) in the // EXEC statement. When using DEBUG, supply a SPYSET or SYSUDUMP DD statement to define an appropriate SYSOUT data set for the dump. If the problem occurs in an application using the OUTFIL OUTPUT feature, add the following DD statements in addition to the DEBUG PARM:

//STDERR DD SYSOUT=*//STDOUT DD SYSOUT=*

To get an accurate screen display of the maintenance level and SVC number, you must determine whether the operating system found SYNCSORT in the link list concatenation or found it in a STEPLIB concatenation. For link listed modules issue the command TSO SYNCLEVL from an ISPF session active on the system where the problem occurred. Otherwise, use the command TSO CALL ‘your.steplib(SYNCLEVL)’ substituting the library name that caused the problem.

Searching the Precisely Knowledge BaseThe Precisely Knowledge Base contains numerous articles, including how-to’s and resolutions to common problems. To help you research and resolve issues, the Knowledge Base is continually updated to publicize issues that have already been addressed by the Precisely support team.

7–1Syncsort MFX Programmer’s Guide

The Knowledge Base is available to licensed users and is accessible through the Precisely Support website. Search on the MFX product by release to find all relevant information about MFX.

Contacting Precisely SupportThe Precisely Support portal is available to all registered users. To access technical support for your location, visit https://www.precisely.com/support.

Syncsort MFX Programmer’s Guide7–2

Appendix A Messages

This appendix contains information about global DSM, MFXOPT and license key messages.

Global DSM Message FormatGlobal DSM consists of a centralized administrative program that executes in its own address space and communicates with sorts in progress through the z/OS subsystem interface.

All messages issued by global DSM are routed to the console and have the form:

xxx is the message number and the y is either the letter A or the letter I.

The messages with A indicate a critical error. These messages are routed to the console with ROUTCDE=(2,11) and DESC=(2).

The messages with I provide information on global DSM execution or a condition not severe enough to warrant global DSM termination. These messages are routed to the console with ROUTCDE=(2,11) and DESC=(4).

WERxxxy message text

Figure 117. Global DSM Message Format

A–1Syncsort MFX Programmer’s Guide

Global DSM Messages

Global DSM MessagesWER600I SYNCSORT DSM SUBSYSTEM - UNSUPPORTED SYSTEM

COMMAND. REQUEST IGNORED

EXPLANATION: Global DSM does not support the system com-mand that was issued. The request has been ignored, and global DSM will continue normal operation.

WER605I SYNCSORT DSM SUBSYSTEM INITIALIZATION COMPLETE

EXPLANATION: Global DSM has been successfully started.

WER606I SYNCSORT DSM SUBSYSTEM TERMINATION COMPLETE

EXPLANATION: Global DSM has been terminated by a STOP command or an internally detected critical error. If a STOP com-mand was not issued, refer to previous WERxxxy messages for additional information.

WER607I SYNCSORT DSM SUBSYSTEM TERMINATION IN PROGRESS

EXPLANATION: Global DSM has received a STOP command and has initiated termination processing. WER606I will be issued when termination processing is complete.

WER610A SYNCSORT DSM SUBSYSTEM TERMINATED DUE TO CRITICAL ERROR

EXPLANATION: One or more supporting functions in global DSM have ended with a critical error or abend. Global DSM will try to write a diagnostic dump to a SYS1.DUMPxx data set.

WER612A SYNCSORT DSM SUBSYSTEM xxxxxxxx LOAD FAILURE, CODE=yyy, RC=zzz

EXPLANATION: The module xxxxxxxx cannot be successfully loaded. For an explanation of the codes yyy and zzz, see the appropriate IBM Message Library: System Codes manual for your system. Global DSM is terminated.

WER614A SYNCSORT DSM SUBSYSTEM ALREADY ACTIVE. REQUEST IGNORED

EXPLANATION: Two global DSM subsystem interfaces with the same name may not be active on one system simultaneously.

Syncsort MFX Programmer’s GuideA–2

Global DSM Messages

WER615A SYNCSORT DSM SUBSYSTEM LIBRARY MUST BE APF AUTHORIZED

EXPLANATION: The global DSM modules must reside in an APF authorized library.

WER616A SYNCSORT DSM SUBSYSTEM - UNSUPPORTED OPERATING SYSTEM

EXPLANATION: Global DSM requires a z/OS operating system.

WER617A SYNCSORT DSM SUBSYSTEM - DSMHIST DD NOT DEFINED

EXPLANATION: Global DSM requires a DSMHIST DD state-ment be defined in the SYNCDSM1 JCL procedure.

WER618A SYNCSORT DSM SUBSYSTEM - HISTORY DATA SET UNINITIALIZED

EXPLANATION: Global DSM’s history data set must be initial-ized prior to the execution of the START command for the SYN-CG100 JCL procedure. For more details, see “, STEP 15: Initialize Global DSM’s History Data Set”.

WER619A SYNCSORT DSM SUBSYSTEM - INCORRECT HISTORY DATA SET FOR THIS SYSTEM ID

EXPLANATION: A history data set in global DSM cannot be shared by different systems. You must allocate a separate history data set for each system, and activate it. For more details, see “, STEP 14: Allocate Global DSM’s History Data Set”.

WER620A SYNCSORT DSM SUBSYSTEM - UNEQUAL MAINTENANCE LEVELS: xxxxxxxx, yyyyy, zzzzz

EXPLANATION: The load module xxxxxxxx of global DSM (GDSM) and the GDSM root module maintenance levels do not correspond. yyyyy represents the maintenance level of the xxxxxxxx module; zzzzz represents the maintenance level of the root module.

Syncsort MFX Programmer’s Guide A–3

MFXOPT Messages

MFXOPT MessagesWER800I MFXOPT COMPLETED SUCCESSFULLY

EXPLANATION: The MFXOPT command was executed success-fully. No errors were encountered.

WER801A MFXOPT FAILED

EXPLANATION: Errors were encountered during MFXOPT pro-cessing. Refer to the MFXOPT WER8nnA message for more infor-mation.

WER802A MFXOPT: PARAMETER ERROR

EXPLANATION: The START MFXOPT command contained invalid syntax or required parameters were missing.

WER803A MFXOPT: MFX ECSA ENTRY MISMATCH FOUND

EXPLANATION: This is an internal error. Contact Precisely Support.

WER804A MFXOPT: PARMLIB ERROR RETCODE= ,REASON CODE=

EXPLANATION: The PARMLIB data sets could not be allocated, and MFXOPT processing was not completed.

WER805A MFXOPT: CANNOT FIND/LOAD SYNCMAC MODULE

EXPLANATION: This can be caused by any of the following rea-sons: 1. Dynamic allocation of a DD failed for the SYNCMAC module. 2. The load module name specified in MFXPRMxx can-not be found. 3. The load module cannot be opened.

WER806A MFXOPT: PARMLIB SYNCMAC MODULE ERROR

EXPLANATION: The load module name specified in the MFX-PRMxx member is not a SYNCMAC module.

WER807A STORAGE NOT AVAILABLE IN PRIVATE AREA

EXPLANATION: MFXOPT could not complete processing because there was insufficient space in the system private area.

WER808A MFXOPT: STORAGE NOT AVAILABLE IN ECSA

EXPLANATION: MFXOPT could not complete processing because there was insufficient space in the ECSA.

Syncsort MFX Programmer’s GuideA–4

MFXOPT Messages

WER809I PARMLIB SYNCMAC FOR RELEASE xx HAS BEEN DEACTIVATED

EXPLANATION: MFXOPT completed the deactivation of the specified release’s MFXPRM member. Options from the MFX load libraries will be in effect instead of the MFXPRM member load library.

WER810A MFXOPT: PARMLIB SYNCMAC FOR RELEASE xx CANNOT BE FOUND

EXPLANATION: The PARMLIB SYNCMAC options for r.r in the MFXPRM=’DEACT,r.r’ parameter cannot be found in the ECSA area. You can use the DISP parameter to view the source location of the active PARMLIB SYNCMAC on this system.

WER811A PARAMETER ERROR: INCORRECT RELEASE

EXPLANATION: The r.r in the MFXPRM=’ACT,xx,r.r’ parameter is incorrect and not supported by MFXOPT.

WER812A MFXOPT: TOO MANY PARMLIB RELEASES

EXPLANATION: MFXOPT only supports four MFX releases on one system. You can use the DISP parameter to display the num-bers of the MFX releases with MFXPRM members and use the DEACT parameter to deactivate MFXPRM members for old MFX releases.

WER813I INSTALLATION OPTIONS IN xxxxxxxx WILL BE USED

EXPLANATION: This message indicates the location of the default installation options in effect. xxxxxxxx will indicate a PARMLIB member or the MFX load library.

WER814A MFXPRMG CAN ONLY BE EXECUTED FROM A START MFXOPT COMMAND

EXPLANATION: This is a WTO message; MFXPRMG was not invoked by a START MFXOPT command.

WER815I MFXOPT: RELEASE MFXPRM rel MFXPRMxx IN yyyyyy

EXPLANATION: This is an informational message issued when the DISP parameter is used. The source location of the default installation options in effect will be displayed. rel is the release number of MFX; yyyyyy is the name of the data set specified in the MFXPRMxx member.

Syncsort MFX Programmer’s Guide A–5

License Key Messages

License Key MessagesThe following are the messages directly related to the use of license keys for the Syncsort MFX, Syncsort PROCSort, and Syncsort PipeSort products.

WER900A SYNCSORT r.r.n.n IS NOT LICENSED FOR SERIAL sssss, TYPE mmmm mmm, [LPAR nn,] MSU ccccc.orSYNCSORT r.r.n.n IS NOT LICENSED FOR SERIAL sssss, TYPE mmmm, [LPAR nn,] VERSION CODE vv.

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. No valid license key for use on the specified machine was found, and the grace period for this error, noted by the WER903I warning message, has expired. A key must contain the correct information for both the serial number and the machine capacity. License keys are specified either in the KEY parameter of the SYNCMAC installation options macro, or included in a data set whose name is specified in the KEYDSN parameter of SYNCMAC.

ACTION: Execute the SYNCLIST program on the system where this message is occurring. Ensure that either the SYNCMAC KEY parameter or the data set named in the KEYDSN parameter has provided a valid key for the specified product for this machine. If you require further assistance, contact Precisely Support with the SYNCLIST output available for reference.

WER901I **WARNING** SYNCSORT r.r.n.n WILL EXPIRE IN nnn DAYS

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. The provided license key for this machine is only valid for the next nnn days. After that time, WER902A will be issued, and the specified product cannot be used.

ACTION: Contact the systems programmer in charge of MFX maintenance, or execute the SYNCLIST program on the system where this message is occurring and contact Precisely Support.

Note: For information on suppressing this message, see “Appendix B, Using a Data Set for MFX License Keys”. Also, see the KEYWARN and KEYMSG parameters of the SYNCMAC installation options macro.

Syncsort MFX Programmer’s GuideA–6

License Key Messages

WER902A SYNCSORT r.r.n.n HAS EXPIRED

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. The provided license key for this machine is no longer valid because the expiration date has passed. The speci-fied product can no longer be used.

ACTION: Contact the systems programmer in charge of MFX maintenance, or execute the SYNCLIST program on the system where this message is occurring and contact Precisely Support.

WER903I SYNCSORT r.r.n.n IS NOT LICENSED FOR SERIAL sssss, TYPE mmmm mmm, [LPAR nn,] MSU ccccc.orSYNCSORT r.r.n.n IS NOT LICENSED FOR SERIAL sssss, TYPE mmmm, [LPAR nn,] VERSION CODE vv.

SYNCSORT WILL STOP WORKING IN nnn DAYS UNLESS A VALID KEY IS INSTALLED.

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. No valid license key for use on the specified machine was found. License keys are specified in the KEY parameter of the SYNCMAC installation options macro, or included in a data set whose name is specified in the KEYDSN parameter of SYNCMAC.

Processing continues by issuing WER903I during a grace period after this error is first encountered. This will provide sufficient time to correct the problem by installing a valid key for this machine. If the grace period ends before a valid key is made available, either WER900A or WER902A will be issued and pro-cessing will terminate.

ACTION: Execute the SYNCLIST program on the system where this message is occurring. Ensure that either the SYNCMAC KEY parameter or the data set named in the KEYDSN parameter has provided a valid key for this machine. If you require further assistance, contact Precisely Support with the SYNCLIST output available for reference.

Note: For information on suppressing this message, see “Appendix B, Using a Data Set for MFX License Keys”. Also, see the KEYMSG parameter of the SYNCMAC installation options macro.

Syncsort MFX Programmer’s Guide A–7

License Key Messages

WER904I SYNCSORT r.r.n.n KEYUPDATE SUCCESSFUL; xxxxxxxxxxxxxxxx SELECTED

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. The KEYUPDATE parameter was specified, and MFX has successfully obtained a valid license key denoted by xxxxxxxxxxxxxxxx from MFX’s key data set. The name of the data set was specified in the KEYDSN parameter of the SYNC-MAC installation options macro.

WER905A SYNCSORT r.r.n.n KEYUPDATE FAILURE: reason

EXPLANATION: r.r is the MFX release number, and n.n is the TPF maintenance level. A different product name is displayed when applicable. The KEYUPDATE parameter was specified, but MFX was unable to obtain a valid license key from MFX's key data set due to the specified reason. Possible reasons for this fail-ure are:

1. The KEYDSN parameter of SYNCMAC was not specified when MFX was installed. KEYDSN, and not the KEY parameter, must be specified with the name of MFX's key data set when using the KEYUPDATE facility.

2. MFX was unable to dynamically allocate and/or read MFX's key data set. This can happen if you were editing the data set at the time of the KEYUPDATE run, or if the data set was not allocated as a fixed-length 80-byte file.

3. No valid license key was found in MFX's key data set.

4. The MFX SVC was not available. MFX requires use of its SVC to perform the update.

ACTION: Ensure that the KEYDSN parameter has been correctly specified and that the data set is accessible and contains a valid license key. Also verify that the MFX SVC has been properly installed. If you require further assistance, execute the SYNCLIST program on the system where this message is occurring and contact Precisely Support with the SYNCLIST output available for reference.

WER906I INVALID KEY DATA SET RECORD: invalid record text

EXPLANATION: One or more invalid records were found in the license key data set when performing KEYUPDATE. The first invalid record is displayed in the message text. Only comment statements, key statements and valid PARMS statements are permitted. All invalid statements are ignored.

ACTION: Correct any errors in the key data set record that was displayed in the message text and rerun the KEYUPDATE application.

Syncsort MFX Programmer’s GuideA–8

License Key Messages

WER907I SYNCSORT EXPIRING LICENSE KEY WARNING MESSAGE {ENABLED,DISABLED}orSYNCSORT INVALID LICENSE KEY WARNING MESSAGE {ENABLED,DISABLED}

EXPLANATION: These KEYUPDATE messages document whether MFX may issue certain license key warning messages. These messages also apply to Syncsort PROCSort and Syncsort PipeSort if these products have been installed. The default is to issue either the WER901I expiring license key warning message or the WER903I invalid license key warning message when appli-cable. During KEYUPDATE, a PARMS statement read from the key data set can disable the issuance of either of these messages. The WER907I message is intended to alert you that these warn-ing messages may no longer be posted, though the warning period countdowns will continue. During the last seven days before the warning period ends, the warning messages are issued regardless of whether or not they have been disabled. This is done to try to prevent termination of all applications with either WER902A or WER900A.

ACTION: No action is required if both of these warning messages are enabled and you have a valid license key that is not expiring. If you do not have a valid key or if your key is expiring, contact Precisely Support as soon as possible to obtain a new license key and rerun the KEYUPDATE procedure using the new key. If any of the messages had been disabled, either remove the PARMS statement or set the warning message parameters to ON to re-enable the issuance of license key warning messages.

WER908A DEGRADED PROC SYNCSORT PERFORMANCE! CALL YOUR SYNCSORT REPRESENTATIVE.

EXPLANATION: WER900A or WER902A has been issued because there is no valid license key for Syncsort PROCSort. MFX’s high performance technique will not be used during this invocation by Syncsort PROCSort.

ACTION: See EXPLANATION and ACTION for either WER900A or WER902A, as appropriate.

Syncsort MFX Programmer’s Guide A–9

License Key Messages

Syncsort MFX Programmer’s GuideA–10

Appendix B Using a Data Set for MFX License Keys

License keys for MFX and MFX’s value-added products can be maintained either in the SYNCMAC installation options macro or in a separate data set. To maintain the keys in SYNCMAC, use the SYNCMAC KEY option. To maintain the keys in a separate data set, specify the name of the data set in the KEYDSN option of SYNCMAC. Using a data set eliminates the need to assemble and link modules each time a key is added or replaced, and avoids SMP/E involvement. The data set option is recommended for sites that have many license keys and experience frequent key changes.

The data set can also be used to tell MFX to suppress key-related warning messages. As a license nears expiration, or if there has been a change to a machine on which MFX is executed, WER901I and WER903I messages may be issued. If you want to suppress these messages, you can do so by using a PARMS statement in the key data set.

For more information on the SYNCMAC options, see “KEY-Related Options (KEY, KEYDSN, KEYMSG, and KEYWARN)” on page 3-18. The remainder of this appendix deals with the key data set.

Creating a Key Data SetTo build a data set for license keys, do the following:

1. Allocate and catalog a physical sequential data set having these attributes: SPACE=(TRK,(1,1)), RECFM=FB, LRECL=80, BLKSIZE=27920 and a DSN equal to the data set name you specified in the KEYDSN option of SYNCMAC. Note that every sort step needs to have READ access to this data set.

WRITE authority should be limited to the systems programming staff that maintains MFX. MFX dynamically allocates the data set, so there is no need for a DD statement in the sort JCL.

B–1Syncsort MFX Programmer’s Guide

2. Specify each key in the data set in the first 16 bytes of each record, followed by an optional comment. Additional comments that begin with an asterisk (*) in column 1 are permitted. Keys must be typed in upper case.

3. Specify a PARMS statement if you want to control the issuance of key-related warning messages.

Disabling or Enabling Messages The PARMS control statement is used to disable or enable the issuance of WER901I expiring and WER903I unlicensed warning messages, except for the last 7 days of the warnings. For WER901I, these 7 days are the grace period after the documented expiration date. The PARMS control statement applies to MFX and its value-added products.

PARMS Control Statement FormatFigure118 illustrates the format of the PARMS control statement.

The PARMS control statement applies to all machines that share the key data set, unless the SER parameter is used to specify each machine on which a message is to be disabled. The selected options apply to all releases of MFX and all LPARs on the specified machines.

• All keywords and parameters must be in the first 71 columns of the statement and can begin in column 1 or have leading blanks (no statement labels are permitted).

• Continuation statements that end in a comma and continue on the next non-comment statement are permitted.

• All PARMS control statements must be placed before any records with keys in the data set. The statement will be ignored otherwise.

EXPIRINGMSG Parameter (Optional)

The EXPIRINGMSG parameter controls the issuance of the WER901I message. The absence of the EXPIRINGMSG parameter or of the PARMS control statement in its entirety for a particular machine will cause the default (ON) to be put into effect.

Figure 118. PARMS Control Statement Format

PARMS EXPIRINGMSG= ON

OFF

,UNLICENSEDMSG= ON

OFF

,SER=cccc[ ]

Syncsort MFX Programmer’s GuideB–2

When the WER901I message is written as a WTO, it will be written several times a day. The system will hold the message until it is deleted by the operator.

UNLICENSEDMSG Parameter (Optional)

The UNLICENSEDMSG parameter controls the issuance of the WER903I message. The absence of the UNLICENSEDMSG parameter or of the PARMS control statement in its entirety for a particular machine will cause the default (ON) to be put into effect. Note that the third line of the MFX header, which contains license information, is not written when WER903I is issued for MFX, since there is no valid key. This header line will still be suppressed even if the WER903I message has been suppressed.

When the WER903I message is written as a WTO, it will be written several times a day. The system will hold the message until it is deleted by the operator.

SER Parameter (Optional)

The SER parameter specifies the particular machine on which the PARMS control statement settings will take effect. Only the last four characters of the machine serial number are required. If more digits are specified, only the four low-order digits will be used. If the SER parameter is not specified, the PARMS statement will apply to all machines.

Downloading a License Key File from Precisely SupportYou can download a license key file from the Precisely Support portal, as follows:

1. Use your browser to navigate to the Precisely Support portal at https://www.precisely.com/support.

2. On the Welcome to MySupport page, click My Products to view the products that you have online support for.

3. Click the Syncsort MFX icon to open the Release 3.1 page with options for Software Download, Maintenance (TPFs), and Key Download.

4. Scroll down to the Key Download section and use the click here link to open a page with a list of contract links that you have access to.

Note: The Key Download section also provides an emergency key link.

5. Click the appropriate contract link to download your key_zos.txt file.

Note that clicking on any contract that is part of a support site will download all keys for the given site.

The key_zos.txt text file will consist of records with a 16-character key followed by a comment that describes the encrypted license information. The file should be transferred to your mainframe system to be used as your key data set.

Syncsort MFX Programmer’s Guide B–3

Figure 119 shows an example of a key data set.

Updating the Key Data SetAt initial installation time, MFX will automatically access the key data set if you have chosen the KEYDSN option. If you subsequently make a change to the data set, MFX will not become aware of this change immediately. MFX's normal practice is to access the data set once an hour. If you want to have your change take effect immediately, execute MFX with the following JCL on whichever LPARs or machines are affected by the change.

Notes: If you are editing the key data set when MFX attempts to read it, MFX will not be able to dynamically allocate it and the KEYUPDATE procedure will fail.

Whenever the KEYUPDATE parameter is used, WER907I messages will be generated that indicate whether or not key-related warning messages have been disabled.

If you disable the messages, it is recommended that you enable them again as soon as you update the data set with your new key. Failure to do this could result in a very short warning period the next time you change a machine or renew a contract.

*Key Rlse Expiration Serial Machine MSUs* Date Number*--------------- ---- ----------- ------ ------------------ ----*MFX 754FB3B31F098D72 1.n 30 Apr 2014 12345 IBM 2066 0E1 7CED8B7B452C17EA3 1.n 30 Apr 2014 23456 IBM 2066 0A1 13B3176C743394740C 1.n 30 Apr 2014 34567 IBM 2086 110 4**PROC MFXCFC7EDCFB3876FBA 2.n 30 Apr 2014 34567 IBM 2086 110 4**MFX PipeSort012281C62E278CB0 1.3 30 Apr 2014 34567 IBM 2086 110 4

Figure 119. Sample License Key Data Set

//KEYUPDT EXEC PGM=SYNCSORT,PARM='KEYUPDATE' //SYSOUT DD SYSOUT=*

Figure 120. Sample JCL to Update Key Data Set

Syncsort MFX Programmer’s GuideB–4

Return Codes from KEYUPDATE Processing0 A valid license key has been installed for Syncsort MFX. Keys for Syncsort

PROCSort or Syncsort PipeSort may also have been installed.

4 Valid license key(s) have been installed, but the WER901I warning message was generated for one or more of the keys that will be expiring soon.

16 No valid MFX license key for use on the specified machine was found. The WER903I message was generated. When the grace period displayed in the message ends, the WER900A message is generated instead of WER901I and the product will not function.

Syncsort MFX Programmer’s Guide B–5

Syncsort MFX Programmer’s GuideB–6

Index

Symbols

$ORTPARM 3-4, 3-34, 4-3, 6-3

A

ACS 3-13AD/CYCLE LE/370 2-3Alternate PARM Facility 6-3ALTMSG 3-3

ALTOPLIB 2-16ALTPARM 3-4ALTSEQ 3-4ASR 3-61

B

BALANCE 3-9, 3-61BetterGener 1-2, 2-3, 4-1–4-4

$ORTPARM 4-3–4-4Error Messages 4-4

BKPTTIME 3-62BLKSIZE Parameter 3-43Block Size 3-42–3-44

BMSG 3-61BRKPTIM 3-4BSSIC31 2-6BSSID31 2-6BSSIL31 2-6BSSIP31 2-6BSSIZ31 2-6

C

C Exits 2-2–2-3, 2-6Century Window 3-5CENTWIN 3-5CMP 3-7, 3-54COB2LIB 2-2

COBEXIT 3-7COBOL 2-2, 2-6, 3-7COBOL II Exits 2-2–2-3, 2-6CPU 3-9, 3-61

D

DASD Space RequirementsSMP 2-8–2-9

Data Set for License Keys 3-18–3-19, B-1DB2 Query 2-3, 2-6, 2-19DDDEFs 2-11DEBUG Parm Facility 6-2–6-3Debugging 6-1–6-3Disabling Key-Related Messages B-2DISP Parameter 3-42DSM 3-3, 3-8

See also Dynamic Storage Management (DSM)DSMALTST 3-10DSMMAXST 3-10DSMWEND 3-3, 3-8, 3-10DSORGDA 3-11

Dumps 6-2–6-3DYNALOC 3-11Dynamic Storage Management (DSM) 1-3

Error Handling 6-3Global DSM 1-4, 2-2, 2-6, 3-8

Activating 2-18, 2-20–2-21Deactivating 2-22Functions 1-4–1-5History Data Set 1-4, 2-16–2-17, 2-20Messages A-1–A-3Modules 2-8

Local DSM 1-4, 3-8, 3-10DYNATAPE 3-14

Syncsort MFX Installation Guide Index–1

E

EBCDIC 3-4ELAP 3-9, 3-61ELPA Storage Requirements

SMP 2-7EMSPACE 3-14, 3-61Enterprise COBOL for z/OS Exits 2-3EQUALS 3-14Esoteric Unit Names 1-3, 2-3, 2-22, 5-2

Esoteric Unit Names, Creating 5-1Execution Time Parameters 3-3, 3-60EXITNAME 3-15Exits, C 2-2–2-3, 2-6Exits, COBOL II 2-2–2-3, 2-6Exits, Enterprise COBOL for z/OS 2-3, 2-6EXPIRINGMSG Parameter B-2

G

Global DSM 1-4, 2-2, 2-6, 3-8Activating 2-18–2-21Deactivating 2-22Functions 1-4–1-5

History Data Set 1-4, 2-16, 2-20Messages A-1–A-3Modules 2-8

H

History Data Set 2-8, 2-16 HOSTNAME 3-15

I

IEALIMIT 3-36Installation

Procedure 2-10–2-19

Tape 2-24IO 3-9, 3-61IOERR 3-16

J

JAVAHOME 3-16JCL, Sample 2-10JOIN

User Guide 1-7JVM64 3-17JZOSHOME 3-17

K

KEY 3-18–3-19Key Data Set 3-18–3-19, B-1KEYDSN 3-19KEYMSG 3-20

KEYUPDATE Parameter B-4KEYWARN 3-21Knowledge Base 2-25

L

LABEL Parameter 3-43Language Environment 2-2, 2-6, 3-22–3-23Libraries

DDnames for Target and Distribution 2-6

SMP 2-11License Key 2-1

Key Data Set 3-18–3-19, B-1KEY-Related Options 2-13, 3-18, 3-20–3-21

Index–2 Syncsort MFX Installation Guide

Messages A-6–A-9LISTJ 3-21LISTT 3-21

Local DSM 1-4, 3-8, 3-10LOCALE 2-3, 2-6, 3-22

M

Maintenance 2-24–2-26Header 2-25Release Information 2-25

MAXMERG 3-24MAXMERGE 3-62MAXSORT 3-5, 3-24–3-26, 3-30, 3-37, 3-39,

3-46, 3-52, 3-62User Guide 1-7

MAXWKSP 3-25Messages

Global DSM A-1–A-3License Key A-6–A-9

MFXOPT 2-10MINCORE 3-2, 3-25, 3-61MINMERG 3-26MINMERGE 3-62MINWKSP 3-26MODSLNK 3-26MSG 3-27MSGCLAS 3-28MSGDD 3-28MSGEXIT 3-28MSGGENER 3-30MXROUTC 3-30

N

National Language 2-3, 2-6, 3-22Non-Resident 1-2, 2-7, 2-19NOSNAP 3-30

Notational Conventions 1-5NULLOFL 3-31NULLOUT 3-31

O

OPTELAP 3-32Optimization Modes 3-61

Options, Default 2-13, 3-2–3-58, 3-63OUTSPCE 3-32

P

PARASORT 1-3, 2-22, 5-1–5-7Creating Esoteric Unit Names 5-1–5-7Special Esoteric Unit Names 1-3SYNCLIST Report 5-2

PARMEXIT 3-32, 6-3PARMLIB 2-14PARMNME 3-34PARMs 3-3, 3-33–3-34, 3-60, 6-2PARMS Statement B-2

PARMTABLE 6-3PARMTBLE 3-34PGMIEAL 3-36PGMRC16 3-36PORT 3-37PREFIX 3-37Preliminary Tasks 2-1PRINT121 3-37

R

RC16 3-36, 3-38RELEASE 3-38RELSAMT 3-39RESET 3-39Resident 1-2, 2-7, 2-17

Retry, Automatic Sort 6-1RLSOUT 3-40ROUTCDE 3-40, 3-61RSRVJI 3-40RSRVJIZ 3-41

Syncsort MFX Installation Guide Index–3

RSRVTI 3-41 RSRVTIZ 3-42

S

Sample JCL 2-10SCEELKED 2-3SDB 3-42SDBGENR 3-44SER Parameter B-3SMF 3-44SMFDSECT 2-24SMS 3-11SOPAD 3-45SOPADGN 3-46SORTIME 3-5, 3-46SORTOFxx File 3-42SORTOUT File 3-42SORTTIME 3-62SOTRN 3-47SOTRNGN 3-47Special Esoteric Unit Names 1-3, 2-3, 2-22, 5-2Special Esoteric Unit Names, Creating 5-1SS31ACPT 2-10, 2-19SS31ALOC 2-10–2-11SS31ALOE 2-9–2-11SS31APLY 2-10, 2-12SS31BN89 2-10, 2-19SS31CPR 2-10–2-11SS31DDEF 2-10–2-11SS31HALO 2-10, 2-16SS31HINT 2-10, 2-16SS31HPRC 2-10, 2-17SS31INIT 2-10–2-11SS31MSG 2-23, 6-1SS31MSG2 2-23SS31OMFX 2-10, 2-14SS31OPTS 2-10, 2-13, 2-16SS31RECV 2-10, 2-12SS31RNMS 2-10, 3-63

SS31SVC 2-10, 2-12SS31TST1 2-10, 2-16SS31TST2 2-10, 2-18SS31TST3 2-10, 2-18SS31TST4 2-10, 2-19SS31TST5 2-10, 2-19SS31TST6 2-10, 2-19START Command 2-18, 2-20–2-21STATOUT 3-48STATREC 3-48, 3-61STGPCT 3-61STOP Command 2-20, 2-22STORCLAS 3-13SUMOVFL 3-49Support, Technical 7-1–7-2Suppressing Key-Related Messages B-2SVC 2-2, 2-6, 2-12, 2-17, 3-2, 3-45, 3-49–3-50,

3-61, A-8SWCRYPT 3-50SYNCAUTH 2-6, 2-8SYNCCPR 2-11SYNCG310 2-17, 2-20SYNCGENR 4-1–4-3SYNCHOME 3-51SYNCLINK 2-6, 2-8SYNCLIST 2-24, 3-59–3-60, 5-2

PARASORT Report 5-2SYNCLPA 2-6, 2-8, 2-17, 3-63SYNCMAC 2-7, 3-1, 3-18, 3-59

Macro 2-8–3-3, 3-49, 3-60Options 3-3–3-58

SYNCPRMG 2-6, 2-8SYNCRENT 2-6, 2-8, 2-17SYSMODs 2-6SYSOUT 3-3, 3-28System Abend (0C7) 3-54

T

TAPENME 3-51Technical Support 7-1–7-2Testing

Installation Verification 2-16

Production Validation 2-17SVC 2-2, 3-2

TIMESTMP 3-37, 3-52TITLE 3-52

U

UNINTDS 3-52UNINTGN 3-53

UNLICENSEDMSG Parameter B-3USERMOD 3-63

Index–4 Syncsort MFX Installation Guide

USERMODA 2-10, 2-13

V

VLTEST 3-53VLTESTI 3-55VS COBOL II Exits 2-2–2-6VSAM 2-9, 3-39, 3-43

See also RESETVSAMEMT 3-55VSCORE 3-2, 3-56, 3-62VSCORET 1-4, 3-2, 3-56, 3-62

W

WKSPCE 3-57

Y

Year Data 3-5

Z

ZDPRINT 3-58ZIIPPCT 3-58ZSPACE 1-3

Syncsort MFX Installation Guide Index–5

Index–6 Syncsort MFX Installation Guide