BMP - Batch Message Processing
A Batch Message Processing (BMP) program is a type of IBM Information Management System (IMS) application program that runs as a standard z/OS batch job but operates under the control of an IMS control region. It can access IMS databases using DL/I calls and optionally interact with IMS message queues, combining the capabilities of batch processing with online database access and recovery.
Key Characteristics
-
- Execution Environment: Runs as a conventional z/OS batch job, invoked via Job Control Language (JCL), but requires an active IMS control region to connect to.
- IMS Database Access: Can perform read, update, insert, and delete operations on IMS databases using DL/I calls, participating in IMS database recovery.
- IMS Message Queue Access (Optional): Can read messages from and write messages to IMS message queues, similar to online Message Processing Programs (MPPs), but typically processes a batch of messages.
- Transaction Management: Supports IMS
SYNCPOINT(commit) andROLLBACKcalls to ensure data integrity for database updates. - Program Type: Developed using standard programming languages like COBOL, PL/I, or Assembler, compiled and linked for the IMS environment.
- Resource Sharing: Shares IMS database resources with online IMS regions (MPPs, IFPs), requiring careful design to minimize contention.
Use Cases
-
- Large-Scale Database Updates: Performing bulk updates, inserts, or deletions on IMS databases that do not require immediate online response, such as end-of-day processing or data migration.
- Report Generation: Extracting and processing large volumes of data from IMS databases to generate complex reports or analytical outputs.
- Data Extraction and Loading: Moving data between IMS databases and other systems (e.g., flat files, DB2) for integration or archival purposes.
- Batch Message Processing: Processing a queue of messages received from other applications or systems in a deferred, non-interactive manner, often for background tasks.
- Database Maintenance Support: Executing utility-like functions or pre/post-processing steps related to IMS database reorganization or recovery.
Related Concepts
BMPs bridge the gap between pure z/OS batch jobs and online IMS transactions. Unlike an IMS MPP (Message Processing Program), which is designed for rapid, single-transaction online processing, a BMP is batch-oriented and can process multiple messages or simply access databases without message queue interaction. It differs from a pure IMS DLI Batch program by running under an IMS control region, allowing it to participate in IMS recovery and optionally access IMS message queues, which DLI Batch programs cannot. BMPs are defined to IMS and invoked via JCL that specifies the IMS control region and program parameters.
- Commit Frequency: For long-running BMPs that update databases, implement frequent
SYNCPOINTcalls to release database locks, improve concurrency, and establish restart points. - Restartability: Design BMPs to be restartable using IMS
CHKP(Checkpoint) andXRST(Extended Restart) calls, especially for programs processing large datasets or critical updates. - Resource Contention: Schedule BMPs during off-peak hours or design them to be efficient with database access to minimize contention with online IMS transactions.
- Error Handling and Logging: Implement robust error handling for DL/I calls and comprehensive logging to facilitate problem determination and ensure data integrity.
- JCL Configuration: Carefully configure the
JCLfor the BMP, including thePARMfield for IMS-specific parameters (e.g., program type, PSB name) andDDstatements for database access and message queues.