In-flight instance migration considerations for IBM Business Process Manager
SergeiM 270001D9H5 Comments (5) Visits (11246)
Whenever you are promoting a newer version of your process application snapshot you have few options to choose from on how you would like to handle in-flight (running) instances on the target runtime server.
In this blog post, I would like to concentrate on the Migrate option for instances because Leave and Delete are straight-forward; there is no need to explain them in more detail. However, the Migrate option might cause unpredictable results in some cases. So, the purpose of this article is to talk about the best practices when you use the Migrate option.
You can find general information on migrating instances in the Migrating instances topic within the IBM Business Process Manager Information Center.
The Migrate option means that currently running instances are migrated to the new snapshot that you are deploying. Wherever the running instances are in the flow of the process, the new version is implemented for the next item or step. VERY important note on this - if you migrate currently running instances to a new version of the snapshot, problems can occur if the new version removes steps or other components from the business process definition (BPD). When running instances have tokens on business process definition (BPD) or service-level components that have been removed in the new snapshot, migration can fail. Tokens indicate where a runtime instance is currently executing and can be present on an activity, a conditional sequence line, a coach, a service call, and numerous other components.
If you believe that the Migrate option is the right option for you, then almost all of the best practices from the Lombardi Teamworks 6 product are applicable in this case. The reason is because Teamworks 6 did not have any deployment options; you just used import/export. This action always overrode the previous version with new code and all the in-flight instances were impacted. In other words, you were always using a migrate option. The IBM Business Process Manager rules for migration when you deploy a snapshot and migrate are not 100% the same as it was in Teamworks 6. However, 90% of those best practices that were available for Lombardi Teamworks 6 are applicable when you deploy a snapshot and migrate in IBM Business Process Manager. So, they are not applicable to IBM Business Process Manager "as such" because it has been completely re-written and redesigned in this area (there were not any snapshots in Teamworks 6), but the case where you do deploy a snapshot and migrate is close to how it used to be.
My suggestion is to read the following articles for an overview of the best practices from Teamworks 6 and, based on that information, develop your own procedure for migrating live instances to new to avoid any unpredictable results:
Sergii Malynovskyi, who is based Kyiv, Ukraine, is a Team Lead for the WebSphere Lombardi Edition and IBM Business Process Manager Level 2 Support Team.