Scheduling application programs against unavailable data

IMS Transaction Manager schedules an application program even when some of the full-function databases that the application program can access are not available. When dealing with unavailable data, the application program can be sensitive or insensitive to data unavailability.

Application programs that are sensitive to unavailable data issue an INIT call when IMS schedules the applications. The INIT call tells IMS to return a status code in the PCB when the data that the application program requires is not available. The program can then take the appropriate action.

Application programs that are insensitive to unavailable data do not issue an INIT call. If an application program that is insensitive to unavailable data attempts to access data that is not available, IMS terminates the application program with a user abend code 3303 and backs out any updates that the application program has made. If an application program generates ten 3303 abends, IMS prevents further rescheduling of the application program by stopping its PSB.

If an application program terminates as a result of unavailable data, IMS places the input message that the application program was processing on the suspend queue. A separate suspend queue exists for each transaction type. Serial transactions are not placed on the suspend queue, but rather are returned to the normal queue as the next message to be processed and are USTOPPED.

If IMS determines that most messages are failing and being placed on the suspend queue, IMS stops processing that transaction type. When the transaction is started, or when a database used in processing the transaction is started, the messages on the appropriate suspend queues are transferred to the normal queue, and another attempt is made to process the message.

Related reading: