May 29, 2010

Migrating BPEL instances from one Oracle BPEL Process Manager 10g environment to another

We were cutting over to a new Oracle SOA Suite infrastructure (i.e., retiring the first instance, and cutting over to a new one).

Even though the codebase deployed on both environments were identical, the development team wanted all instances migrated as well. (The primary reason was that they were already overruling the BPEL instance title and inserting order and customer numbers there, so they would like to use that as a reference when troubleshooting.)

Migrating BPEL instances:


1. Purge all instances via the BPEL Console on the new instance (via the “Purge all instances” button).

2. Shutdown both SOA Suite midtiers.

3. Export the following tables from the old dehydration store and import it into the new one (using standard ‘exp’ and ‘imp’ database utilities):

ORABPEL.CUBE_INSTANCE
ORABPEL.CUBE_SCOPE
ORABPEL.AUDIT_DETAILS
ORABPEL.AUDIT_TRAIL
4. Run the following query on both dehydration store databases, and note the next_range value:
SELECT next_range FROM orabpel.id_range;
5. Select the largest of the two values, we’ll denote it as XYZ.

6. Run the following update statements on the new dehydration store database:

UPDATE orabpel.id_range SET next_range = XYZ + 10000 WHERE range_name = 'cikey';

UPDATE orabpel.cube_instance SET state = 9;

COMMIT;
That’s it. This effectively migrates all instances from the old environment to the new.

Things to note:

  • These instructions are applicable to Oracle SOA Suite 10g (10.1.3.x).
  • Updating the next_range value requires a restart of the midtier.
  • The steps above intentionally force all instances to be “stale”.
  • Backup your tables in the new instance before executing the instructions above just in case.

1 comment: