org.apache.ode.bpel.engine
Class OutstandingRequestManager

java.lang.Object
  extended by org.apache.ode.bpel.engine.OutstandingRequestManager
All Implemented Interfaces:
java.io.Serializable

public class OutstandingRequestManager
extends java.lang.Object
implements java.io.Serializable

Manages receive/pick--reply matching. Keeps track of active pick/receive activities (i.e. those that have been reached in the script) and their association with a message exchange (for those receive/picks that have received a message). The purpose of this class is to 1) enable matching a reply activity to the corresponding receive/pick activity and 2) allow us to fault out message exchanges that have not been replied to when they go out of scope.

Note, this class is only used for INBOUND synchronous (request-response) operations. None of this is necessary for asynchronous messages.

See Also:
Serialized Form

Nested Class Summary
 class OutstandingRequestManager.Entry
           
 
Field Summary
 java.util.Map<java.lang.String,OutstandingRequestManager.Entry> _byChannel
           
 java.util.Map<org.apache.ode.bpel.engine.OutstandingRequestManager.RequestIdTuple,OutstandingRequestManager.Entry> _byRid
           
 
Constructor Summary
OutstandingRequestManager()
           
 
Method Summary
 java.lang.String release(PartnerLinkInstance plinkInstnace, java.lang.String opName, java.lang.String mexId)
          Release the registration.
 java.lang.String[] releaseAll()
          "Release" all outstanding incoming messages exchanges.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_byRid

public final java.util.Map<org.apache.ode.bpel.engine.OutstandingRequestManager.RequestIdTuple,OutstandingRequestManager.Entry> _byRid

_byChannel

public final java.util.Map<java.lang.String,OutstandingRequestManager.Entry> _byChannel
Constructor Detail

OutstandingRequestManager

public OutstandingRequestManager()
Method Detail

release

public java.lang.String release(PartnerLinkInstance plinkInstnace,
                                java.lang.String opName,
                                java.lang.String mexId)
Release the registration. This method is called when the reply activity sends a reply corresponding to the registration.

Parameters:
plinkInstnace - partner link
opName - operation
mexId - message exchange identifier IN THE BPEL SENSE OF THE TERM (i.e. a receive/reply disambiguator).
Returns:
message exchange identifier associated with the registration that matches the parameters

releaseAll

public java.lang.String[] releaseAll()
"Release" all outstanding incoming messages exchanges. Makes the object forget about the previous registrations

Returns:
a list of message exchange identifiers for message exchanges that were begun (receive/pick got a message) but not yet completed (reply not yet sent)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object