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
