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










