Oracle delivers a number of software products and facilities on the z/OS platform, including its core relational database server, related tools and utilities, networking features, 3GL application development and deployment facilities, and integration products unique to the platform. This set of products and facilities allows z/OS systems to host the same Oracle platform as UNIX, Linux, and other systems on which the Oracle database runs. The integration products allow widely used z/OS components such as CICS TS, IMS TM, and DB2 to participate in an Oracle Database application. What follows are overviews of the Oracle product set on z/OS organized by functional category.
This chapter contains the following sections:
Foremost in this category is the Oracle relational database server, which has been ported to z/OS, OS/390, and predecessor IBM MVS operating systems since Oracle RDBMS Version 5 (1986). The current product is Oracle Database 10g release 2 (10.2) for IBM z/OS on System z. As with all prior Oracle versions, the z/OS implementation of this product is compiled from the same C language source code as on other platforms, differing only in the thin layer of programming that adapts it to the host operating system. This means the SQL and PL/SQL languages, Java facilities, SQL statement optimizer, and other Oracle features work the same on z/OS as they do on other Oracle platforms. Oracle Database applications developed with a non-z/OS Oracle server generally can be switched to a z/OS Oracle server or vice versa without changes.
Despite this commonality, the Oracle Database for z/OS makes extensive use of features unique to the operating system: it is managed by a formal z/OS subsystem, uses cross-memory services for inter-address-space operations, and exploits z/OS Workload Manager (WLM) facilities to classify and dispatch database requests from remote clients. Because of current limitations in IBM's Language Environment (LE) for z/OS support for 64-bit virtual memory addressing, a patented multi-address-space server architecture allows Oracle Database for z/OS to support far larger workloads than the available 31-bit addressing would normally permit. The Oracle software component that provides the subsystem and address space management facilities is called OSDI (Operating System Dependent Interface) and is unique to z/OS.
In addition to its relational database server, Oracle offers Transparent Gateways on z/OS so that non-Oracle data sources can participate in Oracle database applications. A Transparent Gateway allows an Oracle database server to access non-Oracle data through Oracle's distributed database mechanism. Two Transparent Gateway products are available to run on z/OS: the Transparent Gateway for DB2 and the Transparent Gateway for iWay. The latter product uses the Information Builders iWay product to provide access to a variety of z/OS data sources including Adabas, VSAM, IMS/DB and others. Like the database server, the Transparent Gateways on z/OS run under control of OSDI.
Access to an Oracle Transparent Gateway is always through an Oracle database server; client applications do not connect directly to a Transparent Gateway. Both local database servers (on the same z/OS system) and remote database servers (on any Oracle platform) can access a Transparent Gateway on z/OS.
Your installation may or may not run Oracle database or Transparent Gateway servers on z/OS. Some customers choose to install only Oracle client components on z/OS (tools and utilities and application development facilities) to enable access to Oracle servers on other platforms. This is referred to as a client-only install in later sections.
Tool and utility programs are associated with the Oracle database server for various purposes. These include Oracle Export and Import for transporting database objects, SQL*Plus for ad hoc SQL and reporting, SQL*Loader for high-speed database table loading, and others. Like the Oracle database server, the z/OS versions of these tools and utilities are compiled from the same common code base and function in the same way as their counterparts on other Oracle platforms.
On z/OS, most Oracle tools and utilities can run in traditional MVS environments (batch job and native TSO) and the z/OS POSIX environments such as a Telnet z/OS UNIX System Services shell session or the OMVS shell in TSO. In the traditional environments they behave like typical MVS utility programs including the use of DD and data set names for input and output files and support for TSO Command Processor (CP) invocation. In z/OS POSIX environments, they exhibit UNIX-like behavior and typically access Hierarchical File System (HFS) files. However, in both types of environments, the same tool or utility executable (program object) is used.
None of the Oracle tools or utilities is supported under CICS TS or IMS TM. In those environments, only user-written 3GL applications are supported as discussed in Chapter 6, "Developing Oracle Applications to Run on z/OS."
Although associated with the Oracle database server, Oracle tools and utilities are also provided in a client-only install on z/OS. As discussed in the following section, Oracle tools and utilities can access a local (z/OS) or remote (any platform) Oracle database server with equal ease. For example, you can run SQL*Loader on z/OS and have it load data from a z/OS VSAM data set into an Oracle database server running on UNIX or Linux.
Oracle Database for z/OS views all client connections to the database as network connections, even when the client and server are on the same system and no real network is involved. This means virtually all Oracle client/server interactions work the same way whether the client is local or remote, and neither client applications nor the server being accessed are aware of the distinction. Applications can be developed and tested with a local server and then deployed, unchanged, to a production environment with a remote server (or vice versa). Similarly, a production database server or a production client environment can be moved from one system to another with minimal disturbance.
The networking feature, called Oracle Net, is built into the Oracle server and the client-side Oracle program interface code. The same client interface code supports both Oracle tools and utilities and user-written Oracle applications, so both tools and utilities and your own programs have the same mobility in terms of server access.
On z/OS, local Oracle connections (between a client application and a server on the same z/OS image) use z/OS cross-memory services. Besides being efficient, the cross-memory connection protocol has the characteristic that the application processing in the server is executed by the application task. Server requests run at the application's Workload Manager goal and the processing time consumed by the requests is charged to the application, not to the Oracle database server.
For real networking, Oracle Net on z/OS uses the TCP/IP protocol. The terms inbound and outbound to refer to two different network situations as viewed from z/OS. An inbound client means a client on a remote system connecting to an Oracle database server on a local z/OS system. A client application that is running on a local z/OS system and connecting to a remote Oracle database server is an outbound client. In either case, the remote client or remote server can be on another z/OS system or on any other Oracle platform. When client and server are on dissimilar platforms, translation of both character and number data are handled automatically.
Supporting inbound clients on z/OS requires an Oracle Net Services listener. The listener provides the network endpoint (TCP/IP port) to which remote clients initially connect, and takes care of routing the client to the correct Oracle database server.
Outbound clients on z/OS do not use Oracle Net Services; they interact directly with the TCP/IP implementation provided by the system. However, they do interact with a listener on the target remote system.
Support for 3GL application development on z/OS is provided by Oracle Precompilers: Pro*C/C++, Pro*COBOL, Pro*FORTRAN, and Pro*PL/I. These products read source code containing imbedded EXEC SQL directives and translate the directives into appropriate data declarations, executable statements, and Oracle API calls to access an Oracle database server. Output from the precompiler is input to a supported IBM language compiler and ultimately to the z/OS binder (linkage editor) to produce an executable load module or program object. Precompiler applications can run in a native z/OS batch or TSO address space, in CICS TS and IMS TM transaction environments, or in a z/OS POSIX environment such as a TSO OMVS shell or rlogin shell.
Application execution under CICS TS or IMS TM requires the use of an Oracle integration product called an Access Manager. The Access Managers provide coordination between Oracle database updates and commit or rollback processing in the respective transaction manager. This enables you to write transaction programs that update both Oracle resources and non-Oracle resources, such as VSAM or IMS/DB data, with full two-phase commit integrity. Access Managers must be installed and configured with their respective IBM transaction manager before Oracle-accessing transactions are run.
In addition to the precompiler products, APIs called Oracle Call Interface (OCI) and Oracle C++ Call Interface (OCCI) can be used to develop 3GL Oracle applications on z/OS. With OCI and OCCI, you write a C (OCI only) or C++ language program that makes calls to specific functions to perform specific operations in the Oracle server. While more complex to use than the precompilers, OCI and OCCI provide access to all features of the Oracle database server. On z/OS, OCI and OCCI applications can be built to run in batch and TSO or as z/OS POSIX programs. A few OCI features use POSIX threading and so require a POSIX environment. OCI and OCCI applications are not supported in CICS TS or IMS TM.
Other Oracle components are provided on z/OS but they are less likely to be encountered by end users and application developers. In this category are management infrastructure components such as the Enterprise Manager Management Agent and database administration tools such as Recovery Manager. For more information, refer to the Oracle Database System Administration Guide for IBM z/OS on System z.