OSB 12c is coming out with new features

Screen Shot 2014-06-27 at 23.20.56

Let’s deep dive into OSB 12.1.3 new features…

Developer productivity :

  • Quick start installer for developers

You need to install Java 64 bit JDK version 1.7 or later first and then launch the fmw_12.

  • JDev IDE

    Start creating a Service Bus Application : (File > New > Application)
and discovering the OSB’s components :
and actions :

  • SCA like : Proxy services are no longer associated with message flow and message context. Proxy service invokes a pipeline, which is associated with its own unique message context and variables.

    • Integrated OSB server on JDev :
      The Weblogic Integrated Server is pre-configured with SOA Suite components runtime and JavaDB (Apache Derby). So you don’t need to run RCU.
  • Testing using JDev (right click then Run)

  • Continuous integration with Maven, Hudson, Jackson and Jersey
    • Test XPath expressions using JDev
    • Templates (template pipeline)
In 12c a new resource called Pipeline Template is introduced. It is very similar to pipelines, it contains message flow configuration as well.
A template can be created from a regular pipeline. The template can define locked actions which means their property values can not be changed in the concrete pipeline. It can also define unlocked actions with property values that can be changed.
  • Changes to template will not affect those generated pipelines whose links to the templates have been “broken”
  • Ability to take a regular pipeline and save it as a pipeline template
  • Ability to define locked actions in the template pipeline – i.e. those with property values that cannot be changed in the generated pipeline, e.g. annotation of a Log action
  • Ability to define unlocked actions in the template pipeline – i.e. those with property values that can be changed, e.g. target service reference of the Route action

It’s a good practice to use a template to achieve Error Handling, Logging, Security…

Now a pipeline can be Transactional or non-transactional.

Monitoring / Troubleshooting :

  • In 12c Service Bus uses ODL (Oracle Diagnostic Logging), this means that OSB logging will go to <server>-diagnostic.log instead of <server>.log. Configuration of these log files can be done via the logging.xml file. Message prefix for error messages is now « OSB ».

    osb logging

    The OSB servers’ logging configuration is taking place in the $DOMAIN_HOME/config/fmwconfig/servers/$server_name/logging.xml

    To make the OSB log action visible in the osb_server1-diagnostic.log you have to add the following line into the logging.xml file related to the corresponding osb server:
    <logger name=’oracle.osb.logging.pipeline’ level=’TRACE:16′ />

  • Operation setting like Monitoring, sla alerts, Message Tracing, etc, are now applicable on OEM.

  • Oracle Dynamic Monitoring Service (DMS) support servicebus metrics. OSB now supports DMS Execution Context along with SOA FlowID. This will enable the admin console to display OSB proxy service, pipeline, split join component, and business service as top level components in the SOA message flow.
  • OSB Instance Tracking (Jar From SOA)
There is also a Design Time console (DT Console) for Service Bus for configuring OSB resources.
Main features in the EM Console are:
  • Dashboard for Alerts
  • Service Health Dashboard
  • Configuration of operational attributes for services
  • Resequencing messages
  • Message reports (view and purge)
  • Security configuration
  • Import/Export/Customization
  • Testing (Test Console)
The link to call EM Console is: http://<Admin-Server-host>:<Admin-Server-port>/em.
For more information on the EM Console check the documentation: Getting Started with Oracle Service Bus Administration.
The link to call the DT Console is: http://<Admin-Server-host>:<Admin-Server-port>/servicebus.

Design improvements:

  • Dynamic validation
  • Dynamic replace
  • Shared variables :
    When two pipelines in the same call chain declare a variable with the same name as shared, they will be reading and modifying the same variable.
Shared variables can be used to pass or propagate variables from one invocation to the next in the proxy call chain. Each pipeline in a message flow uses its own message context (MC), the scope of variables used in one pipeline is the message context of this pipeline. By defining shared variables values can be shared between pipelines or message contexts.
When two pipelines in the same call chain declare a variable with the same name as shared, they will be reading and modifying the same variable.
  • Concept of library XQuery library modules
You can create a module and then import it via the mapper through the link

Then the functions exposed by the module become available in the User defined functions:  and can easily be used with the mapper:

  • Enable/Disable actions and stage in a pipeline

New other features :

  • Custom authentication for Business Service
  • Session Stickiness fot HTTP Business Service To a specific URI entry
  • nXSD Action
  • Service Callout with Attachments
  • New OSB Console (OSB Design)
  • Throttling group resource
  • MDS Support for importing and publishing shared resource
  • OWSM Custom Assertions support
  • Resequencer support
Resequencer relies on the database for processing the messages. The database tables are created with Repository Creation Utility (RCU) in the SOAINFRA schema. It uses a data source with a JNDI name of jdbc/SOADataSource. Resequencer for OSB uses different tables in the SOAINFRA schema as the resequencer for SOA Suite / Mediator.
Following are the properties specific to resequencer :
  • ResequencerMaxGroupsLocked: Maximum number of groups locked by Resequencer in each attempt it makes to obtain locks on the groups. Locks are obtained on the groups so that only one managed server node processes the group at a time.
  • ResequencerLockerThreadSleep: The number of seconds the Resequencer would pause between each iteration to obtain locks on the groups.
  • DeleteMessageAfterComplete: Delete message after successful execution. The default value will be set as true.
  • Full DVM and Cross References support (populate, lookup, delete via xpath functions)
  • Enterprise Scheduler Service (ESS) support
  • Active Adapter only started at the first request (Lazy loading)

New Adapters :

  • Coherence Adapter (Put, Get, Remove, Query)
  • Salesforce Cloud Adapter
  • REST Adapter (JSON support)
  • LDAP Adapter
  • UMS Adapter (Mail, SMS…)
  • MSMQ Adapter
  • SAP Adapter
  • Socket Adapter


OSB Domain Topologies:

Before 12c, having a DBMS was not mandatory. It was required only if you were using the reporting feature.

Now OSB is only part of the picture and there is mandatory database requirements from lower stack which is outside our control – Service table, OPSS store, audit store, OWSM, Message Resequencing and SDOM support (very large document support).
Now the SOAINFRA and MDS Schemas need to be installed for the underlying components

  • MDS -> OWSM (Oracle Web Services Manager) component. Policy store which requires a database for production environments as well.
  • OPSS -> OPSS (Oracle Platform Security Services) Store. Which provides identity- and keystores, needs a database for a production environment as well.
  • IAU -> OPSS Audit Store
  • ORASDPM -> User Messaging
  • SOAINFRA -> OSB Reporting Provider, Resequencer

Inbound Security is performed at the proxy service layer. As a result, inbound security related errors can no longer be handled within user-configured pipeline error handlers.

Unfortunately it is still not possible to have multiple OSB clusters in the same domain.
– Integrated Server (Java DB) -> OSB and BPEL only
located in:

For Unix, it is in  $HOME/.jdeveloper/system12.1.3****/DefaultDomain/bin
For Windows,  it is in %APPDATA%JDevelopersystem12.1.3***/DefaultDomain/bin

Compact Domain -> Oracle DB (Allows adding other components, such as Enterprise
Scheduler, Managed File Transfer, B2B, and Business Activity Monitoring

Expanded Domain (what you should have in Prod)

Notions of server groups :

When creating a domain with multiple clusters (SOA, BAM, OSB clusters), if OSB cluster is not intended for OWSM app, OSB managed servers must be assigned to server group OSB-MGD-SVRS-ONLY instead of OSB-MGD-SVRS-COMBINED.

Following are the user extensible server groups in 12c

SOA-MGD-SVRS – targets soa and owsmpm. Default.
SOA-MGD-SVRS-ONLY – targets soa but not owsmpm
OSB-MGD-SVRS-COMBINED – targets osb and owsmpm. Default.
OSB-MGD-SVRS-ONLY – targets osb but not owsmpm.
MFT-MGD-SVRS – targets mft and owsmpm. Default.
MFT-MGD-SVRS-ONLY – targets mft but not owsmpm.
BAM12-MGD-SVRS – targets bam and owsmpm. Default.
BAM12-MGD-SVRS-ONLY – targets bam but not owsmpm.
ESS-MGD-SVRS – targets ess but not owsmpm. Default. .
To solve performance issue we got in previous OSB version (OSB Performance Issue article). OSB 12 is adding a custom workmanager called « SBDefaultResponseWorkManager », with a mean threads constraint of 1.

2 Comments on “OSB 12c is coming out with new features

  1. Merci pour cette Synthese Sylvain. J'ajouterais une amélioration de la coherence et des performances de l'architecture puisque maintenant les 2 produits se partage la même JVM donc plus de sérialisation/deserialisation entre chaque appel des deux moteurs. Et j'ai hâte de tester le templating de pipeline (enfin ! )

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *