Access to IMS With FOCUS Loaded by the Region Controller

In this section:

When you access IMS through the XMI server, each DL/I call requires communication resources. If IMS allows shared access to the IMS databases, it is more efficient to eliminate the XMI server by having the region controller load FOCUS, rather than the XMI server, into its address space. This section includes the following topics:

Note: You can also access IMS through DBCTL (see Access to IMS Through DBCTL).

To invoke FOCUS in this configuration, execute the IMS region controller program (DFSRRC00). (You can also call the region controller from a CLIST in this configuration.) You must pass the program a list of parameters that define the environment you need. The following chart lists the most common parameters:

Parameter

Value

Definition

Mode

BMP

Indicates Batch Message Processing mode. This mode accesses online IMS databases through the IMS/DC address space.

DLI

Indicates local mode. This mode accesses IMS databases that you allocate locally.

Program

FOCUS

Loads and accesses FOCUS in the region controller address space.

PSB

psbname

Identifies the PSB to use.

The following sections provide detailed information, including CLISTs and JCL.



x
Invoking the Interface in BMP Mode: PARM='BMP,FOCUS,psbname'

BMP mode accesses online IMS databases under the control of IMS/DC. Therefore, you can access Fast Path databases with this configuration, and, if a record is updated, you retrieve the updated version.

The following diagram illustrates the relationship between FOCUS, the IMS region controller, and IMS/DC:

Address Space

Contains

1

  • The IMS region controller (DFSRRC00).
  • FOCUS.
  • The Adapter for IMS/DB.

    DFSRRC00 loads FOCUS into its address space because of the FOCUS parameter in your JCL or CLIST. There is no allocation for a communication file.

    You must select the PSB prior to your session and pass its name to program DFSRRC00 as a parameter. This member is the sequential file you allocate to ddname FOCPSB.

2

  • IMS/DC.

    The BMP parameter that you pass to program DFSRRC00 indicates that the IMS databases are online and are allocated in the IMS/DC address space.

To invoke the adapter interactively from this environment, first add IMS.RESLIB and 'prefix.FOCLIB.LOAD' to the allocation for ddname STEPLIB in your TSO logon procedure. Execute the following CLIST after editing it to conform to the standards at your site

PROC 0
CONTROL NOMSG
FREE DDNAME(FOCPSB MASTER FOCEXEC ERRORS USERLIB)
ALLOC F(DFSRESLB) DA('IMS.RESLIB') SHR REUSE
ALLOC F(MASTER)   DA('prefix.MASTER.DATA') SHR REUSE
ALLOC F(FOCEXEC)  DA('prefix.FOCEXEC.DATA') SHR REUSE
ALLOC F(FOCPSB)   DA('prefix.FOCPSB.DATA(psbname)') SHR REUSE
ALLOC F(ERRORS)   DA('prefix.ERRORS.DATA') SHR REUSE
ALLOC F(USERLIB)  DA('prefix.IMS.LOAD' +
                     'prefix.FUSELIB.LOAD') SHR REUSE
CALL 'IMS.RESLIB(DFSRRC00)' 'BMP,FOCUS,psbname[,,,,,,,,,nba,oba]'

where:

prefix

Is the high-level qualifier for your FOCUS production libraries.

psbname

Is the name of the PSB to use.

nba

Is the number of buffers for the normal buffer allocation. It is required only for access to Fast Path databases; omit it if you will not access Fast Path.

Note: There are nine commas between the psbname and nba parameters.

oba

Is the number of buffers for the overflow buffer allocation. Is required only for access to Fast Path databases. Omit it if you will not access Fast Path.

If you omit the nba and oba parameters and attempt to access Fast Path databases, the following message is generated:

(FOC4214) REMOTE DLI CALL ERROR STATUS FOR SEGMENT:XXX /FR

FR is an IMS status code indicating that too few buffers were allocated.

To invoke the adapter as a batch job, submit the following JCL after editing it to conform to the standards at your site and adding a JOB card

//STEP1 EXEC  
PGM=DFSRRC00,REGION=nn,PARM='BMP,FOCUS,psbname[,,,,,,,,,nba,oba]'
//STEPLIB   DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
//          DD DSN=IMS.RESLIB,DISP=SHR
//          DD DSN=prefix.IMS.LOAD,DISP=SHR
//          DD DSN=prefix.FUSELIB.LOAD,DISP=SHR
//FOCEXEC   DD DSN=prefix.FOCEXEC.DATA,DISP=SHR
//MASTER    DD DSN=prefix.MASTER.DATA,DISP=SHR
//ERRORS    DD DSN=prefix.ERRORS.DATA,DISP=SHR
//FOCPSB    DD DSN=prefix.FOCPSB.DATA(psbname),DISP=SHR
//DFSRESLB  DD DSN=IMS.RESLIB,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//OFFLINE   DD SYSOUT=*
//SYSIN     DD *
TABLE FILE ...
   .
   .
   .
END
FIN
/*
//

where:

nn

Is the region size.

psbname

Is the name of the PSB to use.

nba

Is the number of buffers for the normal buffer allocation. It is required only for access to Fast Path databases; omit it if you will not access Fast Path.

Note: There are nine commas between the psbname and nba parameters.

oba

Is the number of buffers for the overflow buffer allocation. It is required only for access to Fast Path databases; omit it if you will not access Fast Path.

If you omit the nba and oba parameters and attempt to access Fast Path databases, the following message is generated:

(FOC4214) REMOTE DLI CALL ERROR STATUS FOR SEGMENT:XXX /FR

FR is an IMS status code indicating that too few buffers were allocated.

prefix

Is the high-level qualifier for your FOCUS production libraries.



x
Invoking the Adapter in DLI Mode: PARM='DLI,FOCUS,psbname'

DLI mode accesses IMS databases that you allocate locally in the DFSRRC00 address space. Since you do not access the IMS/DC address space, you cannot use Fast Path databases and, if a record is updated during your session, you cannot retrieve the updated record.

Note: If you substitute the parameter DBB for DLI, IMS uses ACBs to access its databases.

The next diagram shows the relationship between FOCUS, the IMS region controller, and IMS:

Address Space

Contains

1

The only address space in this configuration contains the following:

  • The IMS region controller (DFSRRC00).
  • FOCUS.
  • The Adapter for IMS/DB.

    DFSRRC00 loads FOCUS into its address space because of the FOCUS parameter in your JCL or CLIST. There is no allocation for a communication file.

    The DLI parameter that you pass to program DFSRRC00 indicates that the IMS databases are allocated locally in the DFSRRC00 address space.

    You must select the PSB prior to your session and pass its name to program DFSRRC00 as a parameter. This member is the sequential file you allocate to ddname FOCPSB.

To invoke the adapter interactively from this environment, first add IMS.RESLIB and 'prefix.FOCLIB.LOAD' to the allocation for ddname STEPLIB in your TSO logon procedure. Execute the following CLIST after editing it to conform to the standards at your site

PROC 0
CONTROL NOMSG
FREE DDNAME(FOCPSB MASTER FOCEXEC ERRORS USERLIB)
ALLOC F(DFSRESLB) DA('IMS.RESLIB') SHR REUSE
ALLOC F(DFSTROUT) DUMMY REUSE
ALLOC F(IEFRDER)  DUMMY REUSE
ALLOC F(DFSVSAMP) DA('IMS.DFSVSAMP(bufpool)') SHR REUSE
ALLOC F(IMS)      DA('IMS.DBDLIB' +
                     'IMS.PSBLIB') SHR REUSE
ALLOC F(PATDB01)  DA('IMS.PATIENT.DB') SHR REUSE
ALLOC F(PATDBIX)  DA('IMS.PATIENT.IX') SHR REUSE
ALLOC F(PATDBIX1) DA('IMS.PATIENT.IX1') SHR REUSE
ALLOC F(PATDBIX2) DA('IMS.PATIENT.IX2') SHR REUSE
ALLOC F(PATDBIX3) DA('IMS.PATIENT.IX3') SHR REUSE
ALLOC F(MASTER)   DA('prefix.MASTER.DATA') SHR REUSE
ALLOC F(FOCEXEC)  DA('prefix.FOCEXEC.DATA') SHR REUSE
ALLOC F(FOCPSB)   DA('prefix.FOCPSB.DATA(psbname)') SHR REUSE
ALLOC F(ERRORS)   DA('prefix.ERRORS.DATA') SHR REUSE
ALLOC F(USERLIB)  DA('prefix.IMS.LOAD' +
                     'prefix.FUSELIB.LOAD') SHR REUSE
CALL 'IMS.RESLIB(DFSRRC00)' 'DLI,FOCUS,psbname'

where:

bufpool

Is the member that contains your VSAM buffer pool information.

prefix

Is the high-level qualifier for your FOCUS production libraries.

psbname

Is the name of the PSB to use.

Note:

To invoke the adapter as a batch job, submit the following JCL after editing it to conform to the standards at your site and adding a JOB card

//STEP1    EXEC PGM=DFSRRC00,REGION=nn,PARM='DLI,FOCUS,psbname' 
//STEPLIB   DD DSN=prefix.FOCLIB.LOAD,DISP=SHR
//          DD DSN=IMS.RESLIB,DISP=SHR
//          DD DSN=prefix.IMS.LOAD,DISP=SHR
//          DD DSN=prefix.FUSELIB.LOAD,DISP=SHR
//IMS       DD DSN=IMS.DBDLIB,DISP=SHR
//          DD DSN=IMS.PSBLIB,DISP=SHR
//FOCEXEC   DD DSN=prefix.FOCEXEC.DATA,DISP=SHR
//MASTER    DD DSN=prefix.MASTER.DATA,DISP=SHR
//ERRORS    DD DSN=prefix.ERRORS.DATA,DISP=SHR
//FOCPSB    DD DSN=prefix.FOCPSB.DATA(psbname),DISP=SHR
//DFSVSAMP  DD DSN=IMS.DFSVSAMP(bufpool),DISP=SHR 
//IEFRDER   DD DUMMY
//DFSRESLB  DD DSN=IMS.RESLIB,DISP=SHR
//DFSTROUT  DD DUMMY
//PATDB01   DD DSN=IMS.PATIENT.DB,DISP=SHR
//PATDBIX   DD DSN=IMS.PATIENT.IX,DISP=SHR
//PATDBIX1  DD DSN=IMS.PATIENT.IX1,DISP=SHR
//PATDBIX2  DD DSN=IMS.PATIENT.IX2,DISP=SHR
//PATDBIX3  DD DSN=IMS.PATIENT.IX3,DISP=SHR
//SYSPRINT  DD SYSOUT=*
//OFFLINE   DD SYSOUT=*
//SYSIN     DD *
TABLE FILE ...
   .
   .
   .
END
FIN
/*
//

where:

nn

Is the region size.

psbname

Is the name of the PSB to use.

prefix

Is the high-level qualifier for your FOCUS production libraries.

bufpool

Is the member that contains your VSAM buffer pool information.

Note:


Information Builders