Raincode zTrieve


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. Introduction

zTrieve reproduces the exact functionality of Easytrieve Plus®. zTrieve offers two modes: the intermediate and the compiled mode. The Easytrieve® program is read from the JCL on the fly in the intermediate or interpreted mode. On the other hand, the compiled mode will generate standalone DLLs.

2. How to use zTrieve

Easytrieve® programs can be encountered in two different ways. Either as a stand-alone program (with the .ezt extension) or as part of a JCL. Raincode’s solution, zTrieve, can execute programs in both forms. Furthermore, zTrieve also offers the possibility to compile an Easytrieve® program into a DLL.

3. Compilation

The following command will create a DLL, called PROGRAM, for the Easytrieve® program program.ezt. This DLL can be executed in two different ways: via the command line or as part of a JCL.

"%RCBIN%\Raincode.zTrieve.Compiler.exe" "${path\to\program.ezt}"

3.1. Flags

The following flags are supported and used during the compilation.

3.1.1. Miscellaneous

Table 1. Details of command-line options for Raincode.zTrieve.Compiler in category Miscellaneous
Command-line option Default value Description

DBConnectString

The repository connection string

DBDriver

Sets the connection string to use for the repository persistence system as an ODBC connection string if ODBC persistence is used, or as a physical file name if SQLITE is used instead.

DotNetConfigFile

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

GenerateMap

Generates an output file with the same name as the program file containing all the symbol mappings in the program Valid values are:

  • Json

  • Text

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

MacroExtension

Provides a comma- (or semicolon-) separated set of extensions to use when opening macro files. '.' character must be explicitly specified. Example: :MacroExtension=.foo,.bar. No extension can be indicated via :MacroExtension=. and .mac is the default extension that will always be used.

MacroSearchPath

Include a search path for macro files. Several paths can be specified separated by ',' or ';', by specifying this option multiple times on the command-line. Directories are searched in the order specified on the command line, with the exception of the the current directory '.' and '$env:RCDIR/includes/zTrieve' which is always checked first when looking for macro files.

OutputDir

The directory that will contain the output files

StringRuntimeEncoding

Sets the encoding to use for character strings. Must be one of .NET’s builtin encodings and an SBCS encoding; in the absence of the compiler option StringRuntimeEncoding and of this option, windows-1252 is used

SyntaxOnly

Only check the syntax of the program without generating a DLL

Version

False

Displays the version information.

3.2. Command line

The following command uses rclrun to execute the DLL on the command line.

"%RCBIN%\rclrun.exe" "${path\to\PROGRAM}"

3.2.1. Flags

The flags that can be used during this execution are given here.

3.3. JCL

The generated DLL, PROGRAM, can also be executed with the following JCL.

//JOBNAME  JOB (000000000)
//STEP001  EXEC PGM=PROGRAM
//SYSOUT   DD SYSOUT=*

3.4. Supported Macros

zTrieve is shipped with the Raincode implementation of the DATECONV macro that converts a date in a given format to another format. This macro is located in $env:RCDIR/includes/zTrieve so that it is automatically resolved during compilation. However, its behaviour can be replaced by providing an new implementation in the current folder.

4. Interpreter

zTrieve also offers an interpreter that can execute Easytrieve® programs directly. This interpreter can be called via the command line or as part of a JCL.

4.1. Command line

The following command calls the Interpreter to execute an Easytrieve® program.

"%RCBIN%\Raincode.zTrieve.Interpreter.exe" "${path\to\program.ezt}"

4.1.1. Flags

The zTrieve interpreter supports all the flags of rclrun as well as -MacroSearchPath and -MacroExtension from the compiler.

4.2. JCL

An Easytrieve® program can also be embedded in a JCL as shown below. In this example, PGM=EZTPA00 is used to run a Compile-and-Go job for the small program that is given as SYSIN.

//JOBNAME JOB (000000000)
//COMP EXEC PGM=EZTPA00
//SYSIN DD *
JOB INPUT NULL
  DISPLAY 'Hello World.'
  STOP
*
//

The following command uses the Submit executable to execute this JCL. This corresponds with calling the interpreter with the given program as an argument.

"%RCBIN%\Submit.exe" "${path\to\jcl.JCL}"

4.2.1. Flags

Since the interpreter is called implicitly, additional flags for the interpreter are not given directly but by means of the file Raincode.zTrieve.Interpreter.args. This file should be located in the folder where Submit is called and can contain multiple flags, separated by a newline.