Cobol to java modernization Automated

Why Modernization Is Hard – Series 5

Background

It is common to find COBOL or other legacy language application programs calling System modules viz. Standard z/OS Language Environment modules for Date functions, DB2 DSNALI/RLI modules for connection establishment, DSNTIAR utility to get formatted DB2 exception trace, IDCAMS for file allocation, IKJEFT for ISPF functions, Standard abend modules to trigger abnormal termination of process as part of exception handling, and other such utilities.

System Modules

The following are the common categories of system modules that legacy programs call:

1.z/OS Language Environment calls such as

  1. CEEDAYS, CEEDATE that convert between standard date format and Lilian format date for easy date-based arithmetic
  2. CEELOCT to get current local time
  3. CEEGMT to get current Greenwich Mean Time (GMT) in Lilian format
  4. CEEGMTO to get difference between the local system time and Greenwich Mean Time (GMT)
  5. CEE3DLY, CEEDYLM to suspend processing for a duration in seconds or milliseconds
  6. CEEDYWK to return day of week from a Lilian format date
  7. CEE3ABD, ILBOABN0 to request termination of process with an abend code
  8. LE storage related modules

When calculating the date and time, it is important to keep in mind that COBOL dates are based on Gregorian calendar starting January 1st 1601, while Java references the date January 1, 1970, 00:00:00 GMT. I have seen many systems fail to produce correct results because of date calculations.

2. DB2 Service modules

  1. DSNALI/DSNRLI calls to handle DB2 Connections
  2. DSNTIAR that helps programs obtain a formatted form of the SQLCA and a text message that is based on the SQLCODE field of the SQLCA

3. Obtaining MVS Control blocks

  1. Assembler program calls to retrieve Job name, job Id, find dataset attributes and finds out if a program is running in batch or CICS environment etc.
  2. Sometimes, the COBOL programs directly establish pointers to map MVS Control blocks and resolve runtime job related attributes

4. It is not uncommon to find COBOL programs calling System programs for handling dataset, calling REXX and other MVS Services

  1. IDCAMS calls
  2. ISPLINK calls to invoice ISPF services
  3. Passing SORT Control cards via JCL SORTCNTL DD to COBOL SORT statements
  4. Calling Assembler programs to utilize various System services.
    1. WAIT, POST, ENQ, DEQ etc
    2. Dynamic allocation/deallocation of datasets

If your modernization toolkit cannot handle these system utilities, then the manual refactoring work to identify and plug the required missing code to support these calls in legacy application programs will be significantly challenging.

Conclusion

CloudFrame identifies and handles standard system modules that are a part of the call chain of application legacy programs. This provides total transparency when it comes to handling such system modules and facilitates a transparent migration experience, so you don't lose a critical business function in the process.

Venkat Pillay
Venkat Pillay
Founder and CEO

Venkat is a true technology visionary, serial entrepreneur, strategist, deep generalist, and architect. With over 25 years of experience and a passion for innovation, his expertise ranges from Legacy to emerging technology and company building.

Related Posts

why-modernization-projects-fail-and-how-to-make-it-a-success-series-10

Why Modernization Projects Fail And How To Make It A Success – Series 10

When legacy modernization efforts turn into a battlefield between IT ambitions and business realities, the outcome is almost always the same: reality wins. Unfortunately, by the time reality prevails, ...

Read More Aug 27, 2024
why-modernization-is-hard-series-9

Why Modernization Is Hard – Series 9

Modernization should directly support your company's strategic goals. Whether it's entering new markets, improving customer experience, or enabling faster product development, the decision to moderniz ...

Read More Aug 21, 2024
why-modernization-is-hard-series-8

Why Modernization Is Hard – Series 8

COBOL programs often generate reports where field formatting is handled using the 'PICTURE' clause. This clause allows for complex numeric editing and formatting options in these legacy programs. Most ...

Read More Aug 14, 2024
modernization-challenges-db2-syntaxes

Modernization Challenges – Db2 Syntaxes

A common occurrence in COBOL/DB2 programs is the coding of SQL SET assignment statement. This could be used for assigning Current Timestamp, Current Date/Time and doing various Date/Time arithmetic wi ...

Read More Aug 06, 2024