I’ve dealt with situations like this using Blueprint reference-listeners.
Basically, I setup a reference listener to start the context when a service becomes available (or restart the context if the service implementation is switched). For this to work, I had to write a little code that exposed my DataSource as a service, but the service was only available when I could connect to the DB. > On May 16, 2017, at 3:32 PM, Zoran Regvart <zo...@regvart.com> wrote: > > Hi Jonathan, > I think we would like to address this with health checks[1], some of > which shipped in 2.19.0 and we would like to improve on this. > > Perhaps it would be nice to tie health checks this into control bus > and let the user define a policy on how to handle failures. But this > is somewhat new territory that's still being developed, so perhaps if > you're aware in advance of the database being unavailable you can use > `camel:route-stop` to stop the route and `camel:route-start` to start > it when the database is back online. > > zoran > > [1] https://issues.apache.org/jira/browse/CAMEL-10026 > > On Tue, May 16, 2017 at 3:39 PM, Jonathan Schoreels > <jonathan.schore...@gmail.com> wrote: >> Hi all, >> >> It seems that if a database is unreachable, and if the camelcontext >> contains a sql consumer, the camel context won't start, even though marked >> as Created in karaf console. >> >> I don't mind the karaf "created" marked, but I would love to know if you >> have any advice to startup sql route when the DB may be down, for example >> if after a maintenance, the karaf is faster than the DB to restart. >> >> A workaround found is to use a timer before, and the sql query in a >> pollEnrich just after, but it's quite dirty. >> >> You can find the whole stack here : >> https://pastebin.com/XvYpCjZK >> >> Jonathan Schoreels > > > > -- > Zoran Regvart