Installing the Adapter for Oracle on z/OS

In this section:

Allocating the Adapter Libraries

Unloading the Distribution Tape

Disabling Native SQL Commands (Optional)

Assembling and Link-Editing the Adapter

Preparing the Adapter Run-Time Libraries

The adapter installation consists of five tasks:

  1. Allocating the adapter libraries.

  1. Unloading the distribution tape.

  2. Optionally disabling native SQL commands.

  3. Assembling and link-editing the adapter.

  4. Preparing the adapter run-time libraries.


Top of page

Allocating the Adapter Libraries

The FOCUS distribution tape contains two partitioned data sets (or libraries) that support the adapter:

We suggest that you allocate space for these two libraries at this point before unloading them as described in Unloading the Distribution Tape.

The following chart describes the allocation parameters and disk space requirements (in tracks) for each library:

Library

Description

3390

FOCSQL.LOAD

Primary Allocation
Secondary Allocation
Directory Blocks
(BLKSIZE=13030,RECFM=U)

20
2
5

FOCSQL.DATA

Primary Allocation
Secondary Allocation
Directory Blocks
(LRECL=80,BLKSIZE=1600,RECFM=FB)

15
10
5

Note: The high-level qualifier specified for each library should be the same high-level qualifier used for other FOCUS data sets at your site. This recommendation is assumed in the examples throughout this chapter, which refer to this high-level qualifier as prefix.


Top of page

Unloading the Distribution Tape

Example:

Sample JCL for Unloading the Distribution Tape

If you installed FOCUS by downloading files from the FTP site, you can skip this step.

Use the following sample JCL as a model for unloading the contents of the tape.

Add a JOB card and VOL=SER values. The VOL=SER values are provided on the external tape label.

Make any changes needed to comply with your site's standards and then submit the JCL for execution.


Top of page

Example: Sample JCL for Unloading the Distribution Tape

//UNLOAD   EXEC PGM=IEBCOPY
//LOADIN DD DSN=FOCSQL.LOAD,DISP=SHR,
// UNIT=unittype,VOL=SER=volid,
// LABEL=(22,SL,EXPDT=98000)
//DATAIN DD DSN=FOCSQL.DATA,DISP=SHR,
// UNIT=unittype,VOL=SER=volid,
// LABEL=(23,SL,EXPDT=98000)
//LOADOUT DD DSN=prefix.FOCSQL.LOAD,DISP=OLD
//DATAOUT DD DSN=prefix.FOCSQL.DATA,DISP=OLD
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
COPY INDD=LOADIN,OUTDD=LOADOUT
COPY INDD=DATAIN,OUTDD=DATAOUT
/*

where:

prefix
Is the high-level qualifier of the data sets allocated in Allocating the Adapter Libraries.

unittype
Is the unit type on which a data set resides, such as CART. If you are installing from a 3480 cartridge, you should use the name defined at your site for 3480 drives.

volid
Is the volume identifier (serial number) of the distribution tape or cartridge.


Top of page

Disabling Native SQL Commands (Optional)

At this point, you may disable support for native SQL commands. The adapter can pass SQL statements, (for example, CREATE TABLE, INSERT, DROP TABLE), directly to the ORACLE RDBMS. To disable this function, edit member ORAPARMS of library FOCSQL.DATA, which was unloaded from the distribution tape, and change the line that reads:

  IMMED    DC   F'1'

to:

  IMMED    DC   F'0'

Save these changes and continue with the installation process.

Note: Currently, only the IMMED parameter in member ORAPARMS may be changed.


Top of page

Assembling and Link-Editing the Adapter

Example:

Sample JCL for Linking Oracle 9.2

Sample JCL for Linking Oracle 10g

The adapter installation JCL is contained in member G92FORA (for Oracle 9.2) or member G10FORA (for Oracle 10g) of the FOCSQL.DATA library. This JCL precompiles, assembles, link-edits, and binds the adapter software. It initializes the load module in FOCSQL.LOAD with your system run-time defaults.

The JCL refers to the module HLISTUB, which is an Oracle High Level Interface routine. This module resides in a library for which the Oracle-recommended name is ORACLE.V9R1M5.SQLLIB (for Oracle Version 9.2). HLISTUB is only required to be present during the link-edit of the adapter; it is not a run-time requirement.

Member G92FORA or G10FORA must be modified before it is run. Add a JOB card and make any needed changes in accordance with your site standards.

Then submit the member for execution.


Top of page

Example: Sample JCL for Linking Oracle 9.2

Following is a listing of member G92FORA. Add a JOB card and make the changes indicated before submitting the JCL:

//        JOB                                                          
//*********************************************************************
//* NAME: G92FORA JCL
//*
//* FUNCTION: LINKEDIT THE MVS FOCUS/ORACLE 9.2 INTERFACE
//*
//* Substitutions:-Change "qualif" into the high level qualifier
//* for your FOCUS datasets.
//* -Change "oraqual.OBJLIB" to the name of your
//* Oracle object library.
//* -Change "libprfx" to the high level qualifier
//* of your linker library (like CEE)
//* -Change "plang" to the name of your linker
//* message name (like EDCPMSGE)
//*********************************************************************
//*
//ASM     EXEC PGM=ASMA90,PARM=(OBJECT,NODECK,NOLIST)                  
//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB
//SYSLIN DD DISP=(MOD,PASS),DSN=&&ORAPRM,UNIT=SYSDA,
// SPACE=(100,(50,50)),DCB=(LRECL=80,BLKSIZE=800)
//* SYSGO DD DDNAME=SYSLIN
//SYSUT1 DD UNIT=SYSDA,SPACE=(800,(500,500),,,ROUND)
//SYSPRINT DD SYSOUT=A
//SYSIN DD DISP=SHR,DSN=qualif.FOCSQL.DATA(ORAPARMS)
//*
//LKED1   EXEC PGM=IEWL,PARM='LIST,NOXREF,LET,RENT'          
//OBJECT DD DISP=SHR,DSN=qualif.FOCSQL.DATA
//SYSLMOD DD DISP=SHR,DSN=qualif.FOCSQL.LOAD
//PARMS DD DISP=(OLD,DELETE),DSN=&&ORAPRM,UNIT=SYSDA
//SYSUT1 DD UNIT=SYSDA,SPACE=(100,(50,50))
//SYSPRINT DD SYSOUT=A
//LKED1.SYSLIN DD *
REPLACE JJCOM2@
REPLACE JJCOM2
INCLUDE SYSLMOD(ORAFOC)
INCLUDE PARMS
INCLUDE OBJECT(ORAFOC)
NAME ORAFOC(R)
/*
//*                                                  
//PLKED EXEC PGM=EDCPRLK,REGION=4M,
// PARM='MAP,NOER,UPCASE'
//STEPLIB DD DSN=libprfx.SCEERUN,DISP=SHR
//SYSMSGS DD DSN=libprfx.SCEEMSGP(plang),DISP=SHR
//SYSLIB DD DUMMY
//SYSMOD DD DSN=&&PLKSET,UNIT=VIO,DISP=(NEW,PASS),
// SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSOUT DD SYSOUT=A
//SYSPRINT DD SYSOUT=A
//SYSDEFSD DD DUMMY
//OBJECT DD DISP=SHR,DSN=qualif.FOCSQL.DATA
//ORAOBJ DD DISP=SHR,DSN=oraqual.OBJLIB
//PLKED.SYSIN DD *
INCLUDE OBJECT(ORAP92C)
INCLUDE OBJECT(ORAPAS2)
INCLUDE ORAOBJ(ORASTBS)
/*
//*                                                  
//LKED2 EXEC PGM=IEWL,PARM='LIST,NOXREF,LET,RENT,AMODE=31,RMODE=ANY'
//SYSLIB DD DISP=SHR,DSN=libprfx.SCEELKED
//OBJECT DD DISP=SHR,DSN=qualif.FOCSQL.DATA
//SYSLMOD DD DISP=SHR,DSN=QUALIF.FOCSQL.LOAD
//SYSUT1 DD UNIT=SYSDA,SPACE=(100,(50,50))
//SYSLIN DD DSNAME=*.PLKED.SYSMOD,DISP=(MOD,PASS)
// DD DDNAME=SYSIN
//SYSPRINT DD SYSOUT=A
//LKED2.SYSIN DD *
NAME ORAPAS2(R)
/*

where:

qualif
Is the high-level qualifier for your production FOCUS data sets.

oraqual
Is the high-level qualifier for your Oracle SQL library.

libprfx
Is the high-level qualifier for your link-edit load library.

plang
Is the linkage editor message member name.


Top of page

Example: Sample JCL for Linking Oracle 10g

The Adapter for Oracle supports Oracle Release 10g. To install this version of the adapter, you must edit and submit member G10FORA in the FOCSQL.DATA data set. This member links Oracle with FOCUS.

Oracle 10g is stored in a PDSE data set. To link Oracle 10g to FOCUS, you must link it to a version of the FOCUS FOCLIB.LOAD data set that is also stored in a PDSE data set.

To run an interactive FOCUS session that accesses Oracle 10g, you must have a region size that is at least 32 megabytes.

Following is a listing of member G10FORA. Add a job card, make the necessary edits, and submit this JCL to install the adapter:

//job card goes here
//*********************************************************************
//* Name: G10FORA JCL
//*
//* Function: Linkedit the MVS FOCUS/ORACLE 10 interface
//*
//* Substitutions:-Change "qualif" into the high level qualifier
//* for your FOCUS datasets.
//* -Change "qualpdse.LOAD" to the name of your
//* FOCUS PDSE load library.
//* -Change "oraqual.SQLLIB" TO THE NAME OF YOUR
//* Oracle SQL library.
//* -Change "libprfx" to the high level qualifier
//* of your linker library (like CEE)
//* -Change "plang" to the name of your linker
//* message name (like EDCPMSGE)
//*********************************************************************
//*
//LKED1 EXEC PGM=IEWL,PARM='LIST,NOXREF,LET,RENT'
//OBJECT DD DISP=SHR,DSN=qualif.FOCSQL.DATA
//SYSMODIN DD DISP=SHR,DSN=qualif.FOCSQL.LOAD
//SYSLMOD DD DISP=SHR,DSN=qualpdse.LOAD
//SYSUT1 DD UNIT=SYSDA,SPACE=(100,(50,50))
//SYSPRINT DD SYSOUT=A
//LKED1.SYSLIN DD *
INCLUDE SYSMODIN(OR8FOC)
INCLUDE OBJECT(OR8FOC)
NAME ORAFOC(R)
/*
//*
//LKED2 EXEC PGM=IEWL,
// PARM='LIST,NOXREF,LET,RENT,AMODE=31,RMODE=ANY,UPCASE'
//SYSLIB DD DISP=SHR,DSN=libprfx.SCEELKED
//SYSMSGS DD DSN=libprfx.SCEEMSGP(plang),DISP=SHR
//OBJECT DD DISP=SHR,DSN=qualif.FOCSQL.DATA
//ORAOBJ DD DISP=SHR,DSN=oraqual.SQLLIB
//SYSLMOD DD DISP=SHR,DSN=qualpdse.LOAD
//SYSUT1 DD UNIT=SYSDA,SPACE=(100,(50,50))
//SYSPRINT DD SYSOUT=A
//LKED2.SYSLIN DD *
INCLUDE OBJECT(OR8PS2)
INCLUDE OBJECT(ORAPAS10)
INCLUDE ORAOBJ(ORASTBL)
NAME ORAPAS2(R)
/*

where:

qualif
Is the high-level qualifier for your production FOCUS data sets.

qualpdse
Is the high-level qualifier for your FOCUS load library in PDSE format.

oraqual
Is the high-level qualifier for your Oracle SQL library.

libprfx
Is the high-level qualifier for your link-edit load library.

plang
Is the linkage editor message member name.


Top of page

Preparing the Adapter Run-Time Libraries

Reference:

The FOCEXEC Library

The MASTER Library

The FOCSQL Library

Private and Public Libraries

The ERRORS Library

The Adapter Load Library

At this point, you must create or modify four run-time libraries. You will allocate these libraries later when you create a CLIST, batch job, or FOCEXEC to access the adapter. Each adapter user must have access to these libraries.


Top of page

Reference: The FOCEXEC Library

Stored FOCUS procedures, called FOCEXECs, are members of a library allocated to DDNAME FOCEXEC. A FOCEXEC library was created when FOCUS was installed.


Top of page

Reference: The MASTER Library

The Master File tells FOCUS how to interpret the data in an Oracle table or view. Each Oracle table and view accessed by the adapter must be described to FOCUS in a Master File or as part of a multi-table Master File.

Every Master File is a member of a library allocated to DDNAME MASTER. A MASTER library was created when FOCUS was installed.


Top of page

Reference: The FOCSQL Library

Every Master File that describes an Oracle table or view to FOCUS must have a corresponding Access File. The Access File provides additional information to FOCUS about that table or view.

Every Access File is a member of a library allocated to DDNAME FOCSQL.

A FOCSQL library was not created when FOCUS was installed. Before you create the FOCSQL library, see if it was created during a previous adapter installation process. If it was not, you can create it using either of the following methods:


Top of page

Reference: Private and Public Libraries

Many sites find it useful to create private and public versions of the FOCEXEC, MASTER, and FOCSQL libraries. These private and public libraries make maintenance easier. For example, you can create one private FOCEXEC library for each user's set of FOCEXECs and retain one FOCEXEC library as a general site library that all users can access.

If you want private and public libraries, you can create the additional libraries now. (You should check to see if private libraries already exist.) The additional libraries should have the same DCB attributes as those of the original library.


Top of page

Reference: The ERRORS Library

The adapter must have access to the ERRORS library created when FOCUS was installed. No other ERRORS libraries are required.


Top of page

Reference: The Adapter Load Library

The FOCSQL.LOAD library was unloaded from the distribution tape. This library contains essential adapter software.

For TSO and batch access, the adapter load library does not require additional preparation.


Information Builders