Evaluate COBOL Converter Free Trial

IMS COBOL to Java Modernization (Optional C# Support)

IBM COBOL generally follows the COBOL 74/85 standards. However, IMS COBOL applications depend on IBM libraries for both data and screen access. In IMS systems, the same communication format is used for Database (IMS DB) and Screen (IMS DC) operations.

These programs interact with IMS databases through DLI-specific calls, such as:

CALL 'CBLTDLI' USING FUNC ...
or
EXEC DLI 'FUNC' ...

SoftwareMining supports modernization of both IMS DB and IMS DC applications, including DL/I database calls, PCB definitions, SSA processing, message queues, transaction processing, and MFS screen handling. Business logic is deterministically translated into maintainable Java or C# while preserving the behaviour of the original application.

Supported IMS DL/I Operations

During analysis, the SoftwareMining COBOL-to-Java Translator automatically recognises IMS DB and IMS DC statements, identifying database operations, transaction processing, message handling, and screen interactions. This semantic understanding enables accurate, deterministic translation into modern Java or C# while preserving the application's original behaviour.


IMS Feature Modernized Java / C# Implementation Comments
IMS DB (DL/I) Java/C# data-access layer DL/I database operations are translated into equivalent data-access code while preserving the application's business logic and processing sequence.
PCB Definitions Generated data-access classes Program Communication Blocks are represented by generated classes that encapsulate database access and application metadata.
SSA Processing Structured query generation Segment Search Arguments are translated into equivalent database selection logic while preserving application behaviour.
IMS DC Transactions Java/C# transaction processing Transaction flow, conversational state and business processing are preserved within the translated application architecture.
Message Queues Application messaging framework Input and output message handling is modernized while maintaining the application's original processing logic.
MFS Screen Definitions HTML browser interface IMS screen layouts can be modernized into responsive web interfaces while preserving application workflow and validation.
Database Storage Retain IMS or migrate to SQL Applications can continue using IMS where appropriate, or migrate to relational databases as part of the modernization strategy.
Business Logic Deterministically translated Java/C# COBOL business rules, calculations and processing logic are preserved using deterministic translation techniques.
Deployment Java application server or ASP.NET The translated application can be deployed on modern server infrastructure, whether on-premises or in the cloud.

COBOL IMS DB to SQL and Object-Relational Java

COBOL programs access IMS databases using CALL 'CBLTDLI' statements. Because of the IMS design, much of the critical information is only available at runtime and encoded in runtime parameters, making it difficult for developers to understand a program's logic through simple visual inspection.

IMS DL/I Call Purpose Modernized Implementation
GU Get Unique Translated into equivalent keyed database retrieval.
GN Get Next Preserves sequential database navigation.
GNP Get Next Within Parent Maintains hierarchical parent-child traversal.
ISRT Insert Segment Translated into equivalent insert operations.
REPL Replace Segment Translated into equivalent update operations.
DLET Delete Segment Translated into equivalent delete operations.

SoftwareMining utilities convert IMS hierarchical structures, defined in DBDGEN macros, into SQL tables while maintaining all parent-child relationships. The tool also generates a set of Object-Relational data access classes that mirror the same hierarchy. For example, opening a PARENT class (segment) automatically opens all CHILD classes (segments) linked by the referenced PCB.

Using the information defined in program-specific PCBs, the system dynamically builds the relationships required by each program. This allows the translated Java application to determine, at runtime, which SQL tables and relationships should be accessed.

An IMS call emulation layer operates above the Object-Relational classes and SQL tables to preserve original IMS DLI behavior. For instance, the first GN (Get Next) call returns the PARENT data, while the next GN call retrieves data from the CHILD segments.

One major advantage of SoftwareMining's architecture is its ability to report, at runtime, the exact SQL statements generated and executed for each IMS DB call. This transparency allows developers to see which database actions are performed and, in later project phases, replace them with optimized SQL for improved performance and maintainability.

This approach enables a two-phase modernization strategy:

Refactoring COBOL IMS DC Online Applications

IMS DC is used in online applications to manage screens defined in MFS format, typically displayed on IBM 3270 terminals. SoftwareMining's modernization approach converts MFS screen definitions into JSP or XHTML (HTML) formats, making them accessible through standard web browsers.

The initial web interface replicates the look and behavior of the original 3270 screens. Over time, it can be enhanced with modern UI features such as checkboxes, radio buttons, and drop-down lists to improve usability and align with current web standards.

IMS DC Screens Translated to HTML

Video starts at slide: HTML Screen Handling




IBM IMS / IDMS / DL1 COBOL to Java & C# Migration - Further reading