cancel
Showing results for 
Search instead for 
Did you mean: 

BPM error handling

Former Member
0 Kudos

Hi,

I've read many messages on this forum regarding BPM error handling but am still a little confused.

In my scenario the BPM is quite simple. All it does is Call web service (synchrous) then transform and then call another web service synchronous.

Now , If any call to the two web services fails , I would like to be able to restart the two calls... now if they fail again, I would like to be able to restart the two calls again... until they work. But each time the restart would be done manualy in the BPM monitoring transactions.

The way I understand the error handling

if I put my synchronous send steps and transformations in a step and catch the exception they throw , I can send myself an alert and then throw another exception which I dont handle. This way , since that exception is not handled , it will set the process in error and I can restart the process later.

However , how can I set it up so that when I restart the bpm , both calls are done again and the same exception handling happens.

Now , when I restart, it seems only what comes after the block and the exception is executed. If I put the sync send calls in the exception handling branch, that will allow me to run the send steps once after an exception...

Thanks.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

thanks for all your replies.

So , I've got it working... my conclusion is as follows. If you catch the exceptions in your BPM (that is , you create your own and set it in the step as an exception) , then the queue will not be stopped. Even if you throw your own exception.

The only exceptions that stop the queue are the ones thrown by default by PI...

If you ask me , this is really lacking in PI. We should be able to throw catch the exception , do some handling , and then throw another exception which blocks the Q.

Thanks again.

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>All it does is Call web service (synchrous) then transform and then call another web service synchronous.

sorry in case you use sync communication you cannot restart anything - so no need to do anything else

Regards,

Michal Krawczyk

Former Member
0 Kudos

Hi,

Is it at least possible to block the integration process when one instance of it is in error ?

Suppose first call fails and I throw an unhandled exception, then could all other calls be stoped until the blocked one is resumed ?

If you can't do this, what would be the purpose of having a Q ? I mean if I do 2 calls and they are put into the queue but the first one fails and the system just runs the second... then the queue is pretty useless ?

Thanks

Former Member
0 Kudos

Thierry,

If your first call fails it will stop there only until it is resolved. Once resolved then it goes for the second one. This is how it works.

Regards,

---Satish

Former Member
0 Kudos

Here is what happens in my case,

First call to bpm starts bpm and fails on first send synchronous step. I throw an exception so the bpm is in error.

Second call comes and works fine.

Shouldn't the second call wait since the bpm has an instance in error ?

Thanks.

Former Member
0 Kudos

Thierry

the problem here is u r sending a known intentional exception. So u need to come up with the logic which should take care of this.

Satish

Former Member
0 Kudos

Even if I don't throw the exception and its a System error on the synchonous call, the BPM is in error but the next call will go through...

I don't know what the point of EOIO was in that case ?

former_member200962
Active Contributor
0 Kudos
Even if I don't throw the exception and its a System error on the synchonous call, the BPM is in error but the next call will 
go through...
I don't know what the point of EOIO was in that case ?

Even having an Exception branch is enough....you need not compulsorily have anything in it.....so when an exception occurs in your Sync step the control goes to the Exception Branch of the Block....but since there is no step defined in the branch nothing happens.....and the Control then passes to the next branch as in a normal flow.....

Since the Exception branch is defined the BPM will not wait/ stop/ error-out if any thing goes wrong in the Sync Send step.....it will continue....this is the normal behavior....an error entry will however be shown...if you want that your process stops if the Sync Send fails then have a Control Step (Action--> Cancel Process) in the Exception Branch

Regards,

Abhishek.