As for the issue with the consumer appearing to continue to poll - I think my cron resume/suspend expressions were overlapping.
Thanks, Chris On Tue, Mar 26, 2013 at 10:06 PM, Chris Wolf <cwolf.a...@gmail.com> wrote: > Thanks for the clarification on that. The only problem is that, when > using CronScheduledRoutePolicy > on a route with an FTP endpoint configured as a consumer, it does NOT > seem to prevent the FTP > consumer to stop polling even after it has supposedly been suspended. > > > 56:30,001 CronScheduledRoutePolicy DEBUG Suspended consumer > FtpConsumer[ftp://localhost/download?filter=%23cpmdFileFilter&noop=true&password=******&username=adpt5] > 56:35,100 FtpConsumer WARN Cannot connect/login > to: ftp://adpt5@localhost:21. Will skip this poll. > 56:35,100 FtpConsumer DEBUG Skipping poll as pre > poll check returned false > > > Any ideas? > > Thanks, > > Chris > > On Tue, Mar 26, 2013 at 9:11 PM, Raul Kripalani <r...@evosent.com> wrote: >> You don't want to stop all endpoints in the route because there may be >> inflight Exchanges. Instead, you want to stop the inflow of new messages >> whilst you keep processing any inflight exchanges. >> >> That said, it's safe to stop the entire route (including endpoints) once >> all inflight exchanges are completed (or immediately if none are alive) – >> as keeping endpoints started unnecessarily could be a waste of resources. >> Please feel free to log a JIRA. >> >> On the other hand, all routes start with a consumer of some kind. Mind you, >> it doesn't have to listen on an external protocol. Take for example the >> direct, seda or timer components, which are "virtual" endpoints. >> >> Regards, >> >> *Raúl Kripalani* >> Enterprise Architect, Open Source Integration specialist, Program >> Manager | Apache >> Camel Committer >> http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani >> http://blog.raulkr.net | twitter: @raulvk >> >> On Mon, Mar 25, 2013 at 8:08 PM, Chris Wolf <cwolf.a...@gmail.com> wrote: >> >>> I am looking at code in >>> org.apache.camel.routepolicy.quartz.ScheduledRoutePolicy - >>> the code that starts/stops/resumes/suspends the route it is a policy for. >>> >>> The question is why is it separately acting on the Consumer? I thought >>> if you call >>> CamelContext.suspendRoute(route) and/or CamelContext.resumeRoute(route), >>> that all the components in the route are suspended/resumed as well? >>> >>> Secondly, why does this code assume there is a Consumer? What if the >>> route has >>> a Producer? >>> >>> I am not being critical - I just want to understand, generally how >>> route suspend/resume works >>> since I am implementing a similar RoutePolicy. >>> >>> Thanks, >>> >>> >>> -Chris >>> >>> >>> protected void onJobExecute(Action action, Route route) throws Exception { >>> [...] >>> } else if (action == Action.SUSPEND) { >>> if (routeStatus == ServiceStatus.Started) { >>> stopConsumer(route.getConsumer()); >>> } else { >>> LOG.warn("Route is not in a started state and cannot >>> be suspended. The current route state is {}", routeStatus); >>> } >>> } else if (action == Action.RESUME) { >>> if (routeStatus == ServiceStatus.Started) { >>> if (ServiceHelper.isSuspended(route.getConsumer())) { >>> startConsumer(route.getConsumer()); >>> } else { >>> LOG.warn("The Consumer {} is not suspended and >>> cannot be resumed.", route.getConsumer()); >>> } >>> >>> [...] >>>