Create the User Requirements Table (URT) Access Modules in Datacom

In order to access Datacom data sources, you must have one or more User Requirements Tables. URTs specify which Datacom data sources the FOCUS application can access and the types of access allowed. In order to access a Datacom data source, the data adapter must load the appropriate URT first.

In this section:

Select Appropriate User Requirements Tables in Datacom

Submit the GENFDTCM Job to Create URT Access Modules in Datacom

For each URT, the data adapter requires a URT Access Module that identifies the correct URT to load for each request. The URT Access Module is a data adapter construct that you create by link-editing the URT 'BEGIN' CSECT with object deck USNTRY, which is located in the 'prefix.DATACOM.DATA' PDS. You give each access module a unique name at link-edit time. You must also create an Access File that contains the name of this access module. You must create a separate URT Access Module for each URT needed by the data adapter.

When processing a request, the Datacom Data Adapter uses the Access File to load the appropriate URT Access Module. The URT Access Module, in turn, loads the URT load module whose name is contained in the 'BEGIN' CSECT that is linked to it.

For example, the following Access File attribute indicates that the URT Access Module to be loaded is FOCLOAD1:

USERTABLE=FOCLOAD1

FOCLOAD1 contains the 'BEGIN' CSECT that points to the name of the URT load module (for example, URTLOAD1) that provides read access to the data source.

At installation time, you must create at least one URT Access Module in order to test the data adapter installation. You can create additional URT Access Modules at any time without making any changes to the data adapter.


Top of page

Select Appropriate User Requirements Tables in Datacom

Before creating a URT Access Module, you must choose or create a URT that is appropriate for the data adapter. Any URT to be used with FOCUS must allow multiple users to read the data source concurrently and must allow both random and sequential access.

In addition, the data source must have temporary Index Areas (IXXes) available so that the Datacom Compound Boolean Selection Facility (CBS), which the data adapter uses, can build indices to records. If the data source does not have these IXXes explicitly defined, you can make them available by creating a URT that specifies UPDATE=YES.

For example, a URT created using the following DBURSTR and DBURTBL macro parameters is FOCUS-usable, assuming IXXes exist:

DBURSTR                                                                 X
ABEND=YES, X
MULTUSE=YES, X
PRTY=7

DBURTBL X
TBLNAM=PAY, X
DBID=143, X
SYNONYM=NO, X
ACCESS=RANSEQ, X
ELMCHG=NO, X
SEQBUFS=2, X
[GETBLK=0, X]
UPDATE=NO

DBURTBL X
TBLNAM=PMF, X
DBID=143, X
SYNONYM=NO, X
ACCESS=RANSEQ, X
ELMCHG=NO, X
SEQBUFS=2, X
[GETBLK=0, X]
UPDATE=NO

DBUREND X
USRINFO=UMAN RESOURCE URTLOAD1
END

/*

Note: The GETBLK=0 parameter may be needed in the DBURTBL macro to address memory management issues.


Top of page

Submit the GENFDTCM Job to Create URT Access Modules in Datacom

Create each URT Access Module by submitting the GENFDTCM JCL (supplied as member GENFDTCM in the 'prefix.DATACOM.DATA' PDS) after editing it to conform to your site's standards:

//* * * * * * * JOB CARD GOES HERE * * * * * * * *
//*
//* JCL FOR DATACOM INTERFACE URT CREATION
//*
//* THIS JCL WILL ASSEMBLE AND LINK THE INTERFACE URT, FOCURT1
//* TO DYNAMICALLY LOAD THE DATACOM URT, URT1
//*
//ASMBL EXEC PGM=IEV90,PARM='OBJECT,NODECK,LIST',REGION=1024K
//SYSLIB DD DSN=highlvl.DATACOM.MACLIB,DISP=SHR
// DD DSN=SYS1.MACLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(1700,(600,100))
//SYSUT2 DD DSN=&&SYSUT2,UNIT=SYSDA,SPACE=(1700,(300,50))
//SYSUT3 DD DSN=&&SYSUT3,UNIT=SYSDA,SPACE=(1700,(300,50))
//SYSLIN DD DSN=&&OBJPASS,UNIT=SYSDA,
// SPACE=(TRK,10),DISP=(NEW,PASS)
//SYSIN DD *
DBURINF X
URTABLE=LOAD, X
OPEN=USER, X
USRNTRY=USNTRY, X
LOADNAM=urt1
DBUREND X
USRINFO=DYNAMIC LOAD OF URT1
END
/*
//LINKEDIT EXEC PGM=IEWL,PARM='LET,NCAL,LIST,MAP,SIZE=1024K'
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(10,1))
//OLDMOD DD DSN=prefix.DATACOM.DATA,DISP=SHR
//DBNTRY DD DSN=&&OBJPASS,DISP=(OLD,DELETE)
//SYSLMOD DD DSN=prefix.DATACOM.LOAD,DISP=SHR
//SYSLIN DD *
INCLUDE DBNTRY <----- URT 'BEGIN' STUB
INCLUDE OLDMOD(USNTRY) <----- OBJECT DECK 'USNTRY'
ENTRY USNTRY
NAME focurt1(R) <----- NAME TO BE PLACED IN ACCESS FILE
/*

where:

highlvl
Is the high-level qualifier for the Datacom macro library.

urt1
Is the name of the URT to be loaded by the URT Access Module.

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

focurt1
Is the name to be assigned to the URT Access Module.

Note that the URT Access Module must have a different name from the URT load module. It may be convenient to use some sort of naming convention to associate the Access Modules with their accompanying URTs.

For example, consider the following URTs to be used: with the data adapter:

URTLOAD1, URTLOAD2, URTLOAD3, and URTLOAD4

You must perform the assembly and link-edit in the GENFDTCM job four times. The Access Modules created can be named:

FOCLOAD1, FOCLOAD2, FOCLOAD3, and FOCLOAD4

FOCLOAD1 points to URTLOAD1, FOCLOAD2 points to URTLOAD2, and so on. Access Files to be used with the data adapter must specify either USERTABLE=FOCLOAD1, USERTABLE=FOCLOAD2, USERTABLE=FOCLOAD3, or USERTABLE=FOCLOAD4, depending on which URT provides access to the data sources required.

For example, assume Master File PAY describes the Datacom data source named PAY. Assume that this data source can be made accessible by loading a Datacom URT named URTLOAD1. Access Module FOCLOAD1 points to URTLOAD1. The PAY Access File could be:

TRACE=NO, USERTABLE=FOCLOAD1,$
SEGNAME=PAYROLL,DBID=143,TABLENAME=PAY,KEYNAME=EMPNO,$

When you apply a PTF to the Datacom Data Adapter or update it to a new release, the URT Access Modules are not affected and do not have to be regenerated.


Information Builders