IBM CICS COBOL-to-Java Conversion Tools

SoftwareMining's automated, rule-based COBOL-to-Java and COBOL-to-C# Conversion Toolkit converts IBM CICS COBOL applications into maintainable Java or C# source code. The toolkit translates COBOL business logic, supported EXEC CICS commands, BMS screen definitions, program flow and data structures used by online transaction applications.

Generated application code integrates with SoftwareMining runtime libraries and framework components that provide the CICS behaviour required by the converted application. This includes support for program linking, COMMAREA data, transaction state, queues, condition handling, file access and other supported CICS services.

The conversion process can also address related technologies including DB2 embedded SQL, VSAM and KSDS files, JCL-controlled batch processing, selected RACF integration requirements and IBM MQ. The required mappings are selected according to the source application and its target Java or .NET architecture.

Application analysis and source-code translation take place within the client's own infrastructure. Enterprise customers and system integrators retain control of the COBOL source, business data, generated Java or C# code, testing and deployment.

For a detailed explanation of how CICS commands, BMS screens, pseudo-conversational processing and online transaction flows are translated, see our technical guide to CICS and BMS conversion .

What Must Be Addressed During CICS COBOL Conversion?

A CICS application cannot be converted by translating COBOL statements alone. Its behaviour also depends on transaction boundaries, program control, COMMAREA data, BMS maps, queues, file access, condition handling, security and other services supplied by the CICS environment.

A complete conversion must identify these dependencies, generate the corresponding Java or C# components and provide runtime support for behaviour not available directly from the target language. The original and converted applications should then be executed using representative transactions and their results compared to validate the required business behaviour.


Download COBOL-to-Java and C# Conversion Toolkit | Free Evaluation

SoftwareMining Approach to CICS Modernization

SoftwareMining translates IBM z/OS COBOL business logic and supported EXEC CICS commands into Java or C# source code. Generated application code works with SoftwareMining runtime libraries and framework components that provide the CICS behaviour required by the modernized application.


Run the Converted Java Version of AWS CardDemo

Key Components of a CICS COBOL-to-Java Migration

A complete CICS migration must address the transaction-processing services surrounding the COBOL business logic. The following components explain how SoftwareMining handles program flow, transaction state, BMS screens, indexed files, security, messaging and supporting CICS runtime behaviour.

1. Pseudo-Conversational Transaction Processing

CICS pseudo-conversational applications normally send a screen and return control to CICS between user interactions. When the user responds, CICS starts the next transaction and restores the application state through mechanisms such as COMMAREA data.

SoftwareMining converts this processing model into web-application request handling. The generated framework uses Java session management or corresponding .NET state-management facilities to represent transaction flow, screen state and data passed between converted programs. The resulting behaviour can then be validated against the original CICS application.

2. Converting BMS Screens to Web Interfaces

BMS map definitions describe screen fields, positions and display attributes used by CICS applications. SoftwareMining converts these maps into web-interface components, including JSP-based views for Java or corresponding .NET views for C#.

  • BMS field names remain connected to the corresponding generated application data.
  • Field values and relevant display attributes are represented in the generated web interface.
  • SEND MAP and RECEIVE MAP processing is connected to the translated program flow.

3. Indexed File and Browse Operations

SoftwareMining maps supported CICS file commands, including READ, WRITE, REWRITE, DELETE, STARTBR, READNEXT, READPREV and ENDBR, to generated data-access classes. When VSAM or KSDS data is migrated to SQL, COBOL record layouts and key definitions are used to generate relational structures and corresponding Java or C# access operations.

Indexes, transaction boundaries, connection pooling and database placement must be considered when validating the performance and behaviour of the migrated file operations.

4. Security and RACF Requirements

CICS applications may depend on RACF user identities, roles and resource authorization. SoftwareMining identifies supported security dependencies and maps them to interfaces that can be connected to the authentication and authorization services selected for the target application.

The precise implementation depends on the customer's security architecture, such as LDAP, Active Directory or another enterprise identity provider. Existing RACF rules must therefore be analysed and mapped rather than assumed to transfer directly to Java or .NET.

5. IBM MQ Integration

SoftwareMining converts supported IBM MQ operations into calls through a Java or C# messaging interface. The interface can be implemented using IBM MQ or connected to another messaging provider selected for the target architecture.

For example, a COBOL MQ call such as:

CALL 'MQGET' ...

can be represented by a generated call such as:

MQManager.Get(...);

The provider behind the generated interface is configured or implemented for the organization's messaging platform. Message formats, transaction boundaries, completion codes and error handling must be validated against the original application.

6. CICS Runtime Support

Java and C# do not provide native equivalents for many CICS services. SoftwareMining runtime libraries provide the supporting behaviour required by the converted application for supported operations such as program control, COMMAREA handling, temporary storage queues, task scheduling, condition handling, resource locking and date-time processing.

Centralizing these behaviours in runtime components avoids reproducing low-level CICS handling throughout the generated business code. It also provides consistent integration points for testing and target-platform configuration.


Supported EXEC CICS Commands in Java and C#

SoftwareMining translates supported EXEC CICS commands into Java or C# calls that use generated application components and SoftwareMining runtime libraries. The required command options, response codes and application data are mapped according to how each command is used by the source program.

The following list summarizes commonly used CICS commands supported by the SoftwareMining Conversion Toolkit. Command usage and options should be confirmed during application analysis because individual CICS applications may depend on platform-specific behaviour or less commonly used options.

Error and Condition Handling

  • EXEC CICS HANDLE CONDITION maps specified CICS conditions to the corresponding translated control flow.
  • EXEC CICS ABEND terminates the current transaction through the generated application framework.

Task Scheduling

  • EXEC CICS START schedules a transaction using the specified time, interval and data options.
  • EXEC CICS RETRIEVE retrieves data supplied to a task initiated by a START command.

Program Flow Control

  • EXEC CICS LINK invokes another converted program and returns control to the calling program.
  • EXEC CICS XCTL transfers control to another converted program without returning to the transferring program.
  • EXEC CICS RETURN returns control to the caller or ends the current transaction, including supported transaction and COMMAREA options.

BMS Screen Processing

  • EXEC CICS SEND TEXT sends unformatted output through the generated user-interface framework.
  • EXEC CICS SEND MAP sends field values and attributes from a generated BMS map representation.
  • EXEC CICS RECEIVE MAP maps submitted screen data into the corresponding generated application fields.

File and Record Access

  • EXEC CICS READ retrieves a record using its key or other supported access options.
  • EXEC CICS WRITE creates a record through the generated data-access component.
  • EXEC CICS REWRITE updates a previously retrieved record.
  • EXEC CICS DELETE deletes the selected record.
  • EXEC CICS STARTBR, READNEXT, READPREV and ENDBR are mapped to ordered browse operations over the migrated data.

Temporary Storage and Transient Data Queues

  • EXEC CICS READQ TS, WRITEQ TS and DELETEQ TS operate on converted temporary storage queues.
  • EXEC CICS READQ TD, WRITEQ TD and DELETEQ TD are mapped to the configured transient-data implementation where supported.

Date and Time Processing

  • EXEC CICS ASKTIME obtains the current time in the representation required by the converted application.
  • EXEC CICS FORMATTIME converts the supplied time into the requested date and time fields.

Storage, Resources and Environment

  • EXEC CICS GETMAIN allocates storage represented by generated Java or C# data structures and runtime components.
  • EXEC CICS INQUIRE SYSTEM, INQUIRE TASK and INQUIRE FILE retrieve supported environment and resource information from the target framework.
  • EXEC CICS ENQ and DEQ are mapped to target locking services for coordinating access to named resources.
  • EXEC CICS ASSIGN retrieves supported transaction, user and execution-environment information.
  • EXEC CICS ROUTE maps routed output to the configured target reporting or output service.
  • EXEC CICS GET COUNTER and DEFINE COUNTER use the configured counter implementation.
  • EXEC CICS PUT CONTAINER and GET CONTAINER store and retrieve channel-container data.

For examples showing how CICS file operations and BMS screen processing are represented in generated Java, see CICS and VSAM-to-Java conversion and CICS and BMS COBOL-to-Java conversion .


Evaluate CICS COBOL-to-Java Conversion

SoftwareMining provides its automated, rule-based Conversion Toolkit directly to enterprise customers and system integrators. Project teams can analyse representative CICS COBOL programs, examine the generated Java or C# source code and validate supported CICS behaviour against the original application.

Review the COBOL-to-Java and COBOL-to-C# Conversion Toolkit features , download the evaluation toolkit or contact SoftwareMining to discuss the CICS commands, BMS maps, files, databases and integration requirements used by your application.


Download COBOL-to-Java and C# Conversion Toolkit | Free Evaluation