Message processing considerations for DB2

For the most part, the message processing function of a dependent region that accesses DB2® databases is similar to that of a dependent region that accesses only DL/I databases. The method each program uses to retrieve and send messages and back out database changes is the same.

The differences are:

  • DL/I statements are coded differently from SQL (structured query language) statements.
  • When an IMS TM application program receives control from IMS TM, IMS has already acquired the resources the program is able to access. IMS TM schedules the program, although some of the databases are not available. DB2 does not allocate resources for the program until the program issues its first SQL statement. If DB2 cannot allocate the resources your program needs, your program can optionally receive an initialization error when it issues its first SQL call.
  • When an application issues a successful checkpoint call or a successful message GU call, DB2 closes any cursors that the program is using. This means that your program should issue its OPEN CURSOR statement after a checkpoint call or a message GU.

IMS TM and DB2 work together to keep data integrity in these ways:

  • When your program reaches a commit point, IMS TM makes any changes that the program has made to DL/I databases permanent, releases output messages for their destinations, and notifies DB2 that the program has reached a commit point. DB2 then makes permanent any changes that the program has made to DB2 databases.
  • When your program terminates abnormally or issues one of the IMS TM rollback calls (ROLB, ROLS without a token, or ROLL), IMS TM cancels any output messages your program has produced, backs out changes your program has made to DL/I databases since the last commit point, and notifies DB2. DB2 backs out the changes that the program has made to DB2 databases since the last commit point.

Through the Automated Operator Interface (AOI), IMS TM application programs can issue DB2 commands and IMS TM commands. To issue DB2 commands, the program issues the IMS TM /SSR command followed by the DB2 command. The output of the /SSR command is routed to the master terminal operator (MTO).