Updating active Business Processes
I have a BPL Business process which always processes messages - mainly it waits for responses since downstream systems are seriously async.
I need to update this process.
Wwould the existing instances of this Business Process complete correctly after the update?
My BPL changes would result in:
- New S method in the Thread class
- New OnResponse method in the context class
Both changes are in the middle of the process, so there are S/OnResponse methods before and after my change.
What if it's only a new S method? What if it's only a new OnResponse method?
Product version: IRIS 2020.4
$ZV: IRIS for Windows (x86-64) 2020.4.0ML (Build 694U) Mon Jan 11 2021 22:59:37 EST
For the case where only a new OnResponse method is added the workaround is executing these update queries:
UPDATE process.Context__ResponseHandlers SET "_ResponseHandlers" = 'OnResponseXYZ' WHERE "_ResponseHandlers" = 'OnResponseABC'
Where ABC is an old method name, XYZ is a new method name.
In a case of several new methods they should be executed from the largest number first.
Hello Eduard,
The following isn't a answer to your literal question, as that would probably take specific testing to see what the behavior would be. However, the best practice would be to stop a component while you're updating it. That applies to a business process and any other situation where you're updating an active component, to prevent any sort of compatibility or timing issues that could cause unexpected behavior in your production.
The BP (and the entire production) is down for the entire modification/compilation/update.
The issue is that for existing instances ResponseHandlers should be updated after BP compilation to point to the new values.
Ah, I see, I've misinterpreted your query, apologies for that. I'm not sure about this behavior! If somebody doesn't have an answer for you, this sounds like something you could raise with the WRC.