cancel
Showing results for 
Search instead for 
Did you mean: 

Activiti receive tasks and Camel.

mhanrahan
Confirmed Champ
Confirmed Champ
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?
1 REPLY 1

smirzai
Champ on-the-rise
Champ on-the-rise
Here is a patch to fix that problem waiting to be checked and merged.
you may want to build the activiti yourself and see if it helps.

https://github.com/Activiti/Activiti/pull/400