Tuesday, May 24, 2011

Implementing Oracle B2B 11g as a Hub

It has been discussed a number of times on OTN Oracle B2BForum that how Oracle B2B can be used as a HUB but there was no out-of-box solution available in 10g release. Understanding the importance of this requirement, Oracle B2B Product Development team have come up with an out-of-box solution in Oracle B2B 11gR1. Now Oracle B2B 11g can act as a hub without any additional configuration. In this blog post I will walk you through that how Oracle B2B 11g can be implemented as a hub and how actually it works.

In this example implementation, I will use three trading partners –
a)      OracleServices – This is the host trading partner and it will act as a hub
b)      MarketInc – This TP will send HL7 ADT_A01 document to a trading partner RetailInc through trading partner OracleServices
c)       RetailInc – This TP will receive the HL7 ADT_A01 document sent by MarketInc through OracleServices

So actually the message flow, which we will be implementing in this blog is –

MarketInc  <--- ADT_A01 ----> OracleServices (HUB) <--- ADT_A01 ----> RetailInc

Though the above flow demonstrates that MarketInc is sending the ADT to OracleServices but actually in it’s technical implementation, MarketInc will assume that flow is like –

MarketInc <----------------> RetailInc

So at MarketInc’s B2B server, the agreement(s) will be configured between MarketInc and RetailInc but channel location will be the one on which OracleServices B2B is listening for messages from partners.

Now to start with implementation, first of all create the HL7 document on Oracle B2B console –

As you can see in above picture, I have created two document definitions –

  1. ADT_A01_Def
  2. ACK_A01-Def
There is no specific configuration required in document definition creation. It is same as what you do while creating document for one-to-one communication.

After creating document, let’s configure the trading partners. Go to the “Documents” tab of remote TP “MarketInc” and add the created document definitions as below -

As you can see, we have configured MarketInc as sender of ADT and receiver of ACK. Similarly, configure RetailInc  as receiver of ADT and sender of ACK –

Now after adding documents, configure the channels and add the identifiers in trading partner profiles. Again it is a common task so I am not showing it up here.

Now we will configure the agreements. First of all configure two agreements with MarketInc, each for ADT (Inbound) and ACK (Outbound). Then similarly configure two agreements with RetailInc, each for ADT (Outbound) and ACK (Inbound).

Once agreements are created, just save, validate and deploy those. Now you are ready to test your configuration.

To start and test the message flow, drop an ADT_A01 message into external listening channel directory of OracleServices. Once it gets removed from there just go to Oracle B2B reports and verify that –

  1. Incoming ADT from MarketInc has been processed successfully
  2. An ACK for incoming ADT has been posted back to MarketInc
  3. The same ADT has been passed to RetailInc
Note :- If RetailInc is also configured then you may see an ACK back from RetailInc as well.

So now you are done with implementation. 

How exactly it works: It just tries to identify the intended recipient (ToTP) for the incoming message. If it is not the host trading partner for which the message has been sent then it just tries to find an outbound agreement with intended recipient and if found one, then it posts the same message to that TP. 

You may download the configuration which I created for this example implementation, from here.  Make sure to change the channel end-point configuration if you are using this configuration. You can also download the sample ADT message which I used to start and test the message flow, from here.

Now go ahead and experiment more with it. If you have any queries related to this implementation, please feel free to post them in OTN Oracle B2B forum. 


  1. This post gave me a complete idea about the implementation of Oracle B2B as a hub which I found very impressive. All the steps are explained in detail and with relevant detail to explain what is going on. Thanks for posting.
    sap support packs

  2. Very nice article. We were able to implement HUB following this article. I have a question though. I have two b2b servers TPA(remote host) and TPB (local host). TPA sends a document message to TPB. The message is really from TPA to TPC. In TPB host I have setup TPA and TPC as two partners and have the HUB setup as you indicated except the agreement between TPA -> TPB is set in a way that TPB gets the document from TPA via AS2 protocol rather than reading from FTP server. The agreement between TPB -> TPC is set as such that the output is a FTP folder location.

    When I send a message from TPA to TPB (meant for TPC) all transactions are showing up correctly (in both host) except the document is not written to the outbound channel (FTP folder) of TPC in TPB host. What could be wrong in my setup?


  3. BlueHost is the best hosting company with plans for any hosting needs.

  4. I wish to show thanks to you just for bailing me out of this particular trouble. As a result of checking through the net and meeting techniques that were not productive, Same as your blog I found another one Oracle Fusion Product Hub.Actually I was looking for the same information on internet for Oracle PPM Cloud and came across your blog. I am impressed by the information that you have on this blog. Thanks once more for all the details.