The plot thickens...
I now have tried to switch for multicast. Now I have 2 identical generic-services - one calls 2 other components and the other 3, only having synchronous at the last one. generic-service1 is provided as example. The multicast configuration is as follows:
<service name="entry-point-service">
<inbound>
<stdio:inbound-endpoint system="IN" synchronous="false"/>
</inbound>
<outbound>
<multicasting-router>
<vm:outbound-endpoint path="generic-service1-in"/>
<vm:outbound-endpoint path="generic-service2-in"/>
<reply-to address="vm://output-service-in" />
</multicasting-router>
</outbound>
</service>
<service name="generic-service1">
<inbound>
<vm:inbound-endpoint path="generic-service1-in"/>
</inbound>
<outbound>
<chaining-router>
<vm:outbound-endpoint path="generic-service-component-1"/>
<vm:outbound-endpoint path="generic-service-component-2" transformer-refs="ToString" synchronous="true"/>
</chaining-router>
</outbound>
</service>
<service name="output-service">
<inbound>
<vm:inbound-endpoint path="output-service-in" transformer-refs="ToString"/>
</inbound>
<outbound>
<pass-through-router>
<stdio:outbound-endpoint system="OUT"/>
</pass-through-router>
</outbound>
</service>
What happens? Sometimes it works, sometimes it doesn't, and sometimes it works while throwing a number of exceptions... From what I can understand, a lot of null messages are being passed along.
Any suggestions? I'm close to desperation right now :(
BR,
João
You were absolutely right Mario! Thanks for the tip, it works!
For the multicast case, only with one endpoint, also seems to be working! :)
João
Mario Klaver wrote:
The last endpoint in a chaining router is called a-synchronous, so one solution is to put synchronous=true on the last outbound-endpoint in the chain:
<service name="generic-service">
<inbound>
<vm:inbound-endpoint path="generic-service-in"
synchronous="true"/>
</inbound>
<outbound>
<chaining-router>
<vm:outbound-endpoint path="generic-service-component-1"/>
<vm:outbound-endpoint
path="generic-service-component-2" transformer-refs="ToString" *synchronous="true"*/>
</chaining-router>
</outbound>
</service>
You may also have to add synchronous=true on the inbound endpoints of your generic-service-component-1 and 2.
HTH, otherwise let me know.
Regards,
Mario Klaver
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email