Request A Demo
Back to All Blog Articles

Patching Long Running SOA Processes

When was the last time you had to wait for active instances to fail before a process fix could be applied? I would guess not that long ago.  Even if you get the fix applied, you still need to deal with the failed instances.  To the rescue, SOA Suite 12.2.1 provides the ability to patch a long running instance without aborting the instance.  There is a limited list of allowable changes that can be patched, the changes can be found in this Oracle blog post.

In this post, I will demonstrate how patching long running SOA instances is easily accomplished via FlexDeploy with absolutely no modifications to the deployment process.  The FlexDeploy SOA Suite plugin executes the initial SOA process deployment and manages the patch deployment.

The PatchingTest process will utilize a wait activity to simulate a long running process and have a selectionFailure exception in the XSLT map that needs to be fixed.  We will run the process twice, once to see the failure and a second time to patch the XSLT before the wait expires.  The process looks like this:

process

Utilizing FlexDeploy, the PatchingTest process is built/deployed with a revision of 1.0 (FlexDeploy Project Version 1.0.11).

init_deployment

We can now run a couple of instances of the process and determine that one of the instances failed with a SelectionFailure.

selectionfailure

There can be many instances of this process running and with this being a long running process, it would be nice to be able to fix any instances that haven’t reached the faulty xsl map.  Looking at the process, it is easy to see that the namespace on the xpath expression is incorrect.  Since this change is a non-schema based change, we can make the modification and utilize the composite patching feature of SOA Suite 12.2.1.

The first thing that needs to be done is to switch the role (Tools->Switch Roles) of JDeveloper from Studio Developer to SOA Patch Developer.  Now we can edit the xsl map as shown below.  Just a reminder that in patch mode, JDeveloper will control what can be modified.

jdev-change

Once the change is saved to your workspace, JDeveloper will create a new artifact (SOA/SCA-INF/patch.xml) that needs to be committed to your SCM along with the xsl change.  Utilizing FlexDeploy again, the PatchingTest process is built/deployed.  The SOA plugin will detect that a patch.xml artifact exists and build/deploy the patched composite with no changes to the deployment process.

patch_deployment

Any long running instances for this process will complete with the XSL change and complete successfully.  As you can see below, the instance 290002 was created at 1:02:39 and completed at 1:12:40.  The fixed xsl map was deployed at 1:09 thus the instance completed successfully.

successful-instance

It should be noted that if you are patching any revision that isn’t the default revision, the patching process will make that patched revision the default revision and may not be what you expected.

And just like that you can patch long running SOA instances easily via FlexDeploy.

Related Resources

Mastering Source Control: Streamlining Functional Setup Data Sync with FlexDeploy and Git Integration in Oracle FSM

Effective source control management (SCM) is pivotal in ensuring the seamless tracking and management of functional setup data. In this ...

Oracle Integration Cloud – Migrate Integrations, Connections and Lookups

Oracle Integration Cloud (OIC) serves as a unified platform for seamlessly integrating cloud and on-premises applications. FlexDeploy, a robust DevOps ...

Unlocking Precision in Oracle SaaS FSM: Dive into FlexDeploy’s Filter Criteria for Effortless Setup Migration

While Oracle’s Functional Setup Manager (FSM) UI facilitates export/import operations for transferring setups across environments, the process demands manual initiation, ...

Join DevOps leaders across the globe who receive analysis, tips, and trends in their inbox