Hi

I have created a ticket
https://issues.apache.org/activemq/browse/CAMEL-2660

And did some experiment but Jetty resets the current in progress
connection so it will fail.
I even tried sending from a webbrowser and have Camel stop while in progress.

Would returning a selected HTTP error code work with your load balancer?

For example HTTP error 503
503 Service Unavailable

This is easy to implement in camel-jetty.


On Tue, Apr 20, 2010 at 7:13 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
> Hi
>
> camel-jetty does not currently support shutting down by stopping
> intaking new requests while allowing existing to be processed to
> completion.
> In fact this is something that each individual component has to implemented.
>
> This can be done by supporting the SuspendableService on the consumer.
> Then the graceful shutdown in camel-core will be able to leverage it.
>
> For example this has been implemented in camel-jms etc.
>
>
>
>
> On Tue, Apr 20, 2010 at 12:10 AM, Ilya S <devmailboxl...@gmail.com> wrote:
>> Hi Claus,
>>
>> The test cases were helpful.  However, the reason I cannot use "Defer"
>> option is because my Jetty input point is public, and if I have this
>> option set, then the new messages will keep comming from the clients
>> and the context will never be done. My goal is stop processesing
>> gracefully while not acceptin new messages. E.g. Jetty entry point
>> should not accept any new messages, while it should still let the
>> pending messages finish.
>> In our use case, once jetty component stops acceptin new messages, our
>> load ballancer will take it off the pool, however, we would still like
>> the in flight messages to finish.
>> The issue seems only occur when I use Jetty and JMS together.
>>
>> The simple route with just one jetty consumer such as the one below
>> seems to shutdown just fine :
>> from("jetty:http://0.0.0.0:8686/hello";)
>> .delay(5000)
>> .to("multiplier");
>>
>> If I add a jms producer to the mix as follows, things break:
>> from("jetty:http://0.0.0.0:8686/hello";)
>> .delay(5000)
>> .to("jms:queue:numbers2?requestTimeout=50000")
>> .to("multiplier");
>>
>> The other queue is running in a different context, but I don't think
>> this should matter.
>>
>> Please, let me know if you think I'm misusing the API, or if it is an
>> actual bug.
>>
>> Thanks again,
>> Ilya.
>>
>
>
>
> --
> Claus Ibsen
> Apache Camel Committer
>
> Author of Camel in Action: http://www.manning.com/ibsen/
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Reply via email to