Raincode Console
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
The Raincode Console is a tool for managing IMSql, QIX and VSAMSql systems. By providing a centralized interface, it enables users to monitor, configure, and operate IMSql, QIX and VSAMSql systems from a single location.
Compatible with both Windows and Linux, the Console offers a consistent experience across platforms, whether used in development, testing or production environments. It is installed alongside Raincode Crossbow. For more details, refer to the Raincode Crossbow installation guide.
When installed on a Windows machine, the Raincode Console is automatically included during the setup of Raincode Crossbow. By default, it can be found in the Crossbow installation directory (RCDIR).
On a Linux machine, the Raincode Console becomes available in the directory where the Raincode Crossbow installation package is extracted.
Based on the connections provided in the appsettings.json, the Raincode Console displays the available connections, as shown in the screenshot below.
The Raincode Console broadly classifies into:
1.1. Configure the connection strings
To ensure the Raincode Console functions properly after installation, you must configure the connection strings.
There are two ways to configure the connection strings:
-
Hardcode the connection strings in the
appsettings.jsonfile -
Create your plugin and provide them during the runtime
1.1.1. appsettings.json
-
Double-click on the
appsettings.jsonplaced in the installation folder (%RCDIR%\console).
-
Replace the logical name (IMSQL_DEV_CONNSTRING) of the connections with the actual connection strings ("Data Source=sqlsrv2017; uid=username; Pwd=password; Initial Catalog=database name") and save the
appsettings.jsonfile.
For IMSql systems, in the appsettings.json, you have to provide two connection strings:
1. ConfigDB - ConfigDB is the connections string to the IMS configuration database.
2. ApplDB - ApplDB is the connection string to the IMS data database.
1.1.2. Create your plugin
You can create your plugin to provide the actual connection string securely, compile the plugin and attach the plugin to RaincodeConsole by modifying the StartConsole.bat (for Windows) or StartConsole.sh (for Linux), which can be found in %RCDIR%/console.
To attach the plugin with RaincodeConsole, add parameter -plugin = <classname.dll> in the StartConsole.bat/ StartConsole.sh.
DLL and StartConsole.bat/ StartConsole.sh must either be in the same folder, or you must provide the absolute path of the DLL for the RaincodeConsole to work properly.
|
An additional parameter -LogsDirectory allows you to specify a custom location for storing logs.
On a Linux machine, you can access the Raincode Console either by enabling the GUI or through an SSH tunnel from a Windows system.
1.2. Configure IMSql mode (DB/TM)
By default, both IMS/DB and IMS/TM are displayed on the main screen. However, you can customize the main page to display either DB or TM. To do this, set "Mode": "DB" for IMS/DB or "Mode": "Online" for IMS/TM in the appsettings.json file located in the installation folder.
1.3. Running Raincode Console
1.3.1. On Windows
-
Double-click on the shortcut placed on the desktop.
-
This opens the connection in a webpage, based on the settings in appsettings.json.
1.3.2. On Linux
Navigate to the console folder and run StartConsole.sh to excute the console.
Follow these instructions mentioned in here to enable the user interface on a Linux machine.
2. IMSql panel
The IMSql panel enables you to manage an IMS® system. It lets you view and manage IMS/DB and IMS/TM artifacts.
By default, both IMS/DB and IMS/TM are displayed on the IMSql panel, as shown in the screenshot above. However, you can customize it to display only DB or TM. To do this, you can set the mode in the appsettings.json file.
2.1. IMSql panel - DB
Below is a screenshot when IMSql mode is set to DB.
2.2. IMSql panel - TM
Below is a screenshot when IMSql mode is set to TM.
2.3. Configuration
In the configuration tab, you will find options for Systems, Regions, Programs, and Mappings, which are explained below.
2.3.1. Systems
This tab provides detailed information about the systems and allows you to add, delete and filter them.
2.3.2. Regions
This tab provides detailed information about the regions. In IMSql, terminals and messages are attached to a region.
It allows you to configure and delete the regions.
Click
to configure the settings:
Name: the name of the region
System name: the system to which the region is attached
Enable: if checked, the region accepts connections
Local encoding: the code set used in the programs
Terminal encoding: the code set used in the terminal
TM Connection string: the connection string to connect to the service broker used for this region (to manage the queues). If it is empty, it uses the current connection string.
| When you delete a specific region, all the transaction mappings under this region will be removed. |
2.3.3. Programs
This tab provides detailed information about the program.
It allows you to configure and delete the records.
Click
to configure the settings.
2.3.4. Mappings
In IMSql, one transaction code in a region is mapped to a program with a PSB. This tab provides detailed information about all the Mappings.
It allows you to configure and delete the records.
Click
to configure the settings:
Region: the region name
Transaction code: the transaction code
Program: the program name
PSB: the PSB name
SPA size: if this transaction is a conversational transaction, the size of the SPA (scratch pad area). Otherwise, 0
Lterm: if the logical term name (Lterm) is set to true, the program is considered mapped to a logical terminal; if it is set to false, the program is considered mapped to a transaction code
Retry Count: the number of retries; the default value is zero
Retry Wait: the wait time before retying; the default value is 2000 ms. If the Retry Count value is greater than zero after the initial run, and the transaction fails with a non-zero return code, the system waits for the specified Retry Wait time and relaunch the same transaction
Timeout: The time limit for a process to stop; the default value is zero.
Lterm: if the logical term name (Lterm) is set to true, the program is considered mapped to a logical terminal; if it is set to false, the program is considered mapped to a transaction code
| While the Retry is running, the initiator terminal will wait for all the Retries to be performed without any feedback. If the last retry attempt fails, the transaction initiator will receive the last error message. |
| The retry option will not applied on a process stopped by a timeout. |
2.4. Checkpoints
During the execution of the batch program, checkpoints are generated at regular intervals, which can be configured or determined by the program itself. If the batch program interacts with a database, a commit is performed as part of the checkpointing process. This tab provides detailed information about the Checkpoints.
2.5. Terminals
This tab provides detailed information about the terminals. It provides the Name, User, Host, Conversation-id and Connection time.
2.6. Hosts
This tab provides detailed information about the hosts. It provides HostName, StartTime and LastUpdate.
2.7. Diagrams
This tab provides detailed information about the database diagrams.
It allows you to select multiple databases together using a multi-select drop-down at the top right of the page.
When you check on the Show indexes checkbox (in the top right corner), it displays the details about the index.
The green dotted line represents the logical relations between the two segments.
The orange dotted line represents the index relations between the index and the target segment.
You can save the diagram as a pdf by clicking
.
If you click on the database node, it will take you to the grid view of the DBD.
2.8. DBD’s segments
The grid view provides you with the information about the segments of the DBD: their name, length, physical parent, the number of rows in the DB, space occupied by the table, unused space within the allocated space, and the total space allocated to the table.
If you click on the segment’s name or the fields icon
in the fields column, it displays detailed information about that particular segment.
If you click on the copybook icon
in the copybook column, it displays the copybook associated with the segment.
If you click on the data icon
in the data column, it displays the segment’s data.
Clicking on takes you one step back.
|
2.9. Segments
2.9.1. Fields
Fields give you detailed information about the fields of the segments. Such as their sequence type (U - Unique sequence, M - not unique sequence, or empty - no sequence), start position, and length.
2.9.2. Related segment
Related segments give you the list of the segments related to the current one, such as a parent, child, index, etc.
2.9.3. Copybook
This tab provides the copybook describing the segment. A copybook should be associated with this segment to use the copybook function. For more details, refer to the IMSql user guide.
2.9.4. Data
In this tab the segment data is displayed. A view should be associated with the segment to use the data function. For more details, refer to the IMSql user guide.
When you click the row id (RID), it will display the information filtered by the parent id (PID), as shown in the screenshot below.
Similarly, clicking on Logical Parent ID (LPID) will open the details of the segment associated with that particular RID.
When there is more than one child for the segment, clicking on the RID will open a window with all the child segments, allowing you to select the segment to navigate for that particular RID.
Selecting the child segment will display the corresponding row for the PID, as shown in the screenshot below.
Clicking on
will export data on the current screen to the Excel sheet in the download folder.
Clicking on the column header will sort the data. The screenshot below shows that the row id (RID) is sorted in descending order.
Clicking on
in the column header allows you to filter the data.
Click on
to choose the filter operators from the drop-down menu.
2.10. Catalog
Under the drop-down menu of the Catalog, you can access the Message format service (MFS), Program specification block (PSBs) and Database descriptors (DBDs).
2.10.1. Message format service
It will display all the MFS in the grid view.
Further clicking on any MFS will display the input and output screens.
MFS input screen shows the input message format and position of the field in the screen (using a letter)
MFS output screen shows the output message format
2.10.2. Program specification block
It will display all the PSBs in the grid view.
Further clicking the + sign will take you to the details of the PCB defined in this PSB.
A program in the database has access to all the fields within the segments to which it is sensitive.
You can filter the PSBs using a PSBs filter. It allows you to select multiple selections.
You can also filter the PSBs on DBDs using the DBDs filter. This filter will give you the list of all the PSBs available on the selected DBD.
2.10.3. Database descriptors
It will display all the DBDs in the grid view. If the name of the DBD is in bold, it is a fully functional DBD; otherwise, it is an index DBD. The display lists the name of the DBD, the access method, the operating system access method, the target DBD and target segment (for index DBD) and the list of segments. The segment shown in bold is the root segment.
2.11. Service Broker
In the Service Broker tab, you can access the Services, TransmissionQueue, Queues and Conversations options, which are explained below.
2.11.1. Services
This tab provides a list of the involved services within the IMS.
Further, when you click on any of the services, it will take you to the details of the pending messages.
2.12. Monitoring
In the Monitoring tab, you can track Servers and Transactions.
2.12.1. Servers
This tab displays the status of the servers. As shown in the screenshot below, one server is running, indicated by a red heart icon and an enabled stop button. The second server is in the process of shutting down, which you can initiate by clicking the stop button. Once clicked, the stop button will become disabled. Finally, the third server has already been stopped.
3. QIX Panel
The QIX Panel allows you to manage a QIX system.
3.1. QIX Regions
This tab provides you with a list of all the available regions.
Once you click on the region name, it will provide more detailed information about that region, as mentioned in the sections below.
3.1.1. Details
This tab provides the region’s name, connection string, CWA Size, Secmgrcfg, TSQueue Connection string, Codepage, String Runtime encoding, Parallel destination and Log Level.
It allows you to configure and delete the region.
Once you select
, the region will delete all its corresponding data, such as options, transactions, and service broker queues.
3.1.2. Options
This tab lets you create and manage the region options such as Application Id, Service broker connection string, IMS® database connection string, etc.
3.1.3. Transactions
This tab provides you with transaction details of the selected region. It allows you to add, configure or delete the transaction.
3.1.4. Files
This tab allows you to configure (update) or delete the files of a QIX region.
A file consists of the logical name, the DSN and a status indicating if it is enabled or disabled.
This status should be enabled before accessing the file, otherwise it will abend.
Additionally, these files replace the configuration file that can be provided to the processing server.
The path of the catalog can also be stored in the configuration with the region option -Catalog.
3.1.5. Program path
This tab allows you to configure (update) or delete the directory path(s) where the processing server looks for program binaries while running a transaction.
3.2. Clone region
In the QIX region tab, you can create an exact copy of the region with all the existing configurations by clicking on
. A pop-up window will appear, asking you to confirm and enter the name of the new region.
After clicking confirm, another pop-up window will appear after a few seconds, displaying the message of a successful clone.
The newly cloned region will then appear under the region tab.
3.3. Transient Data Queues
This tab provides details about the Transient Data Queues (TDQueues). It allows you to configure or delete the records.
3.4. Transactions
This tab provides details about the transactions of all the regions of the QIX system.
It allows you to configure or delete transactions.
Click
to set the Name, Region Name, Program, and TWA Size, and to enable or disable transactions or the Always use the cache option.
3.5. Monitoring
In the Monitoring tab, you can track the server’s heartbeats and transaction logs.
3.5.1. Servers hearbeats
This tab displays the status of the servers. As you can see in the screenshot below, one server is running, indicated by a red heart icon and enabled Stop and Recycle buttons. The second server is in the process of shutting down, which can be initiated by clicking either the Stop or Recycle button. After clicking, both the buttons become disabled. The only difference between the buttons is the exit code of the server: 0 in the case of the Stop and 2 in the case of the Recycle. In the current scenario, the Recycle button was used, so the processing server is shutting down with an exit code 2.
The screenshot below shows that the server has already been stopped, but a new server was started. This was performed by the following script that uses the exit code to reload the server when the Recycle button is pressed.
$process = (Start-Process -FilePath "$Env:RCBIN\QIX.ProcessingServerRunner.exe" -ArgumentList "-Region=BANKDEMO -ConfigConnectionString=`"$QIXCONN`"" -PassThru)
$process.WaitForExit()
while($process.ExitCode -eq 2) {
$process = (Start-Process -FilePath "$Env:RCBIN\QIX.ProcessingServerRunner.exe" -ArgumentList "-Region=BANKDEMO -ConfigConnectionString=`"$QIXCONN`"" -PassThru)
$process.WaitForExit()
}
4. VsamSql Panel
The VSAMSql Panel allows you to manage a VSAM® system.
4.1. Dataset Mappings
The screenshot below shows the mappings between the datasets and the tables. In the Dataset mapping tab, the records of a dataset and the number of records per dataset are stored.
Clicking on
will delete all the records. At the same time, clicking on
will remove the dataset and its data.
Once you click on the Dataset name, it will display the records of the selected dataset.
| A view should be associated with the table to use the dataset mappings function. |
will export data present on the current screen to the Excel sheet in the download folder and
will delete all the records.
Clicking on the column header will sort the data. The screenshot below shows that the first name (W_FIRSTNAME) is sorted alphabetically.
Clicking on
in the column header allows you to filter the data.
Click on
to choose the filter operators from the drop-down menu.
5. Change Connection
To change between connections such as IMSql, QIX, and VSAMSql, as well as types such as Development, Production, and QA, click
, located in the top right corner of the Panel’s main screen.
After clicking
, you will be taken back to the main page of the Raincode Console.
