cancel
Showing results for 
Search instead for 
Did you mean: 

The behaviour of Send Step in ccBPM

Former Member
0 Kudos

Hi All,

I have the following Integration Process:

1) Block (Block Start & Block End - set New Transaction)

2) Receive

3) Receive

4) Transformation (Create New Transaction)

5) Send (No New Transaction)

6) Transformation (No new Transaction)

7) Send (Create New Transaction) - out of the Block

Then I send two messages to the integration process in such a way that on the second transformation step error occurs. The first send step does not send message until I correct the corresponding mapping and restart the process. As I understand it happens because the send step is in the same transaction as the second erroneous transformation step.

After that I change my process. I set Create New Transaction on the first send step. And again I send two messages to the integration process in such a way that on the second transformation step error occurs. At this time the first send step sent message.

But my question is why after restart of the process this send step doesn't send message again? The transaction in which this step located is to roll back and all the steps should be executed again. So the first send step should send two identical messages, shouldn't it?

I will be very grateful for your help

Thanks and best regards,

Irina Hrapova

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Irina,

indeed, you would think that everything is rolled back to the point where you requested a new transaction. But how would you roll back a message that has been sent? You can't, and therefor it works like this.

Now I assume you have an asynchronous send step because it is not getting executed twice, but a synchronous send step would be. The logic behind this is that restarting is 'transient' or in other words: supposed to be safe. This presupposes that you are using asynchronous send to perform updates in remote systems (and so should not be re-sent), and synchronous send to perform data reads (which are re-executed to get the most recent data).

kr,

Peter

Answers (0)