VisualAge Generator to Enterprise Generation Language Migration Guide
The following differences occur if you change from generated C++ to
generated Java:
- Generated Java is not interoperable with VAGen generated C++
programs. An EGL program that is generated for Java cannot transfer to
or from a VAGen program that is generated for C++. An EGL program that
is generated for Java can call a VAGen called batch program that is generated
for C++.
-
General differences are as follows:
- Resource association is done at runtime when using VisualAge Generator
generated C++ code. In EGL, you have the option to specify resource
association information at generation time and have it generated into the
properties file for you. Set the resource associations build descriptor
to point to your resource associations part. Also set the genProperties
build descriptor to GLOBAL or PROGRAM. Refer to the online helps for
details of these build descriptor options.
-
Differences for maps are as follows:
- Blink is not supported for text forms.
- The isDecimalDigit property is only supported for character
fields. It is implemented as a software edit, not as a hardware
attribute. Numeric fields also have a software edit. See Map fields and the numeric hardware attribute for details.
- For indexed records that have an alternate index record defined, the
setting for the DUP I/O error value differs from VisualAge Generator.
For VisualAge Generator, for a SET record SCAN followed by a SCAN or SCANBACK
I/O option, the DUP I/O error value is not set for the SET record SCAN
statement. The DUP I/O error value is set for each of the
duplicate-keyed records other than the last record retrieved with a duplicate
key. For Java generation, a set record position
followed by a get next or get previous statement results
in the duplicate I/O error state being set on the set
record position rather than on the first duplicate-keyed record
retrieved. The remaining duplicate-keyed records result in the
duplicate I/O error state being set the same as in VisualAge
Generator. The EGL duplicate state is set on all records other than the
first and last of the duplicate-keyed records. See the online helps for
more information about indexed records and alternate index records and their
use with set record position, get next and
get previous.
-
Differences for SQL are as follows:
- ODBC is not supported in EGL. If you use a SQL database manager
other than DB2, you must obtain a JDBC driver for your database
manager.
- JDBC does not support two-phase commit. Therefore, there are the
following differences:
- There are separate calls to the SQL manager and MQ series manager for
commit and rollback. Therefore, if a problem occurs, it is possible for
resource to commit or rollback without the corresponding commit or rollback
for the other resource.
- EZECONCT (EGL sysLib.connectionService). In VisualAge
Generator, the R option for unit of work argument changed the
connection to another database without ending the current connection.
This permitted you to update multiple databases within the same unit of
work. In EGL, the R option, as well as the D1C, D2A, D2C, and D2E
options for the unit of work argument are all treated as though you
specified D1E. D1E is a one-phase commit, but does not automatically
release the database connection. You must explicitly request the DISC,
DCURRENT, or DALL option to disconnect the database. See the online
helps for the sysLib.connectionService for details.
- EZESQISL (EGL sysVar.sqlIsolationLevel). In VisualAge
Generator, a value of 1 means you want cursor stability. In EGL a value
of 1 means you want serializable transactions.
- EZESQRRM (EGL sysVar.sqlerrmc) is not supported.
- EZESQWN6 (EGL sysVar.sqlwarn[7]) is not supported.
- EZESQLCA (EGL sysVar.sqlca) fields are limited. They do not
include values for EZESQRRM and EZESQWN6.
-
EZE special data word differences are as follows:
- EZECONVT (EGL sysVar.callConversionTable). In VisualAge
Generator for C++ generation, the conversion table names are in the format
ELAxxyyy, where xx indicates the system and yyy indicates the language.
In EGL, for Java generation, the conversion table names provided by EGL are in
the format CSOBxxxx, where CSO is a fixed prefix, B indicates the byte order
of the target system, and xxxx indicates the code page of the target
system. Valid values for B are X for Unix systems, I for Intel systems,
and E for EBCDIC systems. EGL automatically translates the EGL table
names to CSO table names for you so you do not need to change any code.
However, EGL does not provide the ability for you to create your own CSO
conversion table.
- EZERCODE (EGL sysVar.returnCode). In VisualAge Generator,
for C++ generation, EZERCODE is passed back to the system or calling
program. If the program ends abnormally, a VAGen return code is passed
back rather than the value in EZERCODE. In EGL, for Java generation,
EZERCODE is ignored.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.