Hi folks,

Just getting started with Camel and EIP/ESB/integration in general. 

I have several processes that include a shared portion that is not thread-safe. 
 Right now I have routes for each variant of the process that consume its 
trigger (schedule, ad hoc, conditions, etc), build a message indicating what 
type of process it is and then send it to a SEDA queue.  I have a single SEDA 
listener route that pulls those messages and executes the shared 
non-thread-safe portion.  

This works well for me so far, but there are cases where the product I'm 
integrating will kick off the non-thread safe process itself, outside of my 
control.  I can test for the presence of this process by looking for specific 
job/status files and the process itself in the process list.  I'm trying to 
figure out the best way to halt the SEDA route processing in this scenario.  
Options I've come up with are:

- Implement a blocking processor in the SEDA route that just waits until the 
process completes and then continues.  The processor is on a timer, and if the 
timer expires it throws an exception (or kills the external process, which has 
a tendency to hang).  I have this implemented and it seems to work OK so far
- Immediately fail the route and just wait until I retry
- Test for the presence of the process before pulling the message from the SEDA 
queue
- Ask you folks for a better idea

Thanks!

Bob

Reply via email to