DEDB performance and tuning considerations

If you use DEDBs, you must define the characteristics and usage of the IMS DEDB buffer pool. You do this by specifying parameters both in the CICS® region and the IMS (DBCTL) region. The DBCTL DEDB parameters are useful when tuning a CICS/DBCTL DEDB fastpath environment. DBBF and DBFX are parameters defined during DBCTL system generation or at DBCTL initialization. CNBA, FPBUF, and FPBOF are defined in the DRA startup table (DFSPZP).

All parameters that you need to during IMS system definition or execution, including DRA startup parameters, are described in Defining the IMS DRA startup parameter table) .

The main concerns in defining DEDB buffer pools are the total number of buffers in the IMS region, and how they are shared by CICS threads. You use the following IMS FPCTRL parameters to define the number of buffers:
  • DBBF: total number of buffers
  • DBFX: number of buffers used exclusively by the DEDB system.

The number remaining when you subtract the value specified for DBFX from the value specified for DBBF is the number of buffers available for the needs of CICS threads; for this example, It is a fixed number is assumed for DBFX. DBBF must, therefore, be large enough to accommodate all batch message processing programs (BMPs) and CICS systems that you want to connect to this DBCTL system.

When a CICS thread connects to IMS, its DEDB buffer requirements are specified using a normal buffer allocation (NBA) parameter. For a CICS system, there are two NBA parameters in the DRA startup table:
  1. CNBA buffers needed for the CICS system. This is taken from the total specified in DBBF.
  2. FPBUF buffers to be given to each CICS thread. This is taken from the number specified in CNBA. FPBUF is used for each thread that requests DEDB resources, and so should be large enough to handle the requirements of any application that can run in the CICS system.

A CICS system might fail to connect to DBCTL if its CNBA value is more than that available from DBBF. An application might receive schedule failure if the FPBUF value is more than that available from CNBA. The FPBUF value is used when an application tries to schedule a PSB that contains DEDBs.

When a CICS system has successfully connected to DBCTL, and the application has successfully scheduled a PSB containing DEDBs, the DRA startup parameter FPBOF becomes relevant. FPBOF specifies the number of overflow buffers each thread will get if it exceeds FPBUF. These buffers are not taken from CNBA. Instead, they are buffers that are serially shared by all CICS applications or other dependent regions that are currently exceeding their NBA allocation.

Because overflow buffer allocation (OBA) usage is serialized, thread performance can be affected by NBA and OBA specifications. If FPBUF is too small, more applications need to use OBA, which may cause delays due to contention. If both NBA and OBA are too small, the application fails. If FPBUF is too large, this affects the number of threads that can concurrently access DEDB resources, and increases the number of schedule failures.

In a CICS-DBCTL environment, the main performance concern is the trade-off between speed and concurrent access. The size of this trade-off is dictated by the kind of applications you are running in the CICS system. If the applications have approximately the same NBA requirements, there is no trade-off. You can specify a FPBUF large enough to never need OBA. This speeds access and there is no waste of buffers in CNBA, thus enabling a larger number of concurrent threads using DEDBs. The more the buffer requirements of your applications vary, the greater the trade-off. If you want to maintain speed of access (because OBAs are not being used) but decrease concurrent access, you should increase the value of FPBUF. If you prefer to maintain concurrent access, do not increase the value of FPBUF. However, speed of access will decrease because this and possibly other threads will need to use the OBA function.

For information on specifying the parameters CNBA, FPBOF, and FPBUF, see Defining the IMS DRA startup parameter table. For further guidance on DEDB buffer specification and tuning, see sections on DEDBs in Database administration in IMS product documentation and System administration in IMS product documentation.

Monitoring data at the transaction level is returned to CICS by DBCTL at schedule end and transaction termination. This data includes DEDB statistics. To obtain the monitoring data, two event monitoring points (EMPs) must be added to your CICS monitoring control table (MCT).