IMS Tools

 View Only

TECH TIP:  Still wasting time by NOT using the DBO IMS tool's API? 

Jan 08, 2017 11:17 AM

Still wasting time by NOT using the DBO IMS tool's API?

 

The Database Administrator has installed and customized CA's IMS Tools and is happy with speeding up IMS Database Reorganizations by using CA Database Organizer (DBO).

So why on earth should the DBA also talk to the Application Development team about this? ..Because of DBO's powerful Application Programming Interface (DBO API)!

 

What does it do?

DBO API significantly speeds up program executions (while significantly reducing the number of physical IOs) for all Application Programs continuously reading an entire Database (or huge portions of it), and for all Application Load Programs.

 

How does it work?

Instead of using the slow native IMS read/load modules, API enables the Application Program to use the high-speed DBO Unload/Reload

modules when reading or loading a Database.

 

How will it be activated?

Simply use the CA IMS Tools loadlib in front of the IMS reslib on the STEPLIB DD statement,

add the DBDLIB DD statement (concatenating DBDLIB and PSBLIB) with 'DBB' execution mode,

and use an additional DD statement DBOCTRL with these execution options:

FUNCTION=UNLOAD,DBDNAME=dbdname            =>  when reading a Database

FUNCTION=RELOAD,DBDNAME=dbdname            =>  when loading   a Database

 

And if Secondary Indexes are involved, just use an additional option  AUTOINDEXBUILD=Y  to invoke CA's Secondary Index Builder to significantly speed up building the Secondary Indexes while the Primary Database will be loaded:

FUNCTION=RELOAD,DBDNAME=dbdname,AUTOINDEXBUILD=Y

 

Examples

Reading a Database

//READ    EXEC PGM=DFSRRC00,PARM=(DBB,readpgm,readpsb,...)

//STEPLIB    DD  DISP=SHR,DSN=ca.imstools.loadlib      

//                   DD  DISP=SHR,DSN=ims.reslib

//                   DD  DISP=SHR,DSN=pgm.loadlib     

//DBDLIB      DD  DISP=SHR,DSN=ims.dbdlib

//                   DD  DISP=SHR,DSN=ims.psblib

//DBOCTRL  DD  *

FUNCTION=UNLOAD,DBDNAME=dbdname

//...                DD  ...

Loading a Database

//LOAD    EXEC PGM=DFSRRC00,PARM=(DBB,loadpgm,loadpsb,...)

//STEPLIB    DD  DISP=SHR,DSN=ca.imstools.loadlib      

//                   DD  DISP=SHR,DSN=ims.reslib

//                   DD  DISP=SHR,DSN=pgm.loadlib

//DBDLIB      DD  DISP=SHR,DSN=ims.dbdlib

//                   DD  DISP=SHR,DSN=ims.psblib

//DBOCTRL  DD  *

FUNCTION=RELOAD,DBDNAME=dbdname,AUTOINDEXBUILD=Y

//...                DD  ...

 

Limitations

Not all IMS Return Codes are supported by DBO API - for a list of supported Return Codes see          

https://docops.ca.com/ca-database-management-solutions-for-ims-for-z-os/19-0/en/managing-database-performance/ca-database-organizer-for-ims/operational-considerations-for-ca-database-organizer/using-an-application-program/status-codes

 

If an Application Program uses IMS Call Return Codes which are not supported by DBO API, the program must be changed and recompiled to enable using DBO API;

if an Application Program handles the not-supported Return Codes "GA" and "GK" identically to Return Code "space", execution option  BMCDLICOMPAT=Y  can be used to dynamically change Return Codes "GA" and "GK" into "space", so that the programs does not need to be changed and recompiled.     

 

Documentation

https://docops.ca.com/ca-database-management-solutions-for-ims-for-z-os/19-0/en/managing-database-performance/ca-database-organizer-for-ims/operational-considerations-for-ca-database-organizer/using-an-application-program

Statistics
0 Favorited
1 Views
0 Files
0 Shares
0 Downloads

Related Entries and Links

No Related Resource entered.