Optimizing IMS DB Applications

Use the following tips to optimize the access to your distributed and mainframe IMS DB applications:

Data and key compression (distributed only)
Improved functionality exists in Enterprise Server that should replace the use of mainframe segment compression exits. Configure these settings using Server > Properties > MSS > IMS > DB > Compression. For details of the settings, see the File Handling details for DATACOMPRESS and KEYCOMPRESS. The default settings are recommended for all platforms.
Batch application DB sharing options (distributed only)
Batch IMS applications that do not require 'dirty read' support (PROCOPT=GO) on any PCB can specify a global exclusive DB lock configuration that optimizes performance. This is implemented from JCL using the IMSLOCK DD statement:
//IMSLOCK DD *
EXCLUSIVE
/*

All DBs accessed by the batch application are held exclusively; this effectively bypasses IMS DB Control.

Internal Resource Lock Manager (IRLM) (distributed only)
Set the ES_IMS_IRLM=1 environment variable to enable locking that closely parallels mainframe IMS database DB locking behavior. This can reduce data constraint and the potential for deadlock. A system running several applications in an IMS data sharing environment results in less DB segment contention when this is enabled, which results in applications that wait for data less and process faster.
Buffer flushing (distributed only)
The environment variables ES_IMS_DB_COMMIT_FLUSH and ES_IMS_TLOG_FLUSH can have an adverse effect on database performance, and care should be taken if setting these variables to any value other than their defaults.