COBOL-to-Java Converter for IBM CICS Applications

SoftwareMining's COBOL-to-Java and COBOL-to-C# Converter supports the migration of IBM CICS applications through automated, rule-based conversion. It operates within the customer's own infrastructure and generates maintainable Java or C# source code.

Business-critical CICS applications may contain decades of proven logic and depend on BMS screens, COMMAREA data, DB2, VSAM, IBM MQ, queues, program links and JCL-controlled batch processing. Conversion must therefore address the complete application architecture while preserving established transaction behaviour, reliability and performance.

The toolkit converts COBOL business logic, supported EXEC CICS commands, BMS maps, program flow and data structures. Generated code uses SoftwareMining runtime components for supported CICS services, including program control, COMMAREA handling, transaction state, queues, file access and condition handling.

SoftwareMining Approach to CICS Conversion

CICS conversion must address the platform services surrounding the COBOL programs. SoftwareMining maps supported dependencies to Java or C# components and provides runtime support for behaviour not available directly from the target language.

Explore and Run AWS CardDemo Converted to Java
Explore CICS and BMS Migration to Java

Key Components of a CICS COBOL-to-Java Migration

SoftwareMining addresses the transaction flow, BMS screens, indexed files, security, messaging and runtime services surrounding the COBOL business logic.

1. Pseudo-Conversational Transaction Processing

CICS applications may return control after displaying each screen and restore transaction state through COMMAREA data when the user responds. SoftwareMining maps this model to Java web-request and session handling, or corresponding .NET state-management facilities, while preserving program flow and data passed between converted components.

2. Converting BMS Screens to Web Interfaces

SoftwareMining converts BMS maps into JSP-based views for Java or corresponding .NET views for C#. Generated interfaces retain the connection between screen fields, application data, display attributes, and SEND MAP and RECEIVE MAP processing.

3. Indexed File and Browse Operations

Supported CICS commands, including READ, WRITE, REWRITE, DELETE, STARTBR, READNEXT, READPREV and ENDBR, are converted into generated data-access operations. When VSAM or KSDS data is migrated to SQL, COBOL record layouts and keys are used to generate relational tables, indexes and Java or C# DAO classes.

SQL indexes, transactions, connection pooling and deployment architecture are considered during behavioural and performance validation.

CICS VSAM KSDS-to-Java Conversion Example

This example shows how a CLIENT-RECORD KSDS layout and EXEC CICS READNEXT operation are converted into a Java data-access object. Although the record begins at COBOL level 05, its use in the CICS operation allows the toolkit to identify and generate it as a separate Java class.

Record / generated DAO CICS / Java operation Record key VSAM file / target mapping

CICS COBOL

Generated Java

WORKING-STORAGE SECTION.

01 WS-DATA.
   05 WS-TMP.
      10 LEN PIC 9(9) VALUE 0.
      10 KEY PIC 99V99 VALUE 0.

   05 CLIENT-RECORD.
      10 NAME    PIC X(20).
      10 ADDRESS PIC X(20) OCCURS 3 TIMES.
      10 ID      PIC 9(4) COMP.
// CLIENT-RECORD is used by a CICS file operation
// and is generated as a CICS-aware relational DAO.

private ClientRecord clientRecord =
    new ClientRecord(this);

// WS-DATA now contains everything but extracted CLIENT-RECORD.

private WsData wsData = new WsData(this);
EXEC CICS
  READNEXT
  DATASET('CLIENT-FILE')
  INTO(CLIENT-RECORD)
  RIDFLD(KEY)
  LENGTH(LEN)
END-EXEC
clientRecord.assignKeyValue(wsData.getKey());

clientRecord.assignTableName("CLIENT-FILE");

clientRecord.next();

4. Security and RACF Requirements

SoftwareMining identifies supported RACF identities, roles and resource authorization dependencies. These can be mapped to interfaces connected to LDAP, Active Directory or another identity service selected for the target application. Existing RACF rules must be analysed rather than assumed to transfer directly to Java or .NET.

5. IBM MQ Integration

Supported IBM MQ operations are converted into calls through a Java or C# messaging interface. The interface can use IBM MQ or another messaging provider selected for the target architecture.

CALL 'MQGET' ...

can be represented by:

MQManager.Get(...);

Message formats, transactions, completion codes and error handling are validated against the original application.

6. CICS Runtime Support

SoftwareMining runtime components provide supported CICS behaviour not available directly in Java or C#. Centralizing these services keeps low-level CICS handling out of the generated business code and provides consistent integration points for testing and configuration.



View COBOL-to-Java and C# Converter Features

Supported CICS Commands and Runtime Services

SoftwareMining converts supported EXEC CICS commands into Java or C# and provides runtime components for the corresponding CICS behaviour. Supported areas include: