PaaS Partner Community

Ordering Delivery with Oracle Integration by Antony Reynolds

Juergen Kress
PaaS Partner Adoption


We often need to ensure that messages are processed in strict order, in this blog post I explain a pattern that enables this to be enforced using Oracle Integration.  The pattern also deals with the case where we need to limit the concurrency of calls to an endpoint system.

This article was co-written with Glenn Mi & David Craft

The Sequencing Problem

The basic problem is that I may issue a stream of requests that must be executed in order, for example create account, update account address, update account contacts.  The latter two activities cannot occur until the first has completed.

Before we can sequence messages we need to know the order in which they should be processed, so there must be some sort of sequencing ID which we can use.  This could be a timestamp or it could be an actual sequence ID.  If we are using timestamps then the closer to the message origin that the timestamp is applied the better, for example if we take the timestamp from when it arrives in Oracle Integration then a network delay may already have caused our messages to be out of order.

Typically we don't want all messages to be in the same ordered sequence.  In our account example only messages for a given account need to be ordered.  Messages for different accounts can execute in parallel.  So we also need some sort of group id to identify different sequence streams within our message stream. Read the complete article here

PaaS Partner Community

For regular information on Oracle PaaS become a member in the PaaS (Integration & Process) Partner Community please register here.

clip_image003 Blog clip_image005 Twitter clip_image004 LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Technorati Tags: SOA Community,Oracle SOA,Oracle BPM,OPN,Jürgen Kress

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.