SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
A Checklist for Migrating Big Iron Cobol
Applications
Migrating common business oriented language (Cobol) applications from
HP NonStop Tandem systems to IBM z/OS mainframes requires detailed
analysis of program structuring, variable declaration and keywords and a
methodical conversion approach.
Executive Summary
CIOs facing the rising challenges of higher total
cost of operations (TCO) of HP NonStop Tandem
systems need to find alternatives.1
The bulk of
applications created for these HP systems use
the Cobol programming language. IBM z/OS
mainframes provide an alternative with stability
and reliability similar to the HP NonStop
Tandem systems. However, migrating Cobol
applications written for HP Tandem to IBM
mainframes is fraught with complexity and is
often time-consuming.
This white paper delves into recent versions
of Cobol on both systems and provides a
comprehensive listing of code differences and
similarities. The aim is to provide all the relevant
information CIOs and application developers
need when considering migrating from HP
Tandem to the IBM z/OS mainframe.
The differences and similarities covered include:
•	 Program organization and format. 	
•	 Identification division.
•	 Environment division.
•	 Data division.
•	 Procedure division.
Also included is a case study that offers insights
into compilation issues found when recompiling
an HP Tandem COBOL program on the IBM z/
OS mainframe COBOL Enterprise compiler. The
paper concludes by assessing various conversion
approaches and tools.
Not covered is the use of Screen COBOL
(SCOBOL) language to find differences. The SCO-
BOL language on HP Tandem is similar to Cobol
and is used to generate graphical user-based
interfaces. In addition, we do not tackle embed-
ded SQL programming.
Program Organization and Format
Figure 1 (on next page) illustrates the difference
between the HP Tandem and IBM Cobol reference
format.
cognizant 20-20 insights | june 2013
•	 Cognizant 20-20 Insights
cognizant 20-20 insights 2
Configuration Section
This optional section can be used to describe the
computer environment on which the program is
compiled and executed. Figure 4 (on next page)
compares the paragraph of the configuration
section.
Input-Output Section
Figure 5 (on page 4) compares the paragraph of
the input-output section.
The function of the FILE-CONTROL paragraph is
described in detail below.
The differences can be summarized as shown in
Figure 2.
Identification Division
Identification division must be the first division
in each Cobol source program. It names the pro-
gram, the date of compilation and other docu-
mentary information (see Figure 3, on next page).
Environment Division
Environment division is optional. It contains
two sections, namely CONFIGURATION and
INPUT-OUTPUT.
Organization of the Two Reference Formats
Figure 1
Tandem Reference Format IBM Reference Format
Margin: C A
1 2
Area A
Indicator Area
Area B
Line
3 4 5 6 7 8 9 10 … nx x
n<= 132
B R 1
Sequence Area
Indicator Area
2 3 4 5 6 7 8 9 1110 12 13 …
Area BArea A
71 72
Column:
Summary of Differences in the Two Formats
Figure 2
HP Tandem COBOL IBM z/OS Enterprise COBOL
Number of columns where code lines are
accepted is 132.
Number of columns where code lines are accepted is 72.
There is no area known as “Sequence Number
Area.”
The first six columns are taken as “Sequence Number Area”
which is used to label a source statement line.
The indicator area begins at column 1. It can be
empty or it can contain a single character that
describes the type of information on the line.
?	 Compiler directive
*	 Ordinary comment
/	 Comment for top of next page
D	 Debugging line
d	 Debugging line
-	 Continuation line
Space	 Text line
The indicator area begins at column 7. It can be empty or
it can contain a single character that describes the type of
information on the line.
*	 Ordinary comment
/	 Comment for top of next page
D	 Debugging line
d	 Debugging line
-	 Continuation line
Space	 Text line
There is no distinction made between Area A
and Area B.
Specific items must begin in Area A.
•	 Division headers
•	 Section headers
•	 Paragraph headers or paragraph names
•	 Level indicators (FD and SD) or level-numbers (01 and 77)
•	 DECLARATIVES and END DECLARATIVES
Specific items must begin in Area B.
•	 Entries, sentences, statements and clauses
•	 Continuation lines
cognizant 20-20 insights 3
The Paragraph uses the SELECT clause to connect
an operating system file name to Cobol file name.
The various files possible along with the detailed
clause such as ASSIGN, ORGANIZATION, ACCESS
MODE, RECORD KEY, etc. are described.
The ASSIGN clause associates the name of a
file in a program with the actual external name
of the data file. The #DYNAMIC used in Tandem
COBOL cannot be used in Enterprise COBOL;
instead an alphanumeric literal must be men-
tioned. During the execution of the program, a
job control language (JCL) assignment by the use
of data dictionary (DD) and data source name
(DSN) commands takes care of assigning the
external name of the file. The PASSWORD clause
is present only in Enterprise COBOL which
controls access to files.
Figure 6 (on page 5) summarizes the File-Entry
clause for both HP Tandem COBOL and IBM z/OS
Enterprise COBOL. As seen, the requirement is
the same in both versions; wherever differences
are present on Enterprise COBOL, they have been
marked with a dark gray background.
The SORT-MERGE file is not mentioned here
as the handling for them is the same in both
versions of Cobol dialect.
Data Division
The Data division is the place where all variables
to be used in the program are defined at various
levels, namely from 01-49, 66, 77 and 88. The
level has similar meaning in both the HP Tandem
COBOL and IBM z/OS Enterprise COBOL.
Identification Divisions: Defined and Compared
Figure 3
PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL
PROGRAM-ID
The paragraph specifies the name by which
the program is known and assigns selected
program attributes to that program.
Present. Provides an optional clause of
RECURSIVE to recursively enter a
program while previous invocation
is still active.
AUTHOR
Name of the author of the program.
Present and similar in both versions.
INSTALLATION
Name of the company or location.
DATE-WRITTEN
Date the program was written.
DATE-COMPILED
Date the program was compiled.
SECURITY
Level of confidentiality of the program.
Configuration Section Paragraphs: Defined and Compared
Figure 4
PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL
SOURCE-COMPUTER
The paragraph describes the
computer on which the source
text is to be compiled.
The syntax is similar in both the versions of Cobol.
OBJECT-COMPUTER
The paragraph specifies the
system for which the object
program is designated.
An additional clause of “CHARACTER-
SET” is present which enables it to
specify the national character set
defining the ALPHABETIC data class.
The syntax is similar to HP
Tandem COBOL with the
absence of “CHARACTER-
SET” clause.
SPECIAL-NAMES
The paragraph assigns user-
defined names to certain
system-name parameters.
An additional “SYSTEM-NAME”
clause having values of CONSOLE,
MYTERM, CHANNEL-1 through
CHANNEL-2 is available.
“SYSTEM-NAME” clause is
absent.
More options available to aid
in object-oriented program
development.
cognizant 20-20 insights 4
The Data division is optional. It contains four
optional sections on HP Tandem COBOL.
•	FILE.
•	 WORKING-STORAGE.
•	EXTENDED-STORAGE.
•	LINKAGE.
The EXTENDED-STORAGE section is specific to HP
Tandem COBOL, wherein variables will exceed the
64KB boundary. This section is completely absent
in IBM z/OS Enterprise COBOL which has a section
named LOCAL-STORAGE which is not a replace-
ment of the EXTENDED-STORAGE. Figure 7
(on page 6) describes more of the Cobol sections.
The data-types of NATIVE-2, NATIVE-4 and
NATIVE-8 available on HP Tandem COBOL are not
available on IBM z/OS Enterprise COBOL. These
data types will be replaced by corresponding
signed numeric data types on IBM z/OS Enter-
prise COBOL. In addition, there are options for
double byte character set (DBCS) type literals
which are specific to IBM z/OS Enterprise COBOL.
Procedure Division
Procedure division is the place where Cobol verbs
and statements carry out the business logic
determined for the program. This section details
the verbs and word names only; a detailed syntax
can be found in the respective COBOL manuals
(mentioned in the reference section).
Declarative Section
Declaratives provide one or more special-purpose
sections that are executed when an exceptional
condition occurs on a program file. Each declara-
tive section starts with a USE statement that
identifies the section's function. The series of
procedures that follow specify the actions that
are to be taken when an exception occurs. Each
declarative section ends with another section-
name followed by a USE statement or with the
keywords END DECLARATIVES.
The USE statement has three formats in which
the EXCEPTION/ERROR and DEBUGGING declara-
tives are similar in both HP Tandem COBOL and
IBM z/OS Enterprise COBOL. The LABEL declara-
tive is present only in Enterprise COBOL.
Statements
There are many statements present in HP Tandem
COBOL but not on IBM z/OS Enterprise COBOL,
and vice versa. They are divided into imperative
and conditional types.
•	 Imperative statements: This either specifies
an unconditional action to be taken by the
Input-Output Section Paragraphs: Defined and Compared
Figure 5
PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL
FILE-CONTROL
A file-control entry connects an
operating system file name to a
Cobol file name, specifies the file’s
organization and keys and provides
additional information needed for
input and output.
The Paragraph is present in both versions and is described in detail
in the text on pages 2 and 3.
I-O-CONTROL
The optional I-O-CONTROL
paragraph specifies positioning
information for a tape file
or the sharing of a memory
area by more than one file.
The Paragraph is similar in both versions. The one difference is that
Enterprise COBOL contains APPLY WRITE-ONLY Clause.
RECEIVE-CONTROL The Paragraph is specific to HP
Tandem COBOL by which the inter-
process message (IPM) communica-
tion known as $RECEIVE is enabled.
The reading of $RECEIVE is not
mandatory for the batch category
of programs whereas it’s mandatory
for the online category of programs
that deal with user interaction.
The Paragraph is absent as
the $RECEIVE concept is not
available. An alternative to the
online category of programs
is possible by use of customer
information control system
(CICS) calls and IBM’s message
queue (MQ) mechanism.
cognizant 20-20 insights 5
	
>	 ACCEPT
>	 ADD
>	 ALTER
>	 CALL
>	 CANCEL
>	 CLOSE
>	 COMPUTE
>	 CONTINUE
>	 COPY
>	 DELETE
>	 DISPLAY
>	 DIVIDE
>	 ENTER
>	 EVALUATE
>	 EXIT
>	 GOTO
>	 IF
The statements present only on HP Tandem
COBOL are shown in Figure 8 (on page 7).
The statements present only in Enterprise COBOL:
>	 ENTRY
>	 EXIT PROGRAM
>	 GOBACK
>	 INVOKE
>	 XML GENERATE
>	 XML PARSE
•	 Conditional statements: The conditional
statement specifies that the truth value of
a condition is to be determined and that the
subsequent action of the object program is
dependent on this truth value.
All the conditional statements present on HP
Tandem COBOL are present on Enterprise
COBOL. The additional ones on Enterprise
COBOL are noted below.
File-Entry Clauses
Figure 6
Note: QSAM = Queue Sequenced Access Method, VSAM = Virtual Sequenced Access Method
CLAUSE SEQUEN-
TIAL
QSAM/
VSAM
LINE SE-
QUENTIAL
LINE SE-
QUENTIAL
RELATIVE VSAM INDEXED VSAM
SELECT Required Required Required Required
ASSIGN Required Required Required Required
RESERVE Optional Optional NA Optional Optional
ORGANIZATION
(Default
SEQUENTIAL)
Optional Optional - Line
Sequential
Required -
Relative
Required -
Indexed
PADDING
CHARACTER
Optional NA
Not applicable
NA NA
RECORD
DELIMITER
Optional NA NA NA
ACCESS MODE Sequential Sequential Sequential
Random
Dynamic
Sequential
Random
Dynamic
RECORD KEY NA NA NA Required
RELATIVE KEY NA NA Optional if access
mode is sequential.
Required for Ran-
dom and Dynamic
access modes.
NA
ALTERNATE
RECORD KEY
Optional NA NA Optional NA Optional
PASSWORD Optional NA Optional Optional
FILE STATUS Optional Optional Optional Optional
program or is a conditional statement termi-
nated by its explicit scope terminator.
	 The following statements are available in both
HP Tandem COBOL and Enterprise COBOL:
>	 INITIALIZE
>	 INSPECT
>	 MERGE
>	 MOVE
>	 MULTIPLY
>	 OPEN
>	 PERFORM
>	 READ
>	 RELEASE
>	 REPLACE
>	 RETURN
>	 REWRITE
>	 SEARCH
>	 SET
>	 SORT
>	 START
>	 STOP
>	 STRING
>	 SUBTRACT
>	 UNSTRING
>	 USE
>	 WRITE
cognizant 20-20 insights 6
>	 XML GENERATE ... ON EXCEPTION
>	 XML GENERATE ... NOT ON EXCEPTION
>	 XML PARSE ... ON EXCEPTION
>	 XML PARSE ... NOT ON EXCEPTION
>	 INVOKE ... ON EXCEPTION
>	 INVOKE ... NOT ON EXCEPTION
Reserved Words
A reserved word is a character string with a
predefined meaning in a Cobol source unit. In
addition to the similar keywords, there are some
keywords that are specific to HP Tandem COBOL
and Enterprise COBOL which are mentioned
in Figure 9 (on page 8). It needs to be checked
in programs for conversion planning.
Figurative Constants
Figurative constants are reserved words that
name and refer to specific constant values. The
constants NULL and NULLS are available only
in Enterprise COBOL and not in Tandem COBOL.
All other constants are the same in both versions.
Common Phrases
The following phrases common to arithmetic and
data manipulation statements are used similarly
in both HP Tandem COBOL and Enterprise COBOL:
>	 CORRESPONDING
>	 GIVING
>	 ROUNDED
>	 SIZE ERROR
>	 FROM
>	 INTO
Data Division Sections: Defined and Compared
Figure 7
SECTION HP Tandem COBOL IBM z/OS Enterprise COBOL
FILE
The section identifies a
file and the various layouts
by which the file can be
accessed.
The section syntax is similar in
both versions, with an additional
clause of “REPORT” which is not
present in Enterprise COBOL.
It is also possible to ASSIGN a file
to the DEFINE name parameter
which is passed onto the program.
Syntax is similar.
An additional clause of “RECORDING
MODE” having value of F (Fixed),
V (Variable), U (Fixed/Variable) or
S (Spanned) for a QSAM file.
Assigning a file to the DEFINE
name parameter is not possible.
WORKING-STORAGE
The various variables used
to perform the business
functionality in the program
are declared and, if required,
defined as well.
Usage of the section is similar in
both versions.
HP limits the size of variable in the
section to 63,400 bytes, above which
the variables must be declared in the
EXTENDED-STORAGE section, which
has a limit of up to 133,693,440 bytes.
There’s also a binder limit of 32767
words on the total WORKING-STOR-
AGE memory of all bound COBOL
programs.
IBM z/OS allows a limit of
134,217,727 bytes which is higher than
the total of WORKING-STORAGE and
EXTENDED-STORAGE sections on
HP Tandem COBOL.
EXTENDED-STORAGE
The section is required in
case the variable size is too
big to fit in the WORKING-
STORAGE section.
The section is used when variables
cannot be fit in the WORKING-STOR-
AGE section.
The section is absent.
LINKAGE
The section is used in case
the program is going to call
and pass on parameters to
other modules.
The section usage is similar in both the versions.
LOCAL STORAGE
The section is used to create
recursive programs.
Not present. The section is used to create recur-
sive programs. The data-variables
declared in this section are initialized
on each invocation of the recursion,
thereby insulating different instances.
A program not containing this section
can’t be recursive and an attempt
leads to run-time system error.
cognizant 20-20 insights 7
Intrinsic Functions
An intrinsic function is a function that a program
can use without needing to declare or code it
explicitly in the program. It returns a value that
is computed at the time of reference during the
execution of the object program.
The following intrinsic functions are available
both in Enterprise COBOL and in Tandem COBOL.
The functions themselves are explained in
detail in their respective manuals listed under the
reference:
The following intrinsic functions are present only
on Enterprise COBOL:
>	 DATE-TO-YYYYMMDD
>	 DATEVAL
>	 DAY-TO-YYYYDDD
>	 DISPLAY-OF
>	 NATIONAL-OF
>	 UNDATE
>	 YEAR-TO-YYYY
>	 YEARWINDOW
Availability Statistics and Performance
HP NonStop Tandem’s availability statistics
and performance (ASAP) product monitors the
HP Tandem operating system and application
resources. The related calls can be coded in
programs to gain insights into critical applica-
tions running on HP NonStop Tandem systems.
This investigation enables users to plan for the
infrastructure growth as required.
Tivoli software can be used to measure current
response times of programs running on IBM
z/OS for good and bad transactions, the use
of resources, amount of MQ messages and
DB2 calls.
Based on further investigations, a product similar
to ASAP – Application Performance Analyzer2
–
exists on the IBM platform.
Transaction Management Facility
The HP NonStop Tandem transaction manage-
ment facility (TMF) product furnishes transac-
tion protection, database consistency and data-
HP-Only Imperative Statements
Figure 8
Statements HP Tandem COBOL IBM z/OS Enterprise COBOL
CHECKPOINT
STARTBACKUP
SYNCDEPTH phrase of OPEN
FREE
ALLOCATE
The statements are used to develop
fault-tolerant programs known as
Nonstop Process pairs.
Such fault-tolerant programming
is not available.
LOCKFILE
UNLOCKFILE
UNLOCKRECORD
The statements are used to LOCK
and UNLOCK the accessibility of a
file during the program execution.
The option to LOCK/UNLOCK a file
exists by use of JCL statements. But
the locking is applicable throughout
the execution of the program and
not on an as-needed basis, which is
available on HP Tandem COBOL.
USING and GIVING Phrase
of ENTER statement
The statement is used to perform
mixed-language programming wherein
sources in languages other than Cobol
are called within Cobol programs.
The statement is not available. The
CALL statement is used to perform
the mixed-language programming.
>	 ACOS
>	 ANNUITY
>	 ASIN
>	 ATAN
>	 CHAR
>	 COS
>	 CURRENT-DATE
>	 DATE-OF-INTEGER
>	 DAY-OF-INTEGER
>	 FACTORIAL
>	 INTEGER
>	 INTEGER-OF-DATE
>	 INTEGER-OF-DAY
>	 INTEGER-PART
>	 LENGTH
>	 WHEN-COMPILED
>	 LOG
>	 LOG10
>	 LOWER-CASE
>	 MAX
>	 MEAN
>	 MEDIAN
>	 MIDRANGE
>	 MIN
>	 MOD
>	 NUMVAL
>	 NUMVAL-C
>	 ORD
>	 ORD-MAX
>	 ORD-MIN
>	 PRESENT-VALUE
>	 RANDOM
>	 RANGE
>	 REM
>	 REVERSE
>	 SIN
>	 SQRT
>	 STANDARD-
DEVIATION
>	 SUM
>	 TAN
>	 UPPER-CASE
>	 VARIANCE
cognizant 20-20 insights 8
Key Words Specific to Respective COBOL Versions
Figure 9
Key words present only
in HP Tandem COBOL
Key words present only
in Enterprise COBOL
APPROXIMATE BASIS
CD BEGINNING
CF CBL
CH CLASS-ID
CHARACTER-SET COM-REG
CHECKPOINT COMP-1
CLOCK-UNITS COMP-2
COLLATING COMP-4
COLUMN COMPUTATIONAL-1
COMMUNICATION COMPUTATIONAL-2
CONTROL COMPUTATIONAL-4
CONTROLS DBCS
DE DISPLAY-1
DESTINATION EGCS
DETAIL EJECT
DISABLE FUNCTION-POINTER
EGI GOBACK
EMI GROUP-USAGE
ENABLE ID
EXCLUSIVE INHERITS
EXTENDED-STORAGE INVOKE
FINAL JNIENVPTR
GENERIC KANJI
GROUP LOCAL-STORAGE
GUARDIAN-ERR METHOD
HEADING METHOD-ID
INDICATE MORE-LABELS
INITIATE OBJECT
LAST OVERRIDE
LIMIT PROCEDURE-POINTER
LIMITS PROCESSING
LINE-COUNTER READY
LOCKFILE RECORDING
MESSAGE RELOAD
NUMBER RETURN-CODE
PAGE-COUNTER RETURNING
PF SELF
PH SERVICE
Key words present only
in HP Tandem COBOL
Key words present only
in Enterprise COBOL
PLUS SHIFT-IN
PRINTING SHIFT-OUT
PROGRAM-STATUS SKIP1
PROGRAM-STATUS-1 SKIP2
PROGRAM-STATUS-2 SKIP3
PROMPT SORT-CONTROL
PROTECTED SORT-CORE-SIZE
PURGE SORT-FILE-SIZE
QUEUE SQL
RD TITLE
RECEIVE TRACE
RECEIVE-CONTROL WHEN-COMPILED
REPLY WRITE-ONLY
REPORT ZEROS
REPORTING XML
REPORTS XML-CODE
RF XML-EVENT
RH XML-NAMESPACE
SEGMENT XML-NAMESPACE-
PREFIX
SEND XML-NNAMESPACE
SHARED XML-NNAMESPACE-
PREFIX
SOURCE XML-NTEXT
STARTBACKUP XML-SCHEMA
SUB-QUEUE-1 XML-TEXT
SUB-QUEUE-2
SUB-QUEUE-3
SUM
SYNCDEPTH
TAL
TERMINAL
TERMINATE
TEXT
UNLOCK
UNLOCKFILE
UNLOCKRECORD
base recovery critical in high-volume transaction
processing. It sustains high performance for
online transaction processing (OLTP) applica-
tions, as well as online query processing (OLQP)
activities, batch processing applications and
decision-support systems.
•	 Database consistency: On the IBM z/OS
Enterprise COBOL, an invocation of a pro-
gram unit containing DB2 leads to a starting
of a DB2 thread which encapsulates all the
transactions till a COMMIT statement is used
to finalize the transaction onto the database.
The similar action is available on the HP
Tandem COBOL by the use of TMF-based calls
of BEGINTRANSACTION, ENDTRANSACTION
and ABORTTRANSACTION.
•	 Restart mechanism: This mechanism is a
methodology to ensure transactions in a large
cognizant 20-20 insights 9
data file are processed only once when a pro-
cess failure is identified. This is possible in both
HP Tandem COBOL and IBM z/OS Enterprise
COBOL by use of appropriate programming.
Compiler Directives
The compiler directive is the word that directs
the compiler to perform a certain action when
the program is being compiled to create the final
runnable object. Both Cobol versions provide the
option to enable this action in different manners.
The directive “?SOURCE” is heavily used in HP
Tandem COBOL to source-in different modules or
a data dictionary. An alternative for “?SOURCE”
is achieved by entering “BASIS” on the IBM z/OS
Enterprise COBOL.
The directives “?LIST ?NOLIST ?PAGE” have
similar meanings on both HP Tandem COBOL and
IBM z/OS Enterprise COBOL.
The processing accomplished by directives of
“?CONSULT” and “?SEARCH” is possible on IBM
z/OS Enterprise COBOL by use of JCL scripting
statement of STEPLIB which enables a program
to use information from a library of load modules.
The directives listed below have no alternative on
IBM z/OS Enterprise COBOL:
HEADING, SAVE, INSPECT, SYMBOLS, ICODE,
HEAP, SAVEABEND, ANSI, TANDEM, IF, ENDIF,
IFNOT, SETOG PORT, NONSTOP, SECTION, NOB-
LANK
Conclusion
Based on the investigations using a sample HP
Tandem COBOL program converted into Enter-
prise COBOL by the use of Cobol and CICS/VS
Command Level Conversion Aid (CCCA) tool, the
following conclusions were reached:
•	 Application with online programs only:
Such an application is heavily driven by use
of SCOBOL requestor programs interact-
ing with a Cobol server which provides the
business logic.
The suggested option is to create the speci-
fications of the business logic which need to
be migrated to IBM and then do the develop-
ment of the necessary logic on IBM z/OS from
scratch by use of CICS and Cobol by using MQ
as the message tunnel between the user GUI
and COBOL program.
The rationale behind the suggested option:
>	 The SCOBOL code is very different than
CICS and hardly any similarities can be
found.
>	 The handling of user interaction in SCOBOL
is very different than CICS and automated
conversion is not feasible.
•	 Application with batch programs only: This
approach works with systems heavily driven
by the use of Cobol programs that provide the
business logic in batch mode and where the
concept of IPM is rarely used. The suggested
option is to create the conversion specifica-
tions known as language conversion program
(LCP) and use the CCCA tool for automated
conversion. A certain minimum level of manual
conversion may still be required.
The rationale behind the suggested option:
>	 A lot of similarities exist which can be lever-
aged to have an automated conversion of
batch programs.
>	 An automated approach will enable enter-
prises to reduce the development cost.
•	 Application with a combination of both
types of programs: The conversion approach
depends on the ratio of online to batch
programs present in the application.
The more online programs present in the
application, the more the option suggested
for online-only programs should be used.
The same rationale also applies when the
application is laden with batch programs and
fewer online programs are present.
cognizant 20-20 insights 10
Quick Take
Cobol Compilation at a Global Banking Major
At a Netherlands-based financial institution with worldwide operations, an exercise to check the feasi-
bility of migrating Cobol applications from HP to IBM was performed to select a future IT platform for
building current account and payment engine applications.
Business Situation
To identify the modifications required for
ensuring correct compilation of HP Tandem
COBOL on the IBM z/OS system.
Challenges and Actions Taken
•	 Creating a sample Cobol program on the
HP Tandem system using many of the
Cobol functions, statements, etc.
•	 Ensuring correct compilation on the HP
Tandem system and then aligning the code
correctly for compilation using the IBM
z/OS Enterprise COBOL compiler.
•	 Compile the code on the IBM z/OS system
and identify the errors received and actions
to overcome them.
Benefits
The following is a comprehensive table indicating the actions to be taken on treating the possible compi-
lation errors that can occur on compiling a HP Tandem Cobol program on an IBM z/OS system.
HP Tandem COBOL Code
Snippet
Errors Received Replacement in Enterprise COBOL
SELECT FILE1 ASSIGN
TO #DYNAMIC
ENTER "COBOLASSIGN"
USING
Non-COBOL character(s) were
found starting with "#" in
column 44. The characters
were discarded. "DYNAMIC"
was found in the "ASSIGN"
clause. The clause was dis-
carded.
The #DYNAMIC is not used in
Enterprise COBOL; instead, an alpha-
numeric literal must be mentioned.
During the execution of the program,
a JCL assignment by use of DD and
DSN commands takes care of assign-
ing the external name of the file. The
ENTER "COBOLASSIGN" statement is
not required.
?NOLIST A character other than
"*", "D", "/" or "-" was
found in column 7. A blank
was assumed. "NOLIST"
should not begin in area "A".
It was processed as if found
in area "B".
"NOLIST" was invalid. Scan-
ning was resumed at the next
area "A" item, level-number or
the start of the next clause.
The compiler directives must not
start with “?”.
02 Y NATIVE-2 "NATIVE-2" was invalid. Scan-
ning was resumed at the next
area "A" item, level-number,
or the start of the next clause.
Replace the NATIVE-2 with picture
clause PIC S9(4).
cognizant 20-20 insights 11
SELECT FILE5 ASSIGN
TO FILE5
ORGANIZATION IS
SEQUENTIAL
ACCESS MODE IS
SEQUENTIAL
FILE STATUS IS FST-FILE5.
FD FILE5.
01 FILE5-REC.
03 FILE5-ID.
05 FIELD-5 PIC X(06).
05 TEST-9 PIC X(35).
05 TEST-10 PIC X(80).
A "RECORDING MODE" of "F"
was assumed for file "FILE5".
The “RECORDING MODE” clause is
mandatory option for Sequential/
QSAM files.
SELECT FILE1 ASSIGN
TO FILE1
ORGANIZATION IS RELA-
TIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS KEY-FILE1
FILE STATUS IS FST-FILE1.
01 KEY-FILE1 PIC S9(6)
COMP.
"RELATIVE KEY" "KEY-
FILE1" was not defined as an
unsigned integer data item.
The key was discarded.
The Relative Key must not be a
signed integer.
MOVE FUNCTION ACOS (-1)
TO MF-A
Numeric function "NUMERIC
FUNCTION ACOS" was not
allowed in this context. The
statement was discarded.
For Numeric and Integer Intrinsic
functions, MOVE is not allowed.
A COMPUTE statement must be
mentioned.
MOVE CORRESPONDING
W-ADD-GR-1 TO W-ADD-GR-2
ADD CORRESPONDING
W-ADD-GR-1 TO W-ADD-GR-2
01 W-ADD-GR-1.
03 W-GR1 PIC 9(02).
03 W-GR2 PIC 9(02).
01 W-ADD-GR-2.
03 W-GR3 PIC 9(02).
03 W-GR4 PIC 9(02).
No "CORRESPONDING"
operands were found.
The statement had no effect.
The subordinate data items present
in the group data items must be of
the same name.
OPEN INPUT FILE1 SHARED "SHARED" was not defined
as a file-name. The statement
was discarded.
The options of SHARED/PROTECTED/
EXCLUSIVE are not available in Enter-
prise COBOL. It needs to be taken
care by use of JCL statements.
START FILE4 KEY = TEST-8
OF FILE4-ID OF FILE4-REC
GENERIC
"GENERIC" was invalid.
Skipped to the next verb,
period or procedure-name
definition.
The options of GENERIC, EXACT,
APPROX mode to position a key to
read a record are not available.
Further Steps
A more complicated program containing all the elements possible in an HP Tandem COBOL Program
to be compiled on both the systems to find ways to overcome more compiler errors on the IBM
z/OS system.
cognizant 20-20 insights 12
About the Authors
Ameen Abbas is an Associate within Cognizant’s Banking and Financial Services Business Unit. He has
over five years of application-building experience with Cobol and the C programming language across
the complete SDLC lifecycle. His areas of expertise include requirements rationalization and designing,
building and deploying banking applications for European financial institutions. He holds a bachelor of
engineering degree in computer science from Anna University affiliated college in India. Ameen can be
reached at AmeenAbbas.A@cognizant.com. Linkedin http://www.linkedin.com/in/ameenabbas.
Janani Karunanithi is an Associate within Cognizant’s Banking and Financial Services Business Unit.
She has over five years of application-building experience with Cobol and the C programming language
for European banks across the complete SDLC lifecycle. Her areas of expertise include current account
engine enhancement, functional requirements gathering and designing, building and deploying banking
applications for European financial institutions. She holds a bachelor of engineering degree in elec-
tronics and communication from Anna University affiliated college in India. Janani can be reached at
Janani.Karunanithi@cognizant.com. Linkedin http://in.linkedin.com/pub/janani-karunanithi/17/23b/991.
Thilakam Ponnuraj is an Associate within Cognizant’s Banking and Financial Services Business Unit.
She has over five years of application-building experience using the Cobol programming language for
European banks and has been involved in the complete SDLC lifecycle. Her areas of expertise include
payment engine enhancement, functional requirements rationalization and designing, building, deploy-
ing and providing third-line support of banking applications for European banks. She holds a bache-
lor of engineering degree in electronics and communication from Anna University affiliated college in
India. Thilakam can be reached at Thilakam.P@cognizant.com. Linkedin http://www.linkedin.com/pub/
thilakam-ponnuraj/50/a23/502.
Meenakshi Sundaram Arunachalam is a Senior Manager within Cognizant’s Banking and Financial
Services Business Unit. He has 13-plus years of experience as solution architect and HP Tandem
NonStop technical architect for domestic and cross-border payments projects. His areas of expertise
involve pre-sales, payment engine application designing, building, deploying and large scale project
management. He holds a master of computer applications degree from Madurai Kamaraj University
in India. Meenakshi can be reached at MeenakshiSundaram.A@cognizant.com. Linkedin http://www.
linkedin.com/pub/meenakshi-sundaram-arunachalam/4/116/193.
Rammurthy Mudaliar is a Senior Associate within Cognizant’s Banking and Financial Services Business
Unit. He has eight-plus years of experience in application building with Cobol, TAL and C languages
for European banks using Wallstreet Systems’ Atlas/GBS product suite. His areas of expertise involve
designing, building, deploying, third-line support and project management for FX, money-market,
treasury and cross-border payments applications involving a globally distributed team. He holds a bach-
elor of engineering degree in electronics from Mumbai University. He can be reached at Rammurthy.
Mudaliar@cognizant.com. Linkedin http://www.linkedin.com/pub/rammurthy-mudaliar/19/2a2/27b.
References
•	HP Nonstop Tandem COBOL Reference manuals, http://bizsupport2.austin.hp.com/bc/docs/support/
SupportManual/c02121195/c02121195.pdf.
•	IBM z/OS Enterprise COBOL Reference manuals, http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/
topic/com.ibm.entcobol.doc_4.2/PGandLR/igy3pg50.pdf.
Footnotes
1
	Ian Bramley, “Declining HP Integrity NonStop Far Outclassed by IBM System z10 Mainframe,”
Enterprise e-Infrastructure Analysis, September 2009, ftp://public.dhe.ibm.com/common/ssi/rep_
wh/n/ZSL03066USEN/ZSL03066USEN.PDF.
2
	 Product information, IBM site, http://www-03.ibm.com/software/products/fr/fr/apa/.
About Cognizant
Cognizant (NASDAQ: CTSH) is a leading provider of information technology, consulting, and business process
outsourcing services, dedicated to helping the world’s leading companies build stronger businesses. Headquartered
in Teaneck, New Jersey (U.S.), Cognizant combines a passion for client satisfaction, technology innovation, deep
industry and business process expertise, and a global, collaborative workforce that embodies the future of work.
With over 50 delivery centers worldwide and approximately 162,700 employees as of March 31, 2013, Cognizant is a
member of the NASDAQ-100, the S&P 500, the Forbes Global 2000, and the Fortune 500 and is ranked among the
top performing and fastest growing companies in the world.
Visit us online at www.cognizant.com for more information.
World Headquarters
500 Frank W. Burr Blvd.
Teaneck, NJ 07666 USA
Phone: +1 201 801 0233
Fax: +1 201 801 0243
Toll Free: +1 888 937 3277
Email: inquiry@cognizant.com
European Headquarters
1 Kingdom Street
Paddington Central
London W2 6BD
Phone: +44 (0) 207 297 7600
Fax: +44 (0) 207 121 0102
Email: infouk@cognizant.com
India Operations Headquarters
#5/535, Old Mahabalipuram Road
Okkiyam Pettai, Thoraipakkam
Chennai, 600 096 India
Phone: +91 (0) 44 4209 6000
Fax: +91 (0) 44 4209 6060
Email: inquiryindia@cognizant.com
­­© Copyright 2013, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any
means, electronic, mechanical, photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein is
subject to change without notice. All other trademarks mentioned herein are the property of their respective owners.

Contenu connexe

Similaire à A Checklist for Migrating Big Iron Cobol Applications

Cobol training class-1
Cobol training class-1Cobol training class-1
Cobol training class-1
Anil Polsani
 
Cobol training class-1
Cobol training class-1Cobol training class-1
Cobol training class-1
Anil Polsani
 
Mainframe refresher-part-1
Mainframe refresher-part-1Mainframe refresher-part-1
Mainframe refresher-part-1
vishwas17
 

Similaire à A Checklist for Migrating Big Iron Cobol Applications (20)

Cobol
CobolCobol
Cobol
 
Bca cobol
Bca cobolBca cobol
Bca cobol
 
Skillwise - Cobol Programming Basics
Skillwise - Cobol Programming BasicsSkillwise - Cobol Programming Basics
Skillwise - Cobol Programming Basics
 
Cobol programming language
Cobol programming languageCobol programming language
Cobol programming language
 
COBOL FOR FRESHER
COBOL FOR FRESHERCOBOL FOR FRESHER
COBOL FOR FRESHER
 
COBOL Foundation 1
COBOL Foundation 1COBOL Foundation 1
COBOL Foundation 1
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Cobol training class-1
Cobol training class-1Cobol training class-1
Cobol training class-1
 
Cobol training class-1
Cobol training class-1Cobol training class-1
Cobol training class-1
 
Mainframe refresher-part-1
Mainframe refresher-part-1Mainframe refresher-part-1
Mainframe refresher-part-1
 
A beginner's guide to cobol programming
A beginner's guide to cobol programmingA beginner's guide to cobol programming
A beginner's guide to cobol programming
 
Cobol簡介
Cobol簡介Cobol簡介
Cobol簡介
 
Embedded C.pptx
Embedded C.pptxEmbedded C.pptx
Embedded C.pptx
 
Unit-2.pptx
Unit-2.pptxUnit-2.pptx
Unit-2.pptx
 
Chapter 3(1)
Chapter 3(1)Chapter 3(1)
Chapter 3(1)
 
Lecture 1 progrmming with C
Lecture 1 progrmming with C Lecture 1 progrmming with C
Lecture 1 progrmming with C
 
COBOL Foundation 2
COBOL Foundation 2COBOL Foundation 2
COBOL Foundation 2
 
CICS-COBOL to J2EE Migration – White Paper
CICS-COBOL to J2EE Migration – White PaperCICS-COBOL to J2EE Migration – White Paper
CICS-COBOL to J2EE Migration – White Paper
 
C programming languag for cse students
C programming languag for cse studentsC programming languag for cse students
C programming languag for cse students
 
All around cobol
All around cobolAll around cobol
All around cobol
 

Plus de Cognizant

Plus de Cognizant (20)

Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
Using Adaptive Scrum to Tame Process Reverse Engineering in Data Analytics Pr...
 
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-makingData Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
Data Modernization: Breaking the AI Vicious Cycle for Superior Decision-making
 
It Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional ExperiencesIt Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
It Takes an Ecosystem: How Technology Companies Deliver Exceptional Experiences
 
Intuition Engineered
Intuition EngineeredIntuition Engineered
Intuition Engineered
 
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
The Work Ahead: Transportation and Logistics Delivering on the Digital-Physic...
 
Enhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital InitiativesEnhancing Desirability: Five Considerations for Winning Digital Initiatives
Enhancing Desirability: Five Considerations for Winning Digital Initiatives
 
The Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility MandateThe Work Ahead in Manufacturing: Fulfilling the Agility Mandate
The Work Ahead in Manufacturing: Fulfilling the Agility Mandate
 
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
The Work Ahead in Higher Education: Repaving the Road for the Employees of To...
 
Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...Engineering the Next-Gen Digital Claims Organisation for Australian General I...
Engineering the Next-Gen Digital Claims Organisation for Australian General I...
 
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
Profitability in the Direct-to-Consumer Marketplace: A Playbook for Media and...
 
Green Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for SustainabilityGreen Rush: The Economic Imperative for Sustainability
Green Rush: The Economic Imperative for Sustainability
 
Policy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for InsurersPolicy Administration Modernization: Four Paths for Insurers
Policy Administration Modernization: Four Paths for Insurers
 
The Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with DigitalThe Work Ahead in Utilities: Powering a Sustainable Future with Digital
The Work Ahead in Utilities: Powering a Sustainable Future with Digital
 
AI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to ValueAI in Media & Entertainment: Starting the Journey to Value
AI in Media & Entertainment: Starting the Journey to Value
 
Operations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First ApproachOperations Workforce Management: A Data-Informed, Digital-First Approach
Operations Workforce Management: A Data-Informed, Digital-First Approach
 
Five Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the CloudFive Priorities for Quality Engineering When Taking Banking to the Cloud
Five Priorities for Quality Engineering When Taking Banking to the Cloud
 
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining FocusedGetting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
Getting Ahead With AI: How APAC Companies Replicate Success by Remaining Focused
 
Crafting the Utility of the Future
Crafting the Utility of the FutureCrafting the Utility of the Future
Crafting the Utility of the Future
 
Utilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data PlatformUtilities Can Ramp Up CX with a Customer Data Platform
Utilities Can Ramp Up CX with a Customer Data Platform
 
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
The Work Ahead in Intelligent Automation: Coping with Complexity in a Post-Pa...
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

A Checklist for Migrating Big Iron Cobol Applications

  • 1. A Checklist for Migrating Big Iron Cobol Applications Migrating common business oriented language (Cobol) applications from HP NonStop Tandem systems to IBM z/OS mainframes requires detailed analysis of program structuring, variable declaration and keywords and a methodical conversion approach. Executive Summary CIOs facing the rising challenges of higher total cost of operations (TCO) of HP NonStop Tandem systems need to find alternatives.1 The bulk of applications created for these HP systems use the Cobol programming language. IBM z/OS mainframes provide an alternative with stability and reliability similar to the HP NonStop Tandem systems. However, migrating Cobol applications written for HP Tandem to IBM mainframes is fraught with complexity and is often time-consuming. This white paper delves into recent versions of Cobol on both systems and provides a comprehensive listing of code differences and similarities. The aim is to provide all the relevant information CIOs and application developers need when considering migrating from HP Tandem to the IBM z/OS mainframe. The differences and similarities covered include: • Program organization and format. • Identification division. • Environment division. • Data division. • Procedure division. Also included is a case study that offers insights into compilation issues found when recompiling an HP Tandem COBOL program on the IBM z/ OS mainframe COBOL Enterprise compiler. The paper concludes by assessing various conversion approaches and tools. Not covered is the use of Screen COBOL (SCOBOL) language to find differences. The SCO- BOL language on HP Tandem is similar to Cobol and is used to generate graphical user-based interfaces. In addition, we do not tackle embed- ded SQL programming. Program Organization and Format Figure 1 (on next page) illustrates the difference between the HP Tandem and IBM Cobol reference format. cognizant 20-20 insights | june 2013 • Cognizant 20-20 Insights
  • 2. cognizant 20-20 insights 2 Configuration Section This optional section can be used to describe the computer environment on which the program is compiled and executed. Figure 4 (on next page) compares the paragraph of the configuration section. Input-Output Section Figure 5 (on page 4) compares the paragraph of the input-output section. The function of the FILE-CONTROL paragraph is described in detail below. The differences can be summarized as shown in Figure 2. Identification Division Identification division must be the first division in each Cobol source program. It names the pro- gram, the date of compilation and other docu- mentary information (see Figure 3, on next page). Environment Division Environment division is optional. It contains two sections, namely CONFIGURATION and INPUT-OUTPUT. Organization of the Two Reference Formats Figure 1 Tandem Reference Format IBM Reference Format Margin: C A 1 2 Area A Indicator Area Area B Line 3 4 5 6 7 8 9 10 … nx x n<= 132 B R 1 Sequence Area Indicator Area 2 3 4 5 6 7 8 9 1110 12 13 … Area BArea A 71 72 Column: Summary of Differences in the Two Formats Figure 2 HP Tandem COBOL IBM z/OS Enterprise COBOL Number of columns where code lines are accepted is 132. Number of columns where code lines are accepted is 72. There is no area known as “Sequence Number Area.” The first six columns are taken as “Sequence Number Area” which is used to label a source statement line. The indicator area begins at column 1. It can be empty or it can contain a single character that describes the type of information on the line. ? Compiler directive * Ordinary comment / Comment for top of next page D Debugging line d Debugging line - Continuation line Space Text line The indicator area begins at column 7. It can be empty or it can contain a single character that describes the type of information on the line. * Ordinary comment / Comment for top of next page D Debugging line d Debugging line - Continuation line Space Text line There is no distinction made between Area A and Area B. Specific items must begin in Area A. • Division headers • Section headers • Paragraph headers or paragraph names • Level indicators (FD and SD) or level-numbers (01 and 77) • DECLARATIVES and END DECLARATIVES Specific items must begin in Area B. • Entries, sentences, statements and clauses • Continuation lines
  • 3. cognizant 20-20 insights 3 The Paragraph uses the SELECT clause to connect an operating system file name to Cobol file name. The various files possible along with the detailed clause such as ASSIGN, ORGANIZATION, ACCESS MODE, RECORD KEY, etc. are described. The ASSIGN clause associates the name of a file in a program with the actual external name of the data file. The #DYNAMIC used in Tandem COBOL cannot be used in Enterprise COBOL; instead an alphanumeric literal must be men- tioned. During the execution of the program, a job control language (JCL) assignment by the use of data dictionary (DD) and data source name (DSN) commands takes care of assigning the external name of the file. The PASSWORD clause is present only in Enterprise COBOL which controls access to files. Figure 6 (on page 5) summarizes the File-Entry clause for both HP Tandem COBOL and IBM z/OS Enterprise COBOL. As seen, the requirement is the same in both versions; wherever differences are present on Enterprise COBOL, they have been marked with a dark gray background. The SORT-MERGE file is not mentioned here as the handling for them is the same in both versions of Cobol dialect. Data Division The Data division is the place where all variables to be used in the program are defined at various levels, namely from 01-49, 66, 77 and 88. The level has similar meaning in both the HP Tandem COBOL and IBM z/OS Enterprise COBOL. Identification Divisions: Defined and Compared Figure 3 PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL PROGRAM-ID The paragraph specifies the name by which the program is known and assigns selected program attributes to that program. Present. Provides an optional clause of RECURSIVE to recursively enter a program while previous invocation is still active. AUTHOR Name of the author of the program. Present and similar in both versions. INSTALLATION Name of the company or location. DATE-WRITTEN Date the program was written. DATE-COMPILED Date the program was compiled. SECURITY Level of confidentiality of the program. Configuration Section Paragraphs: Defined and Compared Figure 4 PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL SOURCE-COMPUTER The paragraph describes the computer on which the source text is to be compiled. The syntax is similar in both the versions of Cobol. OBJECT-COMPUTER The paragraph specifies the system for which the object program is designated. An additional clause of “CHARACTER- SET” is present which enables it to specify the national character set defining the ALPHABETIC data class. The syntax is similar to HP Tandem COBOL with the absence of “CHARACTER- SET” clause. SPECIAL-NAMES The paragraph assigns user- defined names to certain system-name parameters. An additional “SYSTEM-NAME” clause having values of CONSOLE, MYTERM, CHANNEL-1 through CHANNEL-2 is available. “SYSTEM-NAME” clause is absent. More options available to aid in object-oriented program development.
  • 4. cognizant 20-20 insights 4 The Data division is optional. It contains four optional sections on HP Tandem COBOL. • FILE. • WORKING-STORAGE. • EXTENDED-STORAGE. • LINKAGE. The EXTENDED-STORAGE section is specific to HP Tandem COBOL, wherein variables will exceed the 64KB boundary. This section is completely absent in IBM z/OS Enterprise COBOL which has a section named LOCAL-STORAGE which is not a replace- ment of the EXTENDED-STORAGE. Figure 7 (on page 6) describes more of the Cobol sections. The data-types of NATIVE-2, NATIVE-4 and NATIVE-8 available on HP Tandem COBOL are not available on IBM z/OS Enterprise COBOL. These data types will be replaced by corresponding signed numeric data types on IBM z/OS Enter- prise COBOL. In addition, there are options for double byte character set (DBCS) type literals which are specific to IBM z/OS Enterprise COBOL. Procedure Division Procedure division is the place where Cobol verbs and statements carry out the business logic determined for the program. This section details the verbs and word names only; a detailed syntax can be found in the respective COBOL manuals (mentioned in the reference section). Declarative Section Declaratives provide one or more special-purpose sections that are executed when an exceptional condition occurs on a program file. Each declara- tive section starts with a USE statement that identifies the section's function. The series of procedures that follow specify the actions that are to be taken when an exception occurs. Each declarative section ends with another section- name followed by a USE statement or with the keywords END DECLARATIVES. The USE statement has three formats in which the EXCEPTION/ERROR and DEBUGGING declara- tives are similar in both HP Tandem COBOL and IBM z/OS Enterprise COBOL. The LABEL declara- tive is present only in Enterprise COBOL. Statements There are many statements present in HP Tandem COBOL but not on IBM z/OS Enterprise COBOL, and vice versa. They are divided into imperative and conditional types. • Imperative statements: This either specifies an unconditional action to be taken by the Input-Output Section Paragraphs: Defined and Compared Figure 5 PARAGRAPH HP Tandem COBOL IBM z/OS Enterprise COBOL FILE-CONTROL A file-control entry connects an operating system file name to a Cobol file name, specifies the file’s organization and keys and provides additional information needed for input and output. The Paragraph is present in both versions and is described in detail in the text on pages 2 and 3. I-O-CONTROL The optional I-O-CONTROL paragraph specifies positioning information for a tape file or the sharing of a memory area by more than one file. The Paragraph is similar in both versions. The one difference is that Enterprise COBOL contains APPLY WRITE-ONLY Clause. RECEIVE-CONTROL The Paragraph is specific to HP Tandem COBOL by which the inter- process message (IPM) communica- tion known as $RECEIVE is enabled. The reading of $RECEIVE is not mandatory for the batch category of programs whereas it’s mandatory for the online category of programs that deal with user interaction. The Paragraph is absent as the $RECEIVE concept is not available. An alternative to the online category of programs is possible by use of customer information control system (CICS) calls and IBM’s message queue (MQ) mechanism.
  • 5. cognizant 20-20 insights 5 > ACCEPT > ADD > ALTER > CALL > CANCEL > CLOSE > COMPUTE > CONTINUE > COPY > DELETE > DISPLAY > DIVIDE > ENTER > EVALUATE > EXIT > GOTO > IF The statements present only on HP Tandem COBOL are shown in Figure 8 (on page 7). The statements present only in Enterprise COBOL: > ENTRY > EXIT PROGRAM > GOBACK > INVOKE > XML GENERATE > XML PARSE • Conditional statements: The conditional statement specifies that the truth value of a condition is to be determined and that the subsequent action of the object program is dependent on this truth value. All the conditional statements present on HP Tandem COBOL are present on Enterprise COBOL. The additional ones on Enterprise COBOL are noted below. File-Entry Clauses Figure 6 Note: QSAM = Queue Sequenced Access Method, VSAM = Virtual Sequenced Access Method CLAUSE SEQUEN- TIAL QSAM/ VSAM LINE SE- QUENTIAL LINE SE- QUENTIAL RELATIVE VSAM INDEXED VSAM SELECT Required Required Required Required ASSIGN Required Required Required Required RESERVE Optional Optional NA Optional Optional ORGANIZATION (Default SEQUENTIAL) Optional Optional - Line Sequential Required - Relative Required - Indexed PADDING CHARACTER Optional NA Not applicable NA NA RECORD DELIMITER Optional NA NA NA ACCESS MODE Sequential Sequential Sequential Random Dynamic Sequential Random Dynamic RECORD KEY NA NA NA Required RELATIVE KEY NA NA Optional if access mode is sequential. Required for Ran- dom and Dynamic access modes. NA ALTERNATE RECORD KEY Optional NA NA Optional NA Optional PASSWORD Optional NA Optional Optional FILE STATUS Optional Optional Optional Optional program or is a conditional statement termi- nated by its explicit scope terminator. The following statements are available in both HP Tandem COBOL and Enterprise COBOL: > INITIALIZE > INSPECT > MERGE > MOVE > MULTIPLY > OPEN > PERFORM > READ > RELEASE > REPLACE > RETURN > REWRITE > SEARCH > SET > SORT > START > STOP > STRING > SUBTRACT > UNSTRING > USE > WRITE
  • 6. cognizant 20-20 insights 6 > XML GENERATE ... ON EXCEPTION > XML GENERATE ... NOT ON EXCEPTION > XML PARSE ... ON EXCEPTION > XML PARSE ... NOT ON EXCEPTION > INVOKE ... ON EXCEPTION > INVOKE ... NOT ON EXCEPTION Reserved Words A reserved word is a character string with a predefined meaning in a Cobol source unit. In addition to the similar keywords, there are some keywords that are specific to HP Tandem COBOL and Enterprise COBOL which are mentioned in Figure 9 (on page 8). It needs to be checked in programs for conversion planning. Figurative Constants Figurative constants are reserved words that name and refer to specific constant values. The constants NULL and NULLS are available only in Enterprise COBOL and not in Tandem COBOL. All other constants are the same in both versions. Common Phrases The following phrases common to arithmetic and data manipulation statements are used similarly in both HP Tandem COBOL and Enterprise COBOL: > CORRESPONDING > GIVING > ROUNDED > SIZE ERROR > FROM > INTO Data Division Sections: Defined and Compared Figure 7 SECTION HP Tandem COBOL IBM z/OS Enterprise COBOL FILE The section identifies a file and the various layouts by which the file can be accessed. The section syntax is similar in both versions, with an additional clause of “REPORT” which is not present in Enterprise COBOL. It is also possible to ASSIGN a file to the DEFINE name parameter which is passed onto the program. Syntax is similar. An additional clause of “RECORDING MODE” having value of F (Fixed), V (Variable), U (Fixed/Variable) or S (Spanned) for a QSAM file. Assigning a file to the DEFINE name parameter is not possible. WORKING-STORAGE The various variables used to perform the business functionality in the program are declared and, if required, defined as well. Usage of the section is similar in both versions. HP limits the size of variable in the section to 63,400 bytes, above which the variables must be declared in the EXTENDED-STORAGE section, which has a limit of up to 133,693,440 bytes. There’s also a binder limit of 32767 words on the total WORKING-STOR- AGE memory of all bound COBOL programs. IBM z/OS allows a limit of 134,217,727 bytes which is higher than the total of WORKING-STORAGE and EXTENDED-STORAGE sections on HP Tandem COBOL. EXTENDED-STORAGE The section is required in case the variable size is too big to fit in the WORKING- STORAGE section. The section is used when variables cannot be fit in the WORKING-STOR- AGE section. The section is absent. LINKAGE The section is used in case the program is going to call and pass on parameters to other modules. The section usage is similar in both the versions. LOCAL STORAGE The section is used to create recursive programs. Not present. The section is used to create recur- sive programs. The data-variables declared in this section are initialized on each invocation of the recursion, thereby insulating different instances. A program not containing this section can’t be recursive and an attempt leads to run-time system error.
  • 7. cognizant 20-20 insights 7 Intrinsic Functions An intrinsic function is a function that a program can use without needing to declare or code it explicitly in the program. It returns a value that is computed at the time of reference during the execution of the object program. The following intrinsic functions are available both in Enterprise COBOL and in Tandem COBOL. The functions themselves are explained in detail in their respective manuals listed under the reference: The following intrinsic functions are present only on Enterprise COBOL: > DATE-TO-YYYYMMDD > DATEVAL > DAY-TO-YYYYDDD > DISPLAY-OF > NATIONAL-OF > UNDATE > YEAR-TO-YYYY > YEARWINDOW Availability Statistics and Performance HP NonStop Tandem’s availability statistics and performance (ASAP) product monitors the HP Tandem operating system and application resources. The related calls can be coded in programs to gain insights into critical applica- tions running on HP NonStop Tandem systems. This investigation enables users to plan for the infrastructure growth as required. Tivoli software can be used to measure current response times of programs running on IBM z/OS for good and bad transactions, the use of resources, amount of MQ messages and DB2 calls. Based on further investigations, a product similar to ASAP – Application Performance Analyzer2 – exists on the IBM platform. Transaction Management Facility The HP NonStop Tandem transaction manage- ment facility (TMF) product furnishes transac- tion protection, database consistency and data- HP-Only Imperative Statements Figure 8 Statements HP Tandem COBOL IBM z/OS Enterprise COBOL CHECKPOINT STARTBACKUP SYNCDEPTH phrase of OPEN FREE ALLOCATE The statements are used to develop fault-tolerant programs known as Nonstop Process pairs. Such fault-tolerant programming is not available. LOCKFILE UNLOCKFILE UNLOCKRECORD The statements are used to LOCK and UNLOCK the accessibility of a file during the program execution. The option to LOCK/UNLOCK a file exists by use of JCL statements. But the locking is applicable throughout the execution of the program and not on an as-needed basis, which is available on HP Tandem COBOL. USING and GIVING Phrase of ENTER statement The statement is used to perform mixed-language programming wherein sources in languages other than Cobol are called within Cobol programs. The statement is not available. The CALL statement is used to perform the mixed-language programming. > ACOS > ANNUITY > ASIN > ATAN > CHAR > COS > CURRENT-DATE > DATE-OF-INTEGER > DAY-OF-INTEGER > FACTORIAL > INTEGER > INTEGER-OF-DATE > INTEGER-OF-DAY > INTEGER-PART > LENGTH > WHEN-COMPILED > LOG > LOG10 > LOWER-CASE > MAX > MEAN > MEDIAN > MIDRANGE > MIN > MOD > NUMVAL > NUMVAL-C > ORD > ORD-MAX > ORD-MIN > PRESENT-VALUE > RANDOM > RANGE > REM > REVERSE > SIN > SQRT > STANDARD- DEVIATION > SUM > TAN > UPPER-CASE > VARIANCE
  • 8. cognizant 20-20 insights 8 Key Words Specific to Respective COBOL Versions Figure 9 Key words present only in HP Tandem COBOL Key words present only in Enterprise COBOL APPROXIMATE BASIS CD BEGINNING CF CBL CH CLASS-ID CHARACTER-SET COM-REG CHECKPOINT COMP-1 CLOCK-UNITS COMP-2 COLLATING COMP-4 COLUMN COMPUTATIONAL-1 COMMUNICATION COMPUTATIONAL-2 CONTROL COMPUTATIONAL-4 CONTROLS DBCS DE DISPLAY-1 DESTINATION EGCS DETAIL EJECT DISABLE FUNCTION-POINTER EGI GOBACK EMI GROUP-USAGE ENABLE ID EXCLUSIVE INHERITS EXTENDED-STORAGE INVOKE FINAL JNIENVPTR GENERIC KANJI GROUP LOCAL-STORAGE GUARDIAN-ERR METHOD HEADING METHOD-ID INDICATE MORE-LABELS INITIATE OBJECT LAST OVERRIDE LIMIT PROCEDURE-POINTER LIMITS PROCESSING LINE-COUNTER READY LOCKFILE RECORDING MESSAGE RELOAD NUMBER RETURN-CODE PAGE-COUNTER RETURNING PF SELF PH SERVICE Key words present only in HP Tandem COBOL Key words present only in Enterprise COBOL PLUS SHIFT-IN PRINTING SHIFT-OUT PROGRAM-STATUS SKIP1 PROGRAM-STATUS-1 SKIP2 PROGRAM-STATUS-2 SKIP3 PROMPT SORT-CONTROL PROTECTED SORT-CORE-SIZE PURGE SORT-FILE-SIZE QUEUE SQL RD TITLE RECEIVE TRACE RECEIVE-CONTROL WHEN-COMPILED REPLY WRITE-ONLY REPORT ZEROS REPORTING XML REPORTS XML-CODE RF XML-EVENT RH XML-NAMESPACE SEGMENT XML-NAMESPACE- PREFIX SEND XML-NNAMESPACE SHARED XML-NNAMESPACE- PREFIX SOURCE XML-NTEXT STARTBACKUP XML-SCHEMA SUB-QUEUE-1 XML-TEXT SUB-QUEUE-2 SUB-QUEUE-3 SUM SYNCDEPTH TAL TERMINAL TERMINATE TEXT UNLOCK UNLOCKFILE UNLOCKRECORD base recovery critical in high-volume transaction processing. It sustains high performance for online transaction processing (OLTP) applica- tions, as well as online query processing (OLQP) activities, batch processing applications and decision-support systems. • Database consistency: On the IBM z/OS Enterprise COBOL, an invocation of a pro- gram unit containing DB2 leads to a starting of a DB2 thread which encapsulates all the transactions till a COMMIT statement is used to finalize the transaction onto the database. The similar action is available on the HP Tandem COBOL by the use of TMF-based calls of BEGINTRANSACTION, ENDTRANSACTION and ABORTTRANSACTION. • Restart mechanism: This mechanism is a methodology to ensure transactions in a large
  • 9. cognizant 20-20 insights 9 data file are processed only once when a pro- cess failure is identified. This is possible in both HP Tandem COBOL and IBM z/OS Enterprise COBOL by use of appropriate programming. Compiler Directives The compiler directive is the word that directs the compiler to perform a certain action when the program is being compiled to create the final runnable object. Both Cobol versions provide the option to enable this action in different manners. The directive “?SOURCE” is heavily used in HP Tandem COBOL to source-in different modules or a data dictionary. An alternative for “?SOURCE” is achieved by entering “BASIS” on the IBM z/OS Enterprise COBOL. The directives “?LIST ?NOLIST ?PAGE” have similar meanings on both HP Tandem COBOL and IBM z/OS Enterprise COBOL. The processing accomplished by directives of “?CONSULT” and “?SEARCH” is possible on IBM z/OS Enterprise COBOL by use of JCL scripting statement of STEPLIB which enables a program to use information from a library of load modules. The directives listed below have no alternative on IBM z/OS Enterprise COBOL: HEADING, SAVE, INSPECT, SYMBOLS, ICODE, HEAP, SAVEABEND, ANSI, TANDEM, IF, ENDIF, IFNOT, SETOG PORT, NONSTOP, SECTION, NOB- LANK Conclusion Based on the investigations using a sample HP Tandem COBOL program converted into Enter- prise COBOL by the use of Cobol and CICS/VS Command Level Conversion Aid (CCCA) tool, the following conclusions were reached: • Application with online programs only: Such an application is heavily driven by use of SCOBOL requestor programs interact- ing with a Cobol server which provides the business logic. The suggested option is to create the speci- fications of the business logic which need to be migrated to IBM and then do the develop- ment of the necessary logic on IBM z/OS from scratch by use of CICS and Cobol by using MQ as the message tunnel between the user GUI and COBOL program. The rationale behind the suggested option: > The SCOBOL code is very different than CICS and hardly any similarities can be found. > The handling of user interaction in SCOBOL is very different than CICS and automated conversion is not feasible. • Application with batch programs only: This approach works with systems heavily driven by the use of Cobol programs that provide the business logic in batch mode and where the concept of IPM is rarely used. The suggested option is to create the conversion specifica- tions known as language conversion program (LCP) and use the CCCA tool for automated conversion. A certain minimum level of manual conversion may still be required. The rationale behind the suggested option: > A lot of similarities exist which can be lever- aged to have an automated conversion of batch programs. > An automated approach will enable enter- prises to reduce the development cost. • Application with a combination of both types of programs: The conversion approach depends on the ratio of online to batch programs present in the application. The more online programs present in the application, the more the option suggested for online-only programs should be used. The same rationale also applies when the application is laden with batch programs and fewer online programs are present.
  • 10. cognizant 20-20 insights 10 Quick Take Cobol Compilation at a Global Banking Major At a Netherlands-based financial institution with worldwide operations, an exercise to check the feasi- bility of migrating Cobol applications from HP to IBM was performed to select a future IT platform for building current account and payment engine applications. Business Situation To identify the modifications required for ensuring correct compilation of HP Tandem COBOL on the IBM z/OS system. Challenges and Actions Taken • Creating a sample Cobol program on the HP Tandem system using many of the Cobol functions, statements, etc. • Ensuring correct compilation on the HP Tandem system and then aligning the code correctly for compilation using the IBM z/OS Enterprise COBOL compiler. • Compile the code on the IBM z/OS system and identify the errors received and actions to overcome them. Benefits The following is a comprehensive table indicating the actions to be taken on treating the possible compi- lation errors that can occur on compiling a HP Tandem Cobol program on an IBM z/OS system. HP Tandem COBOL Code Snippet Errors Received Replacement in Enterprise COBOL SELECT FILE1 ASSIGN TO #DYNAMIC ENTER "COBOLASSIGN" USING Non-COBOL character(s) were found starting with "#" in column 44. The characters were discarded. "DYNAMIC" was found in the "ASSIGN" clause. The clause was dis- carded. The #DYNAMIC is not used in Enterprise COBOL; instead, an alpha- numeric literal must be mentioned. During the execution of the program, a JCL assignment by use of DD and DSN commands takes care of assign- ing the external name of the file. The ENTER "COBOLASSIGN" statement is not required. ?NOLIST A character other than "*", "D", "/" or "-" was found in column 7. A blank was assumed. "NOLIST" should not begin in area "A". It was processed as if found in area "B". "NOLIST" was invalid. Scan- ning was resumed at the next area "A" item, level-number or the start of the next clause. The compiler directives must not start with “?”. 02 Y NATIVE-2 "NATIVE-2" was invalid. Scan- ning was resumed at the next area "A" item, level-number, or the start of the next clause. Replace the NATIVE-2 with picture clause PIC S9(4).
  • 11. cognizant 20-20 insights 11 SELECT FILE5 ASSIGN TO FILE5 ORGANIZATION IS SEQUENTIAL ACCESS MODE IS SEQUENTIAL FILE STATUS IS FST-FILE5. FD FILE5. 01 FILE5-REC. 03 FILE5-ID. 05 FIELD-5 PIC X(06). 05 TEST-9 PIC X(35). 05 TEST-10 PIC X(80). A "RECORDING MODE" of "F" was assumed for file "FILE5". The “RECORDING MODE” clause is mandatory option for Sequential/ QSAM files. SELECT FILE1 ASSIGN TO FILE1 ORGANIZATION IS RELA- TIVE ACCESS MODE IS RANDOM RELATIVE KEY IS KEY-FILE1 FILE STATUS IS FST-FILE1. 01 KEY-FILE1 PIC S9(6) COMP. "RELATIVE KEY" "KEY- FILE1" was not defined as an unsigned integer data item. The key was discarded. The Relative Key must not be a signed integer. MOVE FUNCTION ACOS (-1) TO MF-A Numeric function "NUMERIC FUNCTION ACOS" was not allowed in this context. The statement was discarded. For Numeric and Integer Intrinsic functions, MOVE is not allowed. A COMPUTE statement must be mentioned. MOVE CORRESPONDING W-ADD-GR-1 TO W-ADD-GR-2 ADD CORRESPONDING W-ADD-GR-1 TO W-ADD-GR-2 01 W-ADD-GR-1. 03 W-GR1 PIC 9(02). 03 W-GR2 PIC 9(02). 01 W-ADD-GR-2. 03 W-GR3 PIC 9(02). 03 W-GR4 PIC 9(02). No "CORRESPONDING" operands were found. The statement had no effect. The subordinate data items present in the group data items must be of the same name. OPEN INPUT FILE1 SHARED "SHARED" was not defined as a file-name. The statement was discarded. The options of SHARED/PROTECTED/ EXCLUSIVE are not available in Enter- prise COBOL. It needs to be taken care by use of JCL statements. START FILE4 KEY = TEST-8 OF FILE4-ID OF FILE4-REC GENERIC "GENERIC" was invalid. Skipped to the next verb, period or procedure-name definition. The options of GENERIC, EXACT, APPROX mode to position a key to read a record are not available. Further Steps A more complicated program containing all the elements possible in an HP Tandem COBOL Program to be compiled on both the systems to find ways to overcome more compiler errors on the IBM z/OS system.
  • 12. cognizant 20-20 insights 12 About the Authors Ameen Abbas is an Associate within Cognizant’s Banking and Financial Services Business Unit. He has over five years of application-building experience with Cobol and the C programming language across the complete SDLC lifecycle. His areas of expertise include requirements rationalization and designing, building and deploying banking applications for European financial institutions. He holds a bachelor of engineering degree in computer science from Anna University affiliated college in India. Ameen can be reached at AmeenAbbas.A@cognizant.com. Linkedin http://www.linkedin.com/in/ameenabbas. Janani Karunanithi is an Associate within Cognizant’s Banking and Financial Services Business Unit. She has over five years of application-building experience with Cobol and the C programming language for European banks across the complete SDLC lifecycle. Her areas of expertise include current account engine enhancement, functional requirements gathering and designing, building and deploying banking applications for European financial institutions. She holds a bachelor of engineering degree in elec- tronics and communication from Anna University affiliated college in India. Janani can be reached at Janani.Karunanithi@cognizant.com. Linkedin http://in.linkedin.com/pub/janani-karunanithi/17/23b/991. Thilakam Ponnuraj is an Associate within Cognizant’s Banking and Financial Services Business Unit. She has over five years of application-building experience using the Cobol programming language for European banks and has been involved in the complete SDLC lifecycle. Her areas of expertise include payment engine enhancement, functional requirements rationalization and designing, building, deploy- ing and providing third-line support of banking applications for European banks. She holds a bache- lor of engineering degree in electronics and communication from Anna University affiliated college in India. Thilakam can be reached at Thilakam.P@cognizant.com. Linkedin http://www.linkedin.com/pub/ thilakam-ponnuraj/50/a23/502. Meenakshi Sundaram Arunachalam is a Senior Manager within Cognizant’s Banking and Financial Services Business Unit. He has 13-plus years of experience as solution architect and HP Tandem NonStop technical architect for domestic and cross-border payments projects. His areas of expertise involve pre-sales, payment engine application designing, building, deploying and large scale project management. He holds a master of computer applications degree from Madurai Kamaraj University in India. Meenakshi can be reached at MeenakshiSundaram.A@cognizant.com. Linkedin http://www. linkedin.com/pub/meenakshi-sundaram-arunachalam/4/116/193. Rammurthy Mudaliar is a Senior Associate within Cognizant’s Banking and Financial Services Business Unit. He has eight-plus years of experience in application building with Cobol, TAL and C languages for European banks using Wallstreet Systems’ Atlas/GBS product suite. His areas of expertise involve designing, building, deploying, third-line support and project management for FX, money-market, treasury and cross-border payments applications involving a globally distributed team. He holds a bach- elor of engineering degree in electronics from Mumbai University. He can be reached at Rammurthy. Mudaliar@cognizant.com. Linkedin http://www.linkedin.com/pub/rammurthy-mudaliar/19/2a2/27b. References • HP Nonstop Tandem COBOL Reference manuals, http://bizsupport2.austin.hp.com/bc/docs/support/ SupportManual/c02121195/c02121195.pdf. • IBM z/OS Enterprise COBOL Reference manuals, http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/ topic/com.ibm.entcobol.doc_4.2/PGandLR/igy3pg50.pdf. Footnotes 1 Ian Bramley, “Declining HP Integrity NonStop Far Outclassed by IBM System z10 Mainframe,” Enterprise e-Infrastructure Analysis, September 2009, ftp://public.dhe.ibm.com/common/ssi/rep_ wh/n/ZSL03066USEN/ZSL03066USEN.PDF. 2 Product information, IBM site, http://www-03.ibm.com/software/products/fr/fr/apa/.
  • 13. About Cognizant Cognizant (NASDAQ: CTSH) is a leading provider of information technology, consulting, and business process outsourcing services, dedicated to helping the world’s leading companies build stronger businesses. Headquartered in Teaneck, New Jersey (U.S.), Cognizant combines a passion for client satisfaction, technology innovation, deep industry and business process expertise, and a global, collaborative workforce that embodies the future of work. With over 50 delivery centers worldwide and approximately 162,700 employees as of March 31, 2013, Cognizant is a member of the NASDAQ-100, the S&P 500, the Forbes Global 2000, and the Fortune 500 and is ranked among the top performing and fastest growing companies in the world. Visit us online at www.cognizant.com for more information. World Headquarters 500 Frank W. Burr Blvd. Teaneck, NJ 07666 USA Phone: +1 201 801 0233 Fax: +1 201 801 0243 Toll Free: +1 888 937 3277 Email: inquiry@cognizant.com European Headquarters 1 Kingdom Street Paddington Central London W2 6BD Phone: +44 (0) 207 297 7600 Fax: +44 (0) 207 121 0102 Email: infouk@cognizant.com India Operations Headquarters #5/535, Old Mahabalipuram Road Okkiyam Pettai, Thoraipakkam Chennai, 600 096 India Phone: +91 (0) 44 4209 6000 Fax: +91 (0) 44 4209 6060 Email: inquiryindia@cognizant.com ­­© Copyright 2013, Cognizant. All rights reserved. No part of this document may be reproduced, stored in a retrieval system, transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the express written permission from Cognizant. The information contained herein is subject to change without notice. All other trademarks mentioned herein are the property of their respective owners.