Written by SOA architect Sandra Flores, this article presents an overview of key new features in Oracle SOA Suite 12.2.1. The article was translated by the author from the original Spanish language version that appeared on the OTN Latin America site.
By Oracle ACE Associate Sandra Flores 
I recently had the opportunity to see version 12.2.1 of Oracle's SOA Suite in action--and I can say it offers some very nice features that we developers have been waiting for. These features will make our lives much easier, especially when working with Cloud integrations, using REST and locating failures in BPEL instances.
These are some of the new features:
- JavaScript support for SOA Composites and OSB Pipelines. Besides REST support for OSB and BPEL (which comes from a previous version), now we have a JavaScript activity for BPEL flows and another one for OSB Pipeline components. With this activity it is possible to handle payload with native and custom functions of this language without converting from JSON to XML (i.e., we are able to create REST BPEL orchestrations and OSB flows using JSON and work with this structure in a natural way with JavaScript). You can read more about using JavaScript in SOA Composites in the well-explained and complete article found here: https://technology.amis.nl/2015/11/02/soa-suite-12-2-1-a-first-look-at-end-to-end-json-and-javascript-support-in-soa-composites/.


- XSLT Mapping Debug. XSLT transformations now have debug functionality. We can set breakpoints to check a function's input and output data at runtime. This feature is available for applications deployed in local and remote servers, and for BPEL and Mediator components as well as for OSB projects.

- Oracle Integration Continuous Availability. This complete solution comprises a set of SOA Suite operative functionality, including diagnosis, performance, availability, scalability among other operative aspects. Its main purpose is to provide tools and capabilities to solve issues arising from failures and improve our implementations. The following are part of this group:
- In-Memory SOA. When we create a BPEL in JDev, a new tab called In-Memory SOA lets us choose from three persistence options: immediate, deferred and faulted. This functionality uses Coherence cache associated with WebLogic Server to run non-transactional short-running BPEL processes in-memory. This helps improve performance, lighten the DB job and make its maintenance easier. State data is stored and read from Coherence cache according to the option we choose:
Immediate: Process state, flow trace and audit trace are persisted to the database all the time(i.e., its behavior is the same as if in-memory SOA is not enabled).
Deferred: Process state, flow trace and audit trace are persisted initially to the Coherence cache while an independent thread performs persistency to the database at periodic intervals (the default is 5 minutes).
Faulted: Process state, flow trace and audit trace are persisted to the database only for faulted instances; once the flow has been recovered, all flow data is purged. If a component reaches dehydration point, the state data is persisted to the Coherence cache. This option is not enabled by default--it has to be set in Enterprise Manager Console--and in order to create a BPEL process with this feature its transaction must be notSupported.

- Circuit Breaker. This feature has been designed for constantly unavailable external services, by reason of, among other things, low performance, capacity, processing, or resources. These issued services commonly end up affecting invoking clients, causing large amounts of failed instances in error hospital waiting for recovery--which involves time and (sometimes) manual recovery. To solve this situation, Circuit Breaker automatically suspends this service and redirects the pending messages to a message queue or file, to be processed later, when the service is available and can retake them.
- Composite Running Instance Patching. This functionality lets us change a composite and create a patch version, deploy this new version to the server, apply it to running instances and recover those with failures. To create a composite patch version, it is necessary to use SOA Patch Developer role in JDev; this option automatically disables actions not allowed to edit the composite. Some allowed changes using this role are: fault policy, sensors and analytics, transformation activities, assign activities and JCA adapter properties, among others.


- Integration Workload Statistics (IWS)****. This feature refers to a new tool in SOA Suite that provides statistics capability focused on improving system resources performance, tuning and troubleshooting (e.g., Datasources or WorkManagers). It takes periodic snapshots of different metrics in predefined intervals, and stores the results in the database for each Managed Server of the cluster. With this information, IWS can generate customized reports and deliver them in XML, CSV or HTML format. It is not possible to use this feature on the integrated WebLogic server provided with the quickstart version.

- Automatic Service Migration. This feature is useful when, within a cluster environment with several Managed Servers, one of them is down for any reason. In this situation, what usually happens is either an automatic restart of the whole server into another node of the cluster, which can be a slow process and requires a backup node in a passive mode, or another functional node takes the full load of this action. Automatic Service Migration functionality avoids the restart process, so that actions are taken against node failure by migrating only singleton services like JTA and JMS to some other running node. This reduces recovery time and infrastructure costs.
About the Author
Oracle ACE Associate Sandra Flores is a SOA architect at S&P Solutions, based in Mexico, where her focus is on services and process solutions.
This article represents the expertise, findings, and opinion of the author. It has been published by Oracle in this space as part of a larger effort to encourage the exchange of such information within this Community, and to promote evaluation and commentary by peers. This article has not been reviewed by the relevant Oracle product team for compliance with Oracle's standards and practices, and its publication should not be interpreted as an endorsement by Oracle of the statements expressed therein.