This is a case where send() is a better idea in theory but in reality it
causes a few problems.  We've witnessed this on a fairly large-scale
deployment with ServiceMix.   Using send() leads to a lot of MEX being held
in memory and a lot of threads being created and you quickly run out of
memory.   Granted, these are problems of the ServiceMix SEDAFlow
implementation but that's what I've seen most Ode users use.

I'm all for configurable behavior although I strongly believe sendSync() is
the better default.

alex


On 6/21/07, Maciej Szefler <[EMAIL PROTECTED]> wrote:

Actually.... orginally this was a send() operation for this very
reason. Someone (cough) changed it to use sendSync instead:

r521390 | boisvert | 2007-03-22 14:11:04 -0400 (Thu, 22 Mar 2007) | 2
lines

Use sendSync() rather than send() for better load conditioning

I think this was an error, we should be using send().

-mbs

On 6/21/07, Michael Horwitz <[EMAIL PROTECTED]> wrote:
> Thanks Alex - I will give it some thought.
>
>
> On 6/21/07, Alex Boisvert <[EMAIL PROTECTED]> wrote:
> >
> > Hi Michael,
> >
> > We currently use sendSync() mostly because the engine doesn't know
better.
> > We would need to introduce an annotation somewhere to chose between
sync
> > or
> > async, as well as configure the timeout.   (Same issue with the Axis2
> > integration layer)
> >
> > Any thought on where we should do this?  In the WSDL protocol binding?
> >
> > In the mean time, the recommendation is to break up your
request-response
> > operations into two one-way operations and use timers in the process
as
> > the
> > timeout mechanism.   The main drawback here is the loss of built-in
> > fault-handling behavior, although it makes your process more portable
> > because you're making less assumptions about the transport layer.
> >
> > cheers,
> > alex
> >
> >
> >
> > On 6/21/07, Michael Horwitz <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi,
> > >
> > > Looking through the ODE Jbi code (and observing the corresponding
> > > behaviour
> > > in a running process) I noticed that Ode uses the
> > DeliverChannel.sendSync
> > > ()
> > > operation to invole other services on the bus. Is there any support
for
> > > fully asynchronous service invocations in JBI? Or some way to
influence
> > > the
> > > timeout for longer running processes?
> > >
> > > Thanks
> > >
> > > Mike Horwitz
> > >
> >
>

Reply via email to