camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <>
Subject Re: [NEW] Camel 2.2 - Graceful Shutdown - Feedback welcome
Date Mon, 21 Dec 2009 01:51:22 GMT

I just have another question.
Does the batching consumer support the transaction?
If so we need to consider to add some option like to rollback the 
completed transactions or just let them be.


Ashwin Karpe wrote:
> Hi Claus,
> The ability to associate a user controlled graceful shutdown strategy is
> very good and certainly very valuable.
> +1 for this nice feature.
> As for the question on batching consumers, it would be great to have a
> flag(shutdownPolicy) that specifies which way a user would like the endpoint
> to behave in the event of context shutdown. Ideally this could be an
> operation on the Batch Consumer interface which could be implemented by all
> implementing endpoints and influenced based on a URI query setting on all
> endpoints implementing Batch Consumer. 
> Just a thought....
> Cheers,
> Ashwin...
> Claus Ibsen-2 wrote:
>> Hi
>> I am posting this to the user forum of Camel to a broader audience.
>> I have just added Graceful Shutdown to Camel 2.2 (trunk code will be
>> committed shortly).
>> The wiki page is here
>> I have enabled it by default on trunk, which means the shutdown
>> process is altered.
>> You can read all about it on the wiki page.
>> As its new code I would love feedback and having people giving it a
>> test run on your systems.
>> There is one note, the SEDA/VM components uses an internal in memory
>> queue with pending exchanges to be processed.
>> The graceful shutdown will take this into account and wait until all
>> those pending messages have been run to completion.
>> The progress is logged at INFO level such as shown on the wiki page.
>> If there are other Camel components which have the same behavior,
>> please let me know, as I could not remember any other that did.
>> If so we need to let its consumer implements the ShutdownAware
>> interface which ensures the graceful shutdown can work with it.
>> I have set a default timeout of 300 seconds for the hole shutdown
>> process. During this time any pending and inflight exchanges should be
>> run to completion.
>> Camel will of course stop input consumers before hand which ensures no
>> new messages come into Camel. And therefore its just a matter of
>> waiting until
>> all those existing messages runs to completion. If you think this
>> timeout should have a different default value, then speak up.
>> What happens if the timeout is hit, then Camel will do a shutdown now,
>> where it forces all routes to shutdown and shutdown the remainder
>> services.
>> This ensures that Camel will not block forever during shutdown.
>> I have one questions although
>> ======================
>> We have a batch consumer concept which allows a consumer to batch up a
>> number of exchanges to be routed.
>> For example: file, ftp, mail, jpa and others implement this.
>> The current gracful shutdown behavior is to stop during this batch.
>> What happens is that lets say there are 23 messages in the batch and
>> it has completed 7 of those.
>> Then a shutdown is issued. The batch consumer will complete its
>> current inprogress, and therefore it has completed 8. There are still
>> 15 left in the batch. What happens
>> is that it will break and not complete the batch.
>> Do you think we should offer a configuration which allows the batch
>> consumers to control their behavior to
>> - stop as now during a batch
>> - continue to complete the batch before shutting down
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>> Author of Camel in Action:
>> Open Source Integration:
>> Blog:
>> Twitter:
> -----
> --- 
> Ashwin Karpe, Principal Consultant, PS - Opensource Center of Competence 
> Progress Software Corporation
> 14 Oak Park Drive
> Bedford, MA 01730
> --- 
> +1-972-304-9084 (Office) 
> +1-972-971-1700 (Mobile) 
> ---- 
> Blog:

View raw message