OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide
Planning Your Program
OSI/MHS Gateway Programmatic Interface (GPI) Programming Guide—424822-001
4-4
Inbound Fault Recovery
Inbound Fault Recovery
During inbound processing, root objects have states. The states are similar to those for
an executing process. Object states are described in Section 2, The GPI Library.
Prior to a call to GPI_MT_START_TRANSFER_IN_ , an available root object is stored
in unreserved state on the GPI service input queue. The root object is available to any
client program that can access the queue. At this point, the root object is the
responsibility of the GPI service. If a failure occurs, root objects on the input queue are
recovered automatically by the GPI service.
Following a call to GPI_MT_START_TRANSFER_IN_ , the root object on the input
queue is copied, and the copy is placed in GPI library memory space. The root object
remaining on the input queue is reserved and is no longer accessible. The root object in
GPI library memory space is not modifiable; it can be inspected and copied but not
edited. At this point, the GPI service still has responsibility for the object on the input
queue. If a failure occurs, the copy of the object in memory is lost, but the original on
the queue is protected. The original object can be transferred in again, following
re-establishment of the GPI session.
Following GPI_MT_FINISH_TRANSFER_IN_ , responsibility for the inbound
information might change, depending on values of the remove and retain parameters.
The GPI service maintains responsibility if remove is set to either MH-CANCEL or
MH-TRANSFER. If remove is set to either MH-ARCHIVE or MH-REMOVE, the
client program should take responsibility for storing the inbound message.
Responsibility for inbound information is summarized in Table 4-2.
Table 4-1. Responsibility for Outbound Information
Time Responsible Entity
Before GPI_MT_TRANSFER_OUT_ Client program
After GPI_MT_TRANSFER_OUT_ GPI service
Table 4-2. Responsibility for Inbound Information
Time Responsible Entity
Before GPI_MT_START_TRANSFER_IN_ GPI service
After GPI_MT_START_TRANSFER_IN_ GPI service
Before GPI_MT_FINISH_TRANSFER_IN_ GPI service
After GPI_MT_FINISH_TRANSFER_IN_ GPI service if remove=cancel or transfer,
Client program if remove = archive or
remove