Raincode Sort


Version 6.0.136.0

Raincode Crossbow

Raincode Crossbow is a consistent release of the entire Raincode product line, covering compilers, emulators and ancillary tools.

In practice, Raincode Crossbow is designed with three driving forces:

  • A focus on performance across the board:

    • The internal computation engine for non-binary numeric data types (display numeric or packed decimals) has been entirely overhauled, resulting in performance improvements that can go up to a factor of 5 (depending on the level of dependence on these non-binary data types)

    • The file I/O layer has been optimized to ensure the best possible performance when dealing with indexed or sequential files

    • RadaR is a revolutionary solution to run batch steps 5 to 10 times faster, without changing the application source code or even the JCL they are called from

    • The Visual Studio plugin now runs the heaviest debugging operations asynchronously, thereby dramatically improving response time and the overall user experience, even when debugging programs with hundreds of active variables

    • The views generated to access VSAMSql and IMSql data using plain SQL DML statements have been optimized dramatically

  • Updated .NET platform support running both on Linux and on Windows, on virtual machines or in containers, on the cloud, on laptops or servers managed on premise.

  • Consolidation of the product suite, allowing all Raincode software to be built and upgraded synchronously, thereby avoiding the headaches that come from multiple products that follow different (and sometimes, incompatible) release cycles.

Version 6.0

In addition to the above description, Raincode Crossbow v6.0 (see release notes) is a technical release that includes the following:

  • Support for .NET 10.0 and SQL Server 2025 across the board.

  • The Visual Studio plugin now supports Visual Studio 2022 and 2026, with improved support for JCL debugging.

  • Support for the File-AID JCL utility.

  • Support for TLS encryption on QIX and IMS TN3270 terminal servers.

  • Removal of support for .NET Framework and .NET 6.0.

  • Removal of support for Microsoft Host Integration Server (HIS) for Db2.

  • Removal of 32-bit support.

1. Using Raincode Sort

Raincode Sort is a utility that sorts records from one or multiple files and saves them to an output file.

It can be invoked in three different ways:

  • Directly from COBOL or PL/I: Since most of the sort code is in a DLL, Raincode runtime utilizes that DLL for all sorts called directly from these languages.

  • Using JCL with PGM=SORT: Defining the relevant DD (SYSIN, SORTIN, SORTOUT) and the same syntax SYSIN should contain as a command. The RaincodeSortRunner.exe is also invoked this way through JCL.

  • By RaincodeSortRunner.exe: Providing a FileConfig defining the SORTIN, SORTOUT and SYSIN. SYSIN is a file where all the utility commands are provided. The input data is provided in a file SORTIN, and the output will be written to SORTOUT.

You can get help for Raincode Sort by running it without arguments on the command line. Detailed information is also provided in the Raincode Sort settings section.

RaincodeSortRunner.exe is installed along with the Raincode Crossbow installation. For more details, refer to the Raincode Crossbow Installation.

2. Raincode Sort settings

Raincode Sort supports an additional RCSET command to fine-tune your sort by setting internal constants.

The syntax is:

RCSET <OPT>=<VAL>,<OPT>=<VAL>,…

The supported options are:

Table 1. Raincode Sort supported option
Option Default Usage

CONC_THRESH

10000

Sets smaller than this will not use concurrency to speed up the sort.

MAX_REDUN

3

REDUN_SCALE_DOWN

2

SYS_SORT_THRESH

10000

Sets smaller than this will be sorted with the default system sort.

ARRAY_SORT_SIZE

4194304

3. Raincode Sort command-line option

3.1. Miscellaneous

Table 2. Details of command-line options for RainCodeSortRunner in category Miscellaneous
Command-line option Default value Description

AsciiEncoding

Encoding used for ASCII based formats. Default value is iso-8859-1

Debug

Causes a JIT breakpoint to be hit. Useful for debugging custom hooks.

DefaultConfig

Config to be merge at the begin of each command

DotNetConfigFile

This command-line option is an additional .net 'app.config' file.

DYNALLOC

DYNALLOC not supported command will be ignored

EbcdicEncoding

Encoding used for EBCDIC based formats. Default value is ibm500

EncodingMode

Interpretation of data. ByFormat is the deprecated default, which depedns on the -Ebcdic and -Ascii options. Valid values are:

  • ByFormat

  • EBCDIC

  • ASCII

FileConfig

XML file configuring the mapping and representation of files.

Help

Displays the tool’s help information.

IgnoreUnkownArgs

Info

False

Displays a description of the program.

LogLevel

WARNING

Specifies the log level. Valid values are:

  • SILENT

  • ERROR

  • WARNING

  • PROGRAM_OUTPUT

  • PROGRAM

  • INFO

  • DEBUG

  • TRACE

  • DIAGNOSTIC

PDIsPDF

PD Format is equal to PDF (or PDC if false) (Default false).

SysinEncoding

Encoding used to read the SYS-IN file. The possible values are UTF-8, US-ASCII, or an integer representing the code page. Default value is UTF-8

Version

False

Displays the version information.

WithStatistics

Prints statistics on processed records.

ZDIsZDF

ZD Format is equal to ZDF (or ZDC if false) (Default true).

4. Control Statements

Raincode Sort supports the most commonly used control statements, including:

SORT with the options EQUALS and NOEQUALS.

  • SUM

  • INCLUDE

  • OMIT

  • RECORD

  • MERGE

  • COPY

  • ALTSEQ

  • OPTION

  • INREC

  • OUTREC

MODS for E15 and E35 user exits.

Raincode Sort supports user exit routines written in HLASM as well as in COBOL, that can be used to alter the incoming and/or outgoing flow of records processed by the sorting utility.

These routines can be taken from the mainframe with no change, and compiled just as any other legacy programs.

In the exit statements, the following parameters are ignored:

  • the size of main storage (m)

  • the library where the routine is located (s)

  • the linkage editor requirements (e).

The HILEVEL argument is also ignored.

The following data formats are not yet supported:

  • FL

  • D1

  • D2

Some transversal features are not yet present:

  • Date handling

  • Symbols

  • Bit constants and sub-byte fields

Appendix A: Useful information

This appendix includes some additional useful information concerning Raincode Sort.

A.1. Good to know

In this section, some useful tips and details are provided.

Handling FILES= option
When the FILES= option is used with a value greater than one, the input files are expected to have the logical name SORTINX.

A.2. List of Tables