Message Correlation using JMS by Martien van den Akker
August 8, 2014 Leave a comment
Last year I created a few OSB services with the asynchronous request response message exchange pattern. OSB does not support this out of the box, since OSB is in fact synchronous in nature. Although OSB supports the WS – Addressing namespaces, you need to set the WS-Addressing elements programmatically.
Since OSB is synchronous the request and response flows in the Asynchronous Request/Response pattern are completely seperated implemented from eachother. That means that in the response flow you don’t know what request message was responsible for the current response. Even worse: you don’t know what client did the request and how to respond to that client in a way you can correlate to the initating instance. Using SOA/BPM Suite as a client, you want to correlate to the requesting process instance.
There are of course several ways to solve this. I choose to use a Universal Distributed Queue for several reasons, where knowledge of JMS and performance were a few. I only need to temporarly store a message against a key. Coherence was not on my CV yet. And a database table requires a database(connection) with the query-overhead, etc.
Unfortunately you can’t use the OSB transports or SOASuite JMS adapters to get/browse for a message using a correlation-id in a synchronous way. When you create a proxy service on a jms transport or configure a JMS Adapter for read it will be a polling construction. But it’s quite easy to do it in Java, so I created a java-method to get a message based on a CorrelationId.
One thing I did not know back then was that if you put a message on the queue from one OSB Server Node (having a JMS Server) it can’t be read from the other node, as such. Messages are stored in the local JMS Server member of the Queue.
I found that you can quite easily reach the local member of a Universal Distributed Queue on a certain JMSServer on Weblogic by prefixing the JNDI name of the queue with the JMSServer separated with the at-sign (‘@’): Read the complete article here.
For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.
Blog
Twitter
LinkedIn
Facebook
Wiki

Being able to exchange data among internal applications as well as with external partners and government agencies has always been a difficult task. Lacking a comprehensive integration strategy, many organizations find themselves creating new or customized solutions for each new business challenge. This splintered approach invariably leads to a heterogeneous environment that is difficult to manage and costly to operate – which is why a large percentage of IT budgets are spent on interoperability-related projects.
For an organization to respond in real-time it needs to acquire or develop systems that can respond in real-time. Such systems need to be able to rapidly determine that a response is required and determine also what the appropriate and relevant response should be – they need to decide when and how to act. These kinds of decision-making systems are known as Decision Management Systems. To ensure that a response is delivered in real-time, more event-centric Decision Management Systems are required.
Much has been said about Oracle SOA Suite 10g (or JCaps) upgrades to 11g and how features map between both versions. There is also plenty of information online about this topic both official and unofficial. It’s not news to many that for example SOA Suite 10g is currently in extended support and product will enter sustaining support by the end of 2014 (I will explain more about what extended and sustaining support means later in the blog). However one fact remains truth: There are still many companies out there running platforms that are (or soon will be) in sustaining support, and that don’t yet have an upgrade strategy. I say this based on my own experience as I am currently helping several customers do exactly this.
To get access to the demo environment
erated, applications are no longer tied to the desktop. Users want to use their smartphones and tablets to access corporate data and business apps, anytime, anywhere. Many IT departments are having a hard time accommodating these mobile interfaces while preserving hard-won enterprise standards. Rather than continuing to develop applications first for the desktop and then making tactical mobile development choices, IT leaders want a consistent architecture that considers all channels. In this screencast, Suhas Uliyar who heads the mobile strategy at Oracle speaks about how customers can bridge this gap to take their existing and new enterprise applications mobile. He introduces Oracle Mobile Suite and SOA’s role in this product offering.
This introduction to SOA Governance series contains two videos. The first one explains SOA Governance and why we need it by using a case study. The second video introduces Oracle Enterprise Repository (OER), and how it can help with SOA Governanc
Industrial SOA is a 13-part article series focused on service orientation, written collaboratively by a group of recognized experts and community leaders in service oriented architecture. Send us your feedback 
