VisualAge Generator to Enterprise Generation Language Migration Guide
To run generated EGL code in a distributed environment, you must change to
run as a native process instead of having the option to run under Transaction
Series (TX Series or CICS). The following list outlines the differences
or changes that are necessary to move from a CICS environment to a native
environment. The list uses VAGen terminology, but you must make the
changes in the corresponding EGL language elements. Refer to Relationship of VisualAge Generator and EGL Language Elements to determine the corresponding EGL language element.
- General differences are as follows:
- There is a change from C++ generation to Java generation. Be sure
to review the section on Differences between generated C++ and generated Java.
- Be sure to test performance and scalability when migrating from CICS to
native environments.
- Communication protocols are different between CICS and native
environments. You must determine which protocol you plan to use and
then change your EGL linkage options parts and resource associations parts
accordingly.
-
The following CICS-specific special function words and service routines are
not supported in native environments:
-
AUDIT (EGL sysLib.audit) for writing a CICS journal entry. You
can create your own non-EGL program named AUDIT to write similar information
to a file for the native environment.
-
EZEPURGE (EGL sysLib.purge) for deleting a temporary storage
queue. You must remove references to sysLib.purge.
Alternatively, you can check sysVar.systemType and only use
sysLib.purge when you are running in the ZOSCICS environment. If
you use this technique, be sure to include the EGL build descriptor option
eliminateSystemDependentCode="YES"
-
EZELOC (EGL sysLib.remoteSystemID) for setting the location of a remote
file, remote program, or the location at which a remote transaction is to be
started using CREATX (EGL sysLib.startTransaction).
-
CICS-specific resource associations are not supported in native
environments. You must change your resource associations part to use
options that are supported for EGL native environments. The following
are CICS-specific resource associations that are not supported for generation
for a native environment:
- CICS spool file.
- Transient data queue, including transient data queue with a trigger level
of 1.
- Temporary storage queue.
- Local VSAM files, except for the AIX environment.
-
The following CICS-supplied features are not supported in native
environments:
- Security services.
- Database connection and retention.
- CICS file management, including the use of recoverable files.
- True segmentation support.
- Program management.
-
Differences when transferring between programs are as follows:
- For main programs other than web transactions, the XFER statement in CICS
transfers to the next transaction ID. For native environments, the XFER
statement transfers to a program name. Therefore, all the EGL
transfer to transaction and show statements must be
modified to specify the program name.
- XFER or DXFR to non-VAGen programs is supported in the CICS
environment. For native environments, transfer to program,
transfer to transaction, and show are not supported to
non-EGL programs.
-
Commit and rollback differences are as follows:
- CICS supports a two-phase commit. Native environments support only
a single-phase commit.
- Files can be defined to CICS as recoverable files. This is not
possible for native environments.
- Message queues are committed or rolled back at the same time as other
resources in a CICS environment. Native environments support only a
single-phase commit so the message queues might not be committed or rolled
back simultaneously with SQL resources if a problem occurs during commit or
rollback.
-
CALL CREATX (EGL sysLib.startTransaction) differences are as
follows:
- CALL CREATX starts another transaction in CICS and honors the parameters
prid and recip. EGL
sysLib.startTransaction starts another program for a native environment
and ignores the parameters prid and recip. As a
minimum, you must change sysLib.startTransaction to specify a program
name if you generate for a native environment.
- CICS supports both local and remote CALL CREATX. EGL
sysLib.startTransaction only supports starting a local program.
-
SQL connection services using EZECONCT (EGL
sysLib.connectionService). In VisualAge Generator, for the CICS
environment, EZECONCT ignores the password. In EGL, for native
environments, sysLib.connectionService uses the password. See Differences between generated C++ and generated Java for aditional differences due to changing to Java
generation.
-
EZE special data word differences are as follows:
- EZEAPP (EGL sysVar.transferName). In VisualAge Generator,
for the CICS environment, when EZEAPP is used with an XFER statement, EZEAPP
contains the name of the new transaction to be started. In EGL, for
native environments, when sysVar.transferName is used with a transfer
to transaction or show statement, sysVar.transferName contains the name
of the new program to be started.
- EZEDEST (EGL sysVar.resourceAssociation). In VisualAge
Generator, for the CICS environment, EZEDEST contains the system resource name
associated with a record while the program is running. In EGL, for
native environments, sysVar.resourceAssociation also contains the
system resource name associated with a record. However, the format of
the information varies depending on the system and the file type.
Therefore, because you are changing both the runtime environment and the file
type, you must review any use of sysVar.resourceAssociation to ensure
that the information provided by your program is correct for your native
environment and file type.
- EZEDESTP (EGL sysVar.printerAssociation). In VisualAge
Generator, for the CICS environment, EZEDESTP contains the destination
associated with the print file. In EGL, for native environments,
sysVar.printerAssociation also contains the file name associated with
the print file. However, the format of the information varies depending
on the system and the file type. Therefore, because you are changing
both the runtime environment and the file type, you must review any use of
sysVar.printerAssociation to ensure that the information provided by
your program is correct for your native environment and file type.
- EZELTERM (EGL sysVar.terminalID). In VisualAge Generator,
for the CICS environment, EZELTERM contains the CICS terminal identifier and
is equivalent to EZEUSR. In EGL, for native environments,
sysVar.terminalID is initialized from the Java Virtual Machine system
property user.name. If this property cannot be retrieved,
sysVar.terminalID contains blanks. sysVar.terminalID is
not equivalent to sysVar.sessionID (which is the EGL replacement for
EZEUSR).
- EZERCODE (EGL sysVar.returnCode). In VisualAge Generator,
for the CICS environment, the value in EZERCODE is not passed back to the
system or calling program. In EGL, for native environments, the value
in EZERCODE is ignored.
- EZERT8 (EGL sysVar.errorCode). In VisualAge Generator, for
the CICS environment, EZERT8 is in one of two forms:
- RSnnnnnn, where nnnnnn is a VAGen return code based
on file access and the problem that occurred.
- nnnnnnnn, where the first two characters are the hexadecimal
representation of the first byte of the EIBFN from the CICS EXEC interface
block. The remaining 6 characters contain the hexadecimal
representation of bytes 0-2 of the EIBRCODE from the CICS EXEC interface
block.
In EGL, for native environments, the return code information varies based
on the file type. You should review your use of sysVar.errorCode
to ensure that the values you are checking are correct for your environment
and file type.
- EZESEGTR (EGL sysVar.transactionID). In VisualAge Generator,
for the CICS environment, EZESEGTR is initialized to the current transaction
ID and also used to set a new transaction ID to take effect after a
CONVERSE. EZESEGTR can be used to control program logic. In EGL,
for native environments, EZESEGTR is ignored and cannot be used to control
program logic.
- EZEUSR (EGL sysVar.sessionID). In VisualAge Generator for
the CICS environment, EZEUSR contains the CICS terminal identifier and is
equivalent to EZELTERM. In EGL, for native environments,
sysVar.sessionID is initialized from the Java Virtual Machine system
property user.name. If this property cannot be retrieved,
sysVar.userID contains blanks.
- EZEUSRID (EGL sysVar.userID). In VisualAge Generator, for
the CICS environment, EZEUSRID contains the CICS user ID if the user is signed
on to the system; otherwise it contains blanks. In EGL, for native
environments, sysVar.userID is initialized from the Java Virtual
Machine system property user.name. If this property
cannot be retrieved, sysVar.userID contains blanks.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.