Written by

Senior Cloud Architect at InterSystems
MOD
Question Eduard Lebedyuk · Jul 28, 2021

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:

  1. New S method in the Thread class
  2. 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

Comments

Eduard Lebedyuk · Jul 28, 2021

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.

0
Vic Sun · Jul 28, 2021

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.

0
Eduard Lebedyuk  Jul 28, 2021 to Vic Sun

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.

0
Vic Sun  Jul 28, 2021 to Eduard Lebedyuk

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.

0