IBM BPM, V8.0.1, All platforms > Get started with IBM BPM > Key concepts > Versioning > BPEL processes

Migrating running process instances to a new version of the BPEL process

When you introduce a new version of a BPEL process, you might want this version to apply to both new process instances and to instances that have already started. This can be important in environments where changes to processes are needed frequently, but where an individual process instance can be relatively long-lived. In such cases you need to migrate the process instances that are running to the newer version.

You can create a new version of a BPEL process in one of the following ways:

For example, the following figure shows the steps for defining a new version of the process in Integration Designer through to migrating running instances in Process Server.

In general, for a new version of a BPEL process to become a migration target, you must deploy a migration specification together with the new version of the process. If you deploy a new snapshot of a process application or toolkit with the same BPEL process implementation as a previously deployed snapshot, the new version the BPEL process automatically becomes a migration target for the previously deployed snapshot.

To migrate running process instances to a new version of the process, you can use either an administrative script to migrate process instances in bulk, or Business Process Choreographer Explorer to migrate specific instances.When migration is triggered, the process, the variables, and the activities that are at the current position of the process navigation now refer to the new version of the BPEL process and the follow-on navigation depends on the logic of the new version of the BPEL process. The activities that have already been navigated when the process instance is migrated are not migrated. During the migration of a process instance, all the instances of inline human tasks, which belong to this process instance and are not yet in an end state, are also migrated.

If the changes to the process that are contained in the new version of the process do not affect the process logic, such as the display name or description of an activity, a running process instance can be migrated any time during the process navigation. However, if the changes affect the process logic, such as new activities, variables, or conditional expressions are changed, you can migrate a running process instance to a newer version only if all of the changes that affect the logic of the process are after the current position in the process navigation.

For example, any change to an inline human task is considered to affect the logic of the process. You can migrate a running process instance to a newer version only if all of the changed inline human tasks are after the current position in the process navigation.

If events are defined for the BPEL process, you can track process migration using Common Base Events. An event can be generated when the migration is started and again when the migration is complete. A history of process migrations is also kept in the Business Process Choreographer database.


Process migration example

To work through an example of process instance migration, go to the Business Process Management Samples and Tutorials web site.

Versioning of BPEL processes


Related concepts:
BPEL process model changes and runtime migration
Changes to the descriptive and quality-of-service properties of process instances
Changes to the business logic of a process instance
BPEL process migration tracking
Additional considerations for process instance migration
Invoking different versions of a BPEL process


Related tasks:
Migrating BPEL process instances in bulk
Migrating specific process instances