I will open a ticket in Camel JIRA

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com


On Fri, Aug 28, 2009 at 12:28 PM, Guillaume Nodet <[email protected]> wrote:

> Right, I think that would be the way to go.
> It should be possible to set that up using pure spring-dm stuff and camel.
>
> On Fri, Aug 28, 2009 at 11:31, Charles Moulliard <[email protected]
> >wrote:
>
> > You are right, I completely forget that bundles are started
> asynchronously.
> > Nevertheless, I would prefer to have something running outside of the
> > camelcontext even if the job scheduler is developed/based on Camel
> > technology as we can have several camel context running in separate
> > bundles.
> >
> > Imagine that we define a "scheduler service" like this :
> >
> > <job id="A" scheduler="ref to quartz cron definition"
> > errorHandlerRef="reference to the error hnadler who will handle the
> > exception">
> > <start ref="routeA"> // bean refering to a camel toute
> > <transacted> // can be used when we have transacted job (= routes)
> > <choose>
> >   <when>
> >     <simple>job succeed</simple>
> >     <stop ref="routeA"/>
> >     <to queue:job:succeed> // can be a queue component where job report
> > information will be send OR
> >     <start ref=routeB/>
> >  </when>
> >  <when>
> >     <simple>job fails</simple>
> >     <to queue:job:fail>
> >  </when>
> >  ...
> > </job>
> >
> >
> > Remarks :
> > My hypothesis depends on the following assertions :
> > - CamelContexts must be exported/exposed as a blueprint/spring DM/...
> > services,
> > - Routes defines in camel context are visible,
> > - When the job is started, it will wait to receive from camel route a
> > return
> > parameter : fail or succeed. Maybe this return could be placed as a
> message
> > in the a scheduler queue that the job context is listening !!
> > - If the job does not receive fail or succeed, then it should be possible
> > to
> > stop it (though console, mbeans, ...
> >
> > Regards
> >
> > Charles Moulliard
> > Senior Enterprise Architect
> > Apache Camel Committer
> >
> > *****************************
> > blog : http://cmoulliard.blogspot.com
> >
> >
> > On Fri, Aug 28, 2009 at 10:18 AM, Guillaume Nodet <[email protected]>
> > wrote:
> >
> > > While I think this is very valuable, my first impression is that
> > scheduling
> > > at the bundle level is not necesseraly a good idea.
> > > I would think this would be more suitable to do that at the camel route
> > > level.
> > > The CamelContext has features to start / stop routes already, so it
> > should
> > > be quite easy to implement a scheduler on top of that.
> > >
> > > For bundles, it can be valuable too, but the problem is that bundles
> can
> > be
> > > started asynchronously (when using spring-dm or blueprint) so having
> some
> > > kind of return value would be quite difficult.
> > > Actually, you could use camel itself to implement the scheduler and
> start
> > /
> > > stop other routes or bundles ?  It could also handle a timeout I think
> > and
> > > send alerts ... Camel is quite powerful, so it sounds reasonable to use
> > it.
> > >
> > > Thoughts ?
> > >
> > > On Thu, Aug 27, 2009 at 09:45, Charles Moulliard <[email protected]
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > Since a couple of days I try to find an easy way to handle "jobs" in
> > > Apache
> > > > Felix Karaf and Camel. In standard, Camel proposes a camel-timer and
> > > > camel-quartz components but they can only be used inside a camel
> route.
> > > By
> > > > the way, camel context or camel routes are not "schedulable" like it
> is
> > > > possible with Spring batch. So it is not possible to start a route at
> > > 9:00
> > > > and stop it at 11:00 and to check if the route succeed or fails
> inside
> > a
> > > > OSGI server. OF course, if camel is packaged in java standalone
> > > application
> > > > or j2EE server, alternative exist.
> > > >
> > > > This is why I come with the following idea who could be very
> > interesting
> > > > for Apache Felix Karaf in term of enterprise added value.
> > > >
> > > > *Job Scheduler for starting and stopping bundles*
> > > >
> > > > With the help of a quartz configuration file, the kernel of Apache
> > Felix
> > > > Karaf can check which bundles have to be scheduled (like jobs) and
> > > > started/stopped. The bundle to be started could be a camel route,
> ....
> > > When
> > > > the bundle stops or if the thread is still running at the end of the
> > job,
> > > > this information must be returned to the job scheduler in order to
> > decide
> > > > what to do (wait and send an alert to administrator to decide what to
> > > do).
> > > > Another interesting feature could be to return fail / succeed to the
> > job
> > > > scheduler to keep trace of what happen during job execution. This
> > > > information could be also used to link jobs / bundles together as
> this
> > is
> > > a
> > > > feature that you have with tool like IBM Tivoli Manager where you can
> > > chain
> > > > jobs.
> > > >
> > > > Regards,
> > > >
> > > > Charles Moulliard
> > > > Senior Enterprise Architect
> > > > Apache Camel Committer
> > > >
> > > > *****************************
> > > > blog : http://cmoulliard.blogspot.com
> > > >
> > >
> > >
> > >
> > > --
> > > Cheers,
> > > Guillaume Nodet
> > > ------------------------
> > > Blog: http://gnodet.blogspot.com/
> > > ------------------------
> > > Open Source SOA
> > > http://fusesource.com
> > >
> >
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>

Reply via email to