Bug: Wrong Message Type and XQuery Expressions in OSB 12.2.1 /servicebus Console for Message Based Pipelines

Environment

I am using the latest download of JDeveloper 12.2.1 with the builtin test domain for SOA Suite 12.2.1 and OSB 12.2.1, all running on Java 1.8.0_65_b17 on a RedHat derivative.

Business Service

I created a message based business service based on a simple XML element definition for an Order via an XSD.

2016-01-21_12-16-15

Testing the business service shows the correct test data. Good. Note, that there is an embracing <ord:order> element containing other element such as version or ID.

2016-01-21_12-07-41

Pipeline

A pipeline is defined based on the same element.

2016-01-21_12-16-36

Interestingly the pipeline shows a different variable structure, missing out the embracing <ord:order> element.

2016-01-21_12-15-21

So any created XQuery expressions, e.g. for a Log action as seen on the screenshot above will be wrong as well and missing the embracing <ord:order> element. So put it more clear, non of the expression will return anything meaningful.

Conclusion / Impact

IMHO this is a severe issue if confirmed. Let’s face it. OSB was never easy but a rock solid product. For almost a decade I solved problems by telling people to stay calm and carefully looking and the test data, the elements, and the namespaces provided by OSB testing console. Now this seems to be broken.

Workaround

You can manually fix your XQuery expression. Possibly this also relates to another OSB 12.2.1 bug I blogged about earlier.

Bug: Typed One Way Pipeline in Oracle Service Bus / OSB 12.2.1

When creating a Service Bus pipeline in JDeveloper 12.2.1 for Oracle Service Bus 12.2.1, based on a typed, one-way business service (either one way WSDL based, or Messaging Service with XML request and XSD type with reply NONE business service) the pipeline won’t correctly use the request message type. It’s annoying because you cannot easily create expressions based on the request type, such as drilling open the $body variable, e.g. for an Order containing a shipping ID. All that is displayed within the pipeline is $body.

This happens although the pipeline configuration displays the correct XSD, eg. OrderType.xsd and the correct Type, eg. OrderType.

2016-01-18_18-13-41

I am quite surprised because this is not a very unusual use case. Anyway I couldn’t find a work around for JDeveloper 12.2.1 (let me know if you know one!). Interestingly, testing a proxy service based on the business service works all right (so maybe the bug slipped in when the pipeline construct was separated from the proxy service? just guessing.)

It is possible to work with the good old Service Bus web console /sbconsole. There everything is fine, i.e. the correct structure of the request message is displayed. The working Service Bus console is another indication that the way JDeveloper does it is broken.

2016-01-18_18-13-56

Don’t get me wrong. IMHO using the web console is not an acceptable solution.

 

Update OSB 12c Bug Fix:

I have seen this severe bug to be fixed with OSB patch 22276364 on a Windows system. So far I could not confirm it myself. Let me know if it works for you!

Update OSB 12.2.1.3 :

The patch available for previous versions never worked for me, however the issue is fixed now in OSB 12.2.1.3. All good!

Oracle Cloud: ICS

Quite a while ago (a year before Larry announced the Oracle Public Cloud) I wrote about SaaS applications and a service bus PaaS to interconnect services: “… services are integrated and virtualized by a service bus in the cloud and orchestrated by a workflow system in the cloud [Oracle Middleware and Cloud Computing] “.

Back then it almost seemed like building castles in Spain. Indeed it took several years to build the PaaS service – yet today Thomas Kurian and Larry Ellison announce Oracle’s ICS. Now it’s out there with all the agility that comes with a cloud based solution.

It’s the cloud! So get a test account, play with it, scale it and try to break it!

Let me know what you think using @frankmunz and add: @soacommunity.

photo: F.M.

Oracle Service Bus (OSB) and OEPE Versions on 64-bit Systems

If you are installing Oracle Service Bus (OSB) 11.1.1.7  – which is the newest version as of this writing – based on WebLogic 10.3.6 you are required to use the Oracle Enterprise Pack for Eclipse (OEPE) 11.1.1.8 (supported with Java 6).

Note that OSB 11g won’t run on WLS 12c. Although WLS 10.3.6 supports JDK 7, at the end I decided to run my WLS installation on the same JDK 6 version used for the OEPE IDE.

Typically matching OSB, WLS and OEPE versions is a no-brainer when downloading the bundle that contains WebLogic with Eclipse and OEPE for a particular 32-bit environment. The real fun starts with systems running 64-bit JVMs.

For my 64-bit CentOS 6.4 system I downloaded all the individual components separately with matching version numbers:

  • Supported Oracle DB 11gR2 (XE works but not officially supported)
  • WebLogic 10.3.6
  • Generic Patch 13573621
  • Eclipse with OEPE 11.1.1.8
  • OSB Installer 11.1.1.7
  • RCU (when OSB is used with reporting or OWSM)

 

eclipse

You can get all the different OEPE versions from here:

http://www.oracle.com/technetwork/developer-tools/eclipse/downloads/oepe-archive-1716547.html

The important thing to understand about the OEPE download is that it contains already ORACLE enterprise funtionality but not the OSB functionality.

Still there exists no separate OSB plugin. When running the OSB installer after the WLS installation, you specify the directory containing Eclipse with OEPE and the functionality will be added.

oui osb

This is the location where you would get an error message telling you that you are using the wrong version of OEPE. If you version matches, OEPE will be updated for OSB functionality.

 

A good summary for other matching versions of previous product releases can be found in this OTN posting.

Oracle Service Bus (OSB) for the Busy IT Profesional

Audience

Oracle Service Bus is one of these software products that haven’t changed much in their core since many years. These days I tend to see more and more OSB projects and one reason certainly is that license wise OSB is included with Oracle SOA Suite.

Compared to SOA Suite, OSB is conceptually different though. Even with a good understanding of SOA Suite (which I will cover in one of the following posts), there will be a slightly steep, but rather short learning curve for OSB.

The following recipes tries to motivate and explain the usage of OSB without the usual marketing hype. Make sure to read the previous posting about getting started with SOA in general and Oracle Fusion Middleware.

Technology

OSB is virtualizing service calls from clients to the service implementation. By using so called proxy and business services (both are components within OSB) incoming and outgoing requests can be arbitrarily connected and protocols can be converted. Proxy services contain the processing logic (validation, enrichment, transformation etc.).

Oracle Service Bus OSB Architecture

Download

If you are trying to get started with OSB, here is the link to download Oracle Service Bus Overview and Getting Started (PDF).

Enjoy!

PS. Actually this recipe is taken out of my book Oracle WebLogic Server 12c – Distinctive Recipes.