On 10/26/06, moraleslos <[EMAIL PROTECTED]> wrote:

From reading your original explanation many times, I think the reason why I'm
getting this issue is that setting the status on the exchange to be put on
the deliver channel can only occur with these combinations:

synch InOnly
synch RobustInOnly
asynch/synch InOut
asynch/synch OptionalInOut

No. Even async InOnly need to send the DONE status.


Since I'm using the client API. its implementation always calls
done(exchange).  Hence in order to use the client API appropriately, I need
to use one of the service invocations mentioned above... Is this correct?

What do you mean by "always calls done(exchange)" ?


-los


moraleslos wrote:
>
> Guillaume, thanks for the explanation.
>
> Now I have another related question.  Everytime I use an async InOnly in
> one of my components, I get this error message:
>
> ***********************************
> java.lang.IllegalStateException: component is not owner
>       at
> 
org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setStatus(MessageExchangeImpl.java:210)
>       at
> 
org.apache.servicemix.client.ServiceMixClientFacade.done(ServiceMixClientFacade.java:198)
>       at
> 
org.apache.servicemix.client.ServiceMixClientFacade.send(ServiceMixClientFacade.java:146)
>       at
> 
com.test.integration.servicemix.ftp.EnhancedFTPPoller.sendAsyncFileMessage(ClientAPIUtil.java:109)
>       at
> 
org.apache.servicemix.components.util.OutBinding.onMessageExchange(OutBinding.java:49)
>       at
> 
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:624)
>       at
> 
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:169)
>       at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:177)
>       at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:227)
>        ...
> ****************************************
>
> Now when I turn this InOnly exchange to be synchronous (sendSync(InOnly)),
> I don't see any of these errors.  Looking at the MessageExchangeImpl
> class, I have no clue what or how all those status codes are used so I
> don't know how to figure this out.  Thanks in advance.
>
> -los
>
>
> gnodet wrote:
>>
>> First, the MEP is completely unrelated to the synchronous / asynchronous
>> bit.  You can send an InOnly synchronously or send an InOut
>> asynchronoulsy.
>> Then, all JBI exchanges have to be terminated by either a DONE status or
>> an ERROR status (which is different from a fault).  This also apply to
>> InOnly
>> and is the way to inform the consumer that the exchange has been handled
>> when using a synchronous call.
>>
>> Synchronous InOut :
>>    channel.sendSync(inout);
>>    NormalizedMessage answer = inout.getOutMessage();
>>
>> Async InOut:
>>    channel.send(inout)
>> The answer will be put in the delivery channel, so that the component
>> need to poll the it (or implement MessageExchangeListener).
>>
>> On 10/26/06, moraleslos <[EMAIL PROTECTED]> wrote:
>>>
>>> I think I understand the service invocations / MEPs but am a bit
>>> confused on
>>> where the delivery channel fits in.  I know if I just want to send an
>>> async
>>> message w/o expecting any response, I just create an InOnly and call
>>> deliveryChannel.send(InOnly).  If its a sync, I create an InOut and call
>>> deliveryChannel.sendSync(InOut), and then get a response back via
>>> InOut.getOutMessage().
>>>
>>> Now, sometimes I see in the smx source code that the exchange status is
>>> set
>>> to DONE and sends the message on the delivery channel.  Is this done for
>>> any
>>> type of service invocation, i.e. whether it be a async or sync
>>> invocation?
>>> Or is this set for just a sync?  The way I look at it, it should only be
>>> done for a sync since the sender is expecting a response back whereas
>>> the
>>> async caller doesn't care.  Am I on target with this?
>>>
>>> Thanks in advance!
>>>
>>> -los
>>> --
>>> View this message in context:
>>> http://www.nabble.com/SMX-Service-invocations-tf2514184.html#a7011818
>>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>> --
>> Cheers,
>> Guillaume Nodet
>>
>>
>
>

--
View this message in context: 
http://www.nabble.com/SMX-Service-invocations-tf2514184.html#a7012634
Sent from the ServiceMix - User mailing list archive at Nabble.com.




--
Cheers,
Guillaume Nodet

Reply via email to