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
| Command-line option | Default value | Description |
|---|---|---|
|
The repository connection string |
|
|
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. |
|
|
This command-line option is an additional .net 'app.config' file. |
|
|
Generates an output file with the same name as the program file containing all the symbol mappings in the program Valid values are:
|
|
|
Displays the tool’s help information. |
|
|
||
|
|
Displays a description of the program. |
|
|
Specifies the log level. Valid values are:
|
|
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. |
|
|
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. |
|
|
The directory that will contain the output files |
|
|
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 |
|
|
Only check the syntax of the program without generating a DLL |
|
|
|
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.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}"