Wednesday, February 3, 2010

Integration Using Oracle Stream Advanced Queues

Oracle Advanced Queues have been around for a while. It was part of Oracle DBMS since 8.1.5. Now as part of Oracle Streams it provides database-integrated message queuing functionality. You get persistent or non-persistent queuing model, local or remote propagation and all operational benefits of high availability, scalability, and reliability of the underlying database.

It has always been a challenge to integrate BRM with other enterprise applications. The inbound interface is available in C/C++/Java/Perl, but the learning curve to be familiar with data structure and programming concept is steep. On the outbound direction, the native Data Manager framework also requires intensive coding and detailed knowledge of BRM, data format and  interface API you want to talk to.

For a recent integration project we've decided to employ Oracle AQ for both inbound/outbound real-time and batch transactions between BRM and EBS. Each application maintains the inbound and the outbound AQ in its local database. The outbound BRM AQ is linked to the inbound EBS AQ; similarly the outbound EBS AQ is linked to the inbound BRM AQ using AQ propagation mechanism.

Each application is responsible for enqueuing and dequeuing operation of its own queues. The Oracle Streams AQ platform is responsible for message delivery, propagation, transactional integrity, persistence and high availability.

Since 7.3.1 BRM provides a DM_AQ component, which allows dumping business events with XML payload into an Oracle AQ. We leverage this existing data manager to push payload for real-time transactions such as inventory item changes and orders from BRM to the external system.

On the inbound we develop a new custom data manager which uses OCI to dequeue messages from the inbound queue. Thus BRM is able to pull payload for real-time transactions from the external system.

The database-to-database AQ propagation is used to move messages between the queues. The propagation setup is the trickiest part, but in the end the whole scheme has been a success.

1 comment:

Unknown said...


Hi, probably our entry may be off topic but anyways, I have been surfing around your blog and it looks very professional. It’s obvious you know your topic and you appear fervent about it. I’m developing a fresh blog plus I’m struggling to make it look good, as well as offer the best quality content. I have learned much at your web site and also I anticipate alot more articles and will be coming back soon. Thanks you.

Revenue Management