Thursday, 25 December 2014

Oracle B2B 12c - HTTP Generic Channel with transport callout

First of all, season's greetings to everyone! 

Then, let me introduce this post saying that, already in the version 11g, a generic HTTP listening channel for message posting to B2B using the HTTP protocol was available. Any configured trading partner could use this generic channel to post messages to B2B.

A single common URL was available by default:

In this way, a single listening channel is able to serve multiple trading partners for every HTTP communications with B2B. 

When this channel is used, the process follows the default steps for message processing, namely:

  • Sender identification (i.e. using HTTP Header);
  • Document protocol/version/type identification ;
  • Agreement identification;
  • Message processing (parsing and validation);
  • Synchronous delivery to a back-end application.

The only differentiation factor is: since this channel is generic and not configurable or even available on the list of listening channels in B2B console, make it unavailable for channel callout configuration. 

This has now changed with the 12c version.

With the version 12c of B2B is now possible to define a generic HTTP transport callout and associate it with a specific transport level callout.

As of now, this is driven by an B2B configuration Fusion Middleware property that needs to be added on Oracle Enterprise Manager Fusion Middleware Control (EM) 

b2b.HTTPTransportCalloutName= [callout name] 
i.e. b2b.HTTPTransportCalloutName= InboundGeneralCallout

Note: Access the following Oracle documentation for full instruction on how to set EM B2B properties here

This is also isolated from the regular HTTP functionality since a new ulr is provided to be able to establish this new feature. 
There is now a separated URL to be used in case of setting a generic HTTP channel callout: 

With this, the callout will be triggered when the message is received in this URL and EM property is configured for a valid transport callout.

Wish you all a very prosperous 2015!

Friday, 19 December 2014

Oracle B2B 12c - Listening Channel activation and deactivation in bulk

With the version 12c of B2B the possibility to activate and deactivate all listening channels in one single command was introduced. Previously, it was necessary to provide the name of the listening channels to perform the action, what, in scenarios with a considerable number of listening channels, made the task ineffective.

Different scenarios can be pointed out where this functionality is extremely useful:
  • After importing a B2B configuration the channels are always in deactivated status. This command can be then executed in order to activate all the listening channels in bulk;
  • Deactivate all listening channels to stop momentously all message consumption for corrective or preventive reasons into B2B or back-end applications;
  • Switching the message consumption between two environments;

The feature is also provided in a command line based approach since is an extension to the already existing feature of enable/disable a particular listening channel. Therefore it is respecting the same prerequisites.

Prior to executing any B2B command line tool is necessary to set the following environment variables:

JAVA_HOME: Your Java home
ORACLE_HOME: Your oracle SOA home
ANT_HOME: Your ant home

For example:

export JAVA_HOME=/usr/java/jdk1.7.0_51
export ORACLE_HOME=/u01/fmw/soa/
export ANT_HOME=/u01/fmw/oracle_common/modules/org.apache.ant_1.9.2
export PATH=$PATH:$ANT_HOME/bin

After, the first command to execute is the one which create a file in the folder where the SOA ant build artefact are available. The file allows defining the connection details to execute any of the available B2B command tools.

ant -f ant-b2b-util.xml b2bcreate-prop

A files is created in the folder. Now is time to edit it in order to reflect the connection details.


All ready to run authenticated commands as the listening channel activation and deactivation command.

From the same directory where ant-b2b-util.xml exists execute:

ant -f ant-b2b-util.xml updatechannel -Dchannelname="*" -Dstate=active
ant -f ant-b2b-util.xml updatechannel -Dchannelname="*" -Dstate=inactive

By providing the channelname as “*” all the listening channels can be activated / deactivated.

Note: The operation is performed incrementally going throughout the listening channels and activating one by one. With a large number of listening channels it can take some time between the activation and the moment that all the channels start to consume messages. Be patient and check your logs and monitor B2B in order to check the message consumption is starting.

Thursday, 18 December 2014

Oracle B2B 12c - Document Callouts: The Concept

One of the coolest new features of that Oracle B2B 12c brings is the document callout.

Callouts had already an important role on previous releases of Oracle B2B and they allow for execution of custom Java code on different steps of a message process.

On previous versions we had already 2 types of callouts:

  • Transport or channel callouts: this type of callouts add the possibility to execute custom java code on the wire message, as soon as it is received on the channel on the inbound or before being sent for final delivery on the outbound
  • Agreement callouts: this type of callouts add the possibility to execute custom java code on the application message (the XML representation of the message) , just before being sent to the backend on the inbound or immediately after being received from the backend on the outbound.

With the new document callout B2B brings the possibility of executing custom java code to convert your raw format message into XML or vice-versa replacing the default xEngine as your parsing tool.
This is particularly useful for those complex messages that can not be defined using the document editor.

Note: For those of you still using Oracle B2B 11g this feature (and many others) is available by installation of patch SOA bundle Patch 19190139 

On a future post I will show you how to use this cool new feature!

Stay tunned!

Monday, 15 December 2014

Oracle B2B 12c – What’s New!

This post serves as the first of a series of posts dedicated to Oracle B2B.

What better way to start this series than to highlight the many new features have been added to Oracle B2B 12c which can change the landscape of the target usage for B2B.

Let's look at some of these new features:
  • Document Translation Callout Framework
    • Introduced Document Callout for custom document parsing (inbound), validation and construction (outbound)
  • Regular Expression Document Identification
  • Trading Partner Metadata API
    • Parameters, Identifiers and TP Agreements accessible via Java API and WS
  • SSL Support for SMTP
  • Trading Partner Identifier via Regular Expression
  • Batching of Custom Documents
  • xPath payload extraction from SOAP Body
  • xEngine (B2B Native Parser) API for EDIFACT
  • Bulk Listening Channel activation
  • Enriched exchange information on message metadata
    • Channel used
    • Agreement 
  • Priority on Document Identification
  • Message IN/OUT Collaboration by ID
  • Improved Provisioning Self Service 
    • Callouts
    • Identifiers
    • Parameters
    • Channel details
    • Incremental Update

Note: All of this features are available for the version 11g of SOA Suite by installation of patch SOA bundle Patch 19190139 

In 12.1.3 there's:
  • Support for streaming (effective process for large payloads)
  • MFT as an integration channel
  • Enhanced End2End monitoring and integration with Error Hospital
  • Local Policy Attachment for Web Services

In future posts we will go into more details on these and other B2B features.

Stay tunned!