AnsweredAssumed Answered

Activiti receive tasks and Camel.

Question asked by mhanrahan on Nov 18, 2014
Latest reply on Nov 20, 2014 by smirzai
We are making use of Activiti to manage the process of contacting an external system.  Part of this involves receiving a number of notifications from external systems via camel into Activiti with a Receive task.

The process basically waits for a message, performs some logic to process the message, and then when that is done, it loops back around to the receive task to wait for the next message.

The issue that we're experiencing is that if the process hasn't looped back around to the receive task and a Camel message is accepted by the ActivitiProducer class, but the Activiti Engine throws an exception because there isn't a process instance that is waiting at the Receive task.

In this scenario, the message gets lost, as Camel declares the message successfully sent, and Activiti throws an exception. We did consider attempting to handle this in Camel, but it doesn't detect the exception, and a retry wouldn't work because in one of the loops is a Human Task which could be left open for days.

What would you recommend doing to handle this situation? Does Activiti have any form of durable subscriber for signals?

Outcomes