"in-flight" message exchanges and deactivation of endpoint

What happens to the active message exchanges addressed to the given endpoint, when that endpoint is deactivated by the component?

It would make sense to require that all such exchanges reach completion before the call returns from the deactivateEndpoint method, and that the component sees no future messages addressed to that endpoint until it is reactivated.

[373 byte] By [rgarg2a] at [2007-10-2 5:12:55]
# 1

The fate of "in flight" message exchanges is in the hands of the service provider component that is deactivating its endpoint that is associated with those incomplete message exchanges. The JBI implementation will not allow new exchanges to be sent to the deactivated endpoint; the consumer component will receive an appropriate routing error (or the exchange will be routed to another provider component).

The provider component will continue to receive (via DeliveryChannel.accept()) in-flight instances (for example, the "done" status from the consumer of an in-out MEP operation). How it treats such exchange instances is entirely up to the component implementation, but if you take a look at the supported MEPs, their are only a few "in flight" states that a provider component will see under the circumstances here:

1. Robust in-only: consumer sending "done" status (in response to a fault response from the provider).

2. In-out: consumer sending "done" status.

3. In Optional-out: Consumer sending a "done" status or a "fault" response (in response to the out or fault response from the provider).

The first two cases, as well as the first variant of the third, simply close the life cycle of the ME instance. The second variant of the third case is more complex, indicating that the consumer has found fault with the provider's response earlier in the ME life cycle.

All of this is really just expressing part of the service provider's cbligation to conform to the MEP of an operation it provides. There is nothing in the specification that says it can deviate from the MEP simply because no new instances of the operation request are possible through a particular endpoint. Do you think an explicit statement to this effect is needed? (Deactivation is much more orderly a thing than catastrophic failure.)

RonTen-Hovea at 2007-7-16 1:15:33 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...