You should not care about the mirror stuff, which is internal to
ServiceMix.  Briefly, each component only see one side of the exchange
(while the other one see the mirror).  So each time the exchange goes
from the consumer to the provider, the mirror exchange is delivered.
But components are not aware of that at all.

>From a JBI point of view, there are mainly four different meps, each
mep being handled in a different way.  For an InOut mep, here are the
steps:
   * the consumer component create an exchange and send it through the NMR
   * the NMR select the target endpoint using the metadata and put it
in the endpoint's component DeliveryChannel
   * the component picks the exchange from its DeliveryChannel,
process it by populating the out message, and send it through the
DeliveryChannel
   * the NMR route the exchange back to the consumer component
   * the consumer component picks the exchange from its
DeliveryChannel, process the response, set the status to DONE and sent
it back through the DC
   * the NMR route the exchange to the target component
   * the target component picks the exchange from its DC and usually
just discard it

On 10/17/07, Andreas Schaefer (2) <[EMAIL PROTECTED]> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I had another look into the JBI specification and looking at the
> Figure 9 I would say that when a Message Exchange (ME) is sent back
> to the NMR it should go back to the Caller. Now what happens is that
> when the Target Bean is sending the message back to the NMR through
> the Delivery Channel the message is handled by the Consumer Endpoint
> of the Target Bean because of using the Mirror ME. This means at the
> end the ME is going back to the Target Bean.
>
> This is what I see:
>
> - - - Source Bean creates ME and sets the Provider as service and sends
> it through the Delivery Channel
>
> - - - Provider Endpoint of Target Bean is receiving the ME and hands it
> over to its Bean
>      - Target Bean is handling the ME, sets the response and send the
> message back through the Delivery Channel
> - - - Delivery Channel is handing the ME to the service mentioned in
> the Mirror of the given ME
> - - - Consumer Endpoint of Target Bean is receiving the ME and hands it
> over to its Bean
>     - Target Bean is handling the Response now which I think is WRONG
>
> Is there something fundamentally wrong with the general ME handling
> in the asynchronous case? Shouldn't the Mirror inside the ME point
> back to the provider (the one that send the ME originally)? And if
> shouldn't it be set by the Delivery Channel in the send of the provider?
>
> Thanks - Andy
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (Darwin)
>
> iD8DBQFHFTecs4gPTNnP0gkRAhlaAJsEUdCmko0bcIXZoI5g/ua0nn1eOwCffMT9
> ZmUe5nTrJ/xl75xz2oJYdts=
> =vnwj
> -----END PGP SIGNATURE-----
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to