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

defaultfolderw
Figure 1. Raincode Crossbow folder-Windows

On a Linux machine, the Raincode Console becomes available in the directory where the Raincode Crossbow installation package is extracted.

defaultfolder
Figure 2. Raincode Crossbow folder-Linux

Based on the connections provided in the appsettings.json, the Raincode Console displays the available connections, as shown in the screenshot below.

raincodeconsole
Figure 3. The Raincode Console - Main Page

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:

  1. Hardcode the connection strings in the appsettings.json file

  2. Create your plugin and provide them during the runtime

1.1.1. appsettings.json

  • Double-click on the appsettings.json placed in the installation folder (%RCDIR%\console).

appsettings
Figure 4. appsettings.json
  • 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.json file.

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.

sampleplugin
Figure 5. Sample Plugin

To attach the plugin with RaincodeConsole, add parameter -plugin = <classname.dll> in the StartConsole.bat/ StartConsole.sh.

startconsole
Figure 6. StartConsole.bat
startconsolesh
Figure 7. 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.

logsdirectory
Figure 8. LogsDirectory

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.

appsettings1

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.

image001
Figure 9. IMSql panel

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.

DB
Figure 10. IMSql panel - IMS/DB

2.2. IMSql panel - TM

Below is a screenshot when IMSql mode is set to TM.

TM
Figure 11. IMSql panel - IMS/TM

2.3. Configuration

In the configuration tab, you will find options for Systems, Regions, Programs, and Mappings, which are explained below.

configurationtab
Figure 12. Configuration tab

2.3.1. Systems

This tab provides detailed information about the systems and allows you to add, delete and filter them.

System
Figure 13. Systems tab

2.3.2. Regions

This tab provides detailed information about the regions. In IMSql, terminals and messages are attached to a region.

Region
Figure 14. Regions tab

It allows you to configure and delete the regions.

Click configure 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.

region configure
Figure 15. Configure Region
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.

Program 1
Figure 16. Programs tab

It allows you to configure and delete the records.

Click configure to configure the settings.

program configure
Figure 17. Configure Program

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.

mapping
Figure 18. Mappings tab

It allows you to configure and delete the records.

Click configure 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

mapping configure
Figure 19. Configure Mapping
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.

checkpoints
Figure 20. Checkpoints

2.5. Terminals

This tab provides detailed information about the terminals. It provides the Name, User, Host, Conversation-id and Connection time.

terminal
Figure 21. Terminals tab

2.6. Hosts

This tab provides detailed information about the hosts. It provides HostName, StartTime and LastUpdate.

hosts
Figure 22. Hosts tab

2.7. Diagrams

This tab provides detailed information about the database diagrams.

diagrams
Figure 23. Diagrams tab

It allows you to select multiple databases together using a multi-select drop-down at the top right of the page.

filterdbds
Figure 24. Filter DBDs

When you check on the Show indexes checkbox (in the top right corner), it displays the details about the index.

indexes
Figure 25. Indexes

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

If you click on the database node, it will take you to the grid view of the DBD.

2.8. DBD’s segments

gridview
Figure 26. Grid view

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 fieldicon in the fields column, it displays detailed information about that particular segment.

If you click on the copybook icon copybookicon in the copybook column, it displays the copybook associated with the segment.

If you click on the data icon dataicon in the data column, it displays the segment’s data.

Clicking on bluearrow 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.

fields
Figure 27. Fields details

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.

relatedsegment
Figure 28. Related segment details

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.

Copybook
Figure 29. Copybook details

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.

Data
Figure 30. Data details

When you click the row id (RID), it will display the information filtered by the parent id (PID), as shown in the screenshot below.

filteredbypid
Figure 31. Filtered by PID

Similarly, clicking on Logical Parent ID (LPID) will open the details of the segment associated with that particular RID.

detailsoflpid
Figure 32. Details of the LPID

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.

childsegment
Figure 33. Choose the child segment

Selecting the child segment will display the corresponding row for the PID, as shown in the screenshot below.

detailsofchildsegment
Figure 34. Details of the child segment

Clicking on exporttoexcelvsam 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.

sorteddata
Figure 35. Sorted data

Clicking on datafilter in the column header allows you to filter the data.

datafilter1
Figure 36. Data Filter Options

Click on smalltriangle 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.

mfs
Figure 39. MFS

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)

mfscreeninput
Figure 40. MFS input screen

MFS output screen shows the output message format

mfscreenoutput
Figure 41. MFS output screen

2.10.2. Program specification block

It will display all the PSBs in the grid view.

psb
Figure 42. PSBs

Further clicking the + sign will take you to the details of the PCB defined in this PSB.

psb1
Figure 43. Sensitive segments

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.

PSBs-filter
Figure 44. PSBs Filter

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.

psbondbd
Figure 45. Filter PSBs on a 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.

DBDs
Figure 46. DBDs grid view

If you click on any DBD, it will take you to the Grid view of the DBD. If you click on the diagram icon, the segment diagram is displayed. If you click on one of the segments, segment details will be displayed. For more details, refer to Segments.

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.

services
Figure 48. Services

Further, when you click on any of the services, it will take you to the details of the pending messages.

messagedetails
Figure 49. Messages of service

2.11.2. TransmissionQueue

2.11.3. Queues

This tab provides you with the number of pending messages in the Queues.

queues
Figure 50. Queues

2.11.4. Conversations

This tab provides you with the details of the conversations.

conversations
Figure 51. Conversations

2.12. Monitoring

In the Monitoring tab, you can track Servers and Transactions.

dropdownmenuM
Figure 52. Drop down menu of Monitoring

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.

servermonitoring
Figure 53. Servers

2.12.2. Transactions

This tab provides you the details of transactions executed by each of the Processing Server of all the regions in the IMS system.

transcationsmonitoring
Figure 54. Transactions

3. QIX Panel

The QIX Panel allows you to manage a QIX system.

image002
Figure 55. Main page - The QIX Panel

3.1. QIX Regions

This tab provides you with a list of all the available regions.

regionqix
Figure 56. Regions tab

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.

detailsregion
Figure 57. Details

It allows you to configure and delete the region.

Once you select delete, the region will delete all its corresponding data, such as options, transactions, and service broker queues.

deleteconfirmation
Figure 58. Delete confirmation

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.

optionsregion
Figure 59. Options

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.

transactionregions
Figure 60. Transactions

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.

filetab

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.

programpath
Figure 61. Program path

3.1.6. Map path

This tab allows you to configure (update) or delete the directory path(s) where the terminal server looks for map XML files while executing a transaction on the 3270 Emulator.

mappath
Figure 62. Map path

3.1.7. Service Broker Queues

This tab lists the service broker queues of the selected region.

servicebrokerqueue
Figure 63. Service Broker Queues

Once you click on the queue, a new tab with the pending messages will open.

Qmessage
Figure 64. Queue Messages

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 cr. A pop-up window will appear, asking you to confirm and enter the name of the new region.

crconfirmation
Figure 65. Clone region confirmation

After clicking confirm, another pop-up window will appear after a few seconds, displaying the message of a successful clone.

crsuccessful
Figure 66. Clone successful

The newly cloned region will then appear under the region tab.

clonedregion
Figure 67. Cloned region

3.3. Transient Data Queues

This tab provides details about the Transient Data Queues (TDQueues). It allows you to configure or delete the records.

tdqueue
Figure 68. Transient Data Queues tab

3.4. Transactions

This tab provides details about the transactions of all the regions of the QIX system.

transaction
Figure 69. Transactions tab

It allows you to configure or delete transactions.

Click configure to set the Name, Region Name, Program, and TWA Size, and to enable or disable transactions or the Always use the cache option.

Transcations configure
Figure 70. Transactions Configure

3.5. Monitoring

In the Monitoring tab, you can track the server’s heartbeats and transaction logs.

MonitoringQIX
Figure 71. Drop down menu of Monitoring

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.

qixShuttingDownServer
Figure 72. Servers heartbeats status

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()
}
qixReloadServer
Figure 73. Servers heartbeats status

3.5.2. Transactions Logs

This tab provides you the details of transactions executed by each of the Processing Server of all the regions in the QIX system.

transactionlogs
Figure 74. Transaction logs

4. VsamSql Panel

The VSAMSql Panel allows you to manage a VSAM® system.

image003
Figure 75. Main page - The VSAMSql Panel

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.

datasetsmapping
Figure 76. Dataset mappings tab

Clicking on truncate will delete all the records. At the same time, clicking on delete 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.
datasetstable
Figure 77. Dataset table

exporttoexcelvsam will export data present on the current screen to the Excel sheet in the download folder and truncate1 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.

sorteddatavsam
Figure 78. Sorted data

Clicking on datafilter in the column header allows you to filter the data.

datafilter1
Figure 79. Data Filter Options

Click on smalltriangle 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 changeconnection, located in the top right corner of the Panel’s main screen.

After clicking changeconnection, you will be taken back to the main page of the Raincode Console.

raincodeconsole
Figure 81. The Raincode Console - Main Page