When you develop in EGL, you use intuitive input/output
(I/O) statements (such as add and get) to access data
from a relational database, a hierarchical database, a message queue,
or a file:
- Relational databases: The standard language for accessing
relational databases is Structured Query Language (SQL). For simple
applications, you can use the SQL statements that are used by default
in EGL I/O statements. For complex applications, if you are familiar
with SQL, you can go beyond the defaults. EGL is structured so that
if you are developing SQL, you can write sophisticated database-access
code for other developers to use.
EGL supports the access of DB2® Universal Database™ (DB2® UDB) from COBOL code and the
access of the following databases by way of Java™ Database Connectivity (JDBC): DB2 UDB, Informix®,
Microsoft® SQL Server,
Oracle, Sun Microsystems MySQL, Cloudscape®,
and Derby.
- Hierarchical databases: The standard language for accessing
hierarchical databases is Data Language/I (DL/I). You can rely on
default EGL I/O statements, go beyond the defaults, and write database-access
code for other developers.
EGL supports the access of hierarchical
databases on IMS™, CICS®, and z/OS® batch.
- WebSphere® MQ message
queues: WebSphere MQ
calls allow program-to-program communication that involves a set of
queues that WebSphere MQ
manages. The application that sends data does not depend on the immediate
availability of the application that receives the data, yet message
delivery is assured.
When you access a message queue, you use default
EGL I/O statements. You do not need specialized expertise, as you
do for database access.
EGL supports the access of WebSphere MQ message queues
on all platforms.
- Files: EGL supports the access of sequential files, whose
constituent records are accessed in record order. You can access those
files with any target platform. If you use a target platform that
supports other files, you can use EGL to access two other types of
files: indexed files, whose records are each accessed by the value
of a key in the record, and relative files, whose records are accessed
by an integer that represents the position of the record in the file.
For
some platforms, you can associate a sequential, indexed, or relative
file with any of several file technologies. You write your EGL code,
and at generation time, choose a file technology. The generated source
code includes the I/O statements that are specific to the chosen technology.
EGL
supports these technologies:
- Virtual Storage Access Method (VSAM): VSAM files are organized
as either sequential, indexed, or relative files. EGL-generated code
that runs on any of several platforms can access either local VSAM
files or, in the case of IBM® i,
an equivalent type of file.
The platforms for local access are AIX®, IBM i, CICS, z/OS batch, and, for EGL-generated BMPs on IMS, IMS.
EGL-generated code that runs on a supported Windows® platform can access VSAM files that
are on a remote System z®.
- CICS-specific technologies: EGL supports the access of
the following kinds of data stores on CICS: spool
files, which primarily hold program output for subsequent printing;
temporary storage queues, which hold data for subsequent
processing in the same or another program; and transient data
queues, which submit data to another program.
- IMS-specific technologies: EGL supports the use of I/O
statements to access IMS message
queues, whether to submit data to another program or to retrieve data
into a program.
EGL also supports Generalized Sequential Access
Method (GSAM) files, which are sequential files that are accessed
by DL/I calls. If a call fails, DL/I calls allow processing to resume
from the middle of a file rather than from the start.
EGL supports the access of two file types that are specific
to IBM i: physical files,
which contain data, and logical files, which provide
a subset of the data in a physical file.