Author Archives: jvzoggel

About jvzoggel

Middleware Consultant / the Netherlands / 's-Hertogenbosch /

Migrating Oracle Service Bus 11g to 12c (and the XQuery 1.0 upgrade)

You can easily import an Oracle Service Bus 11g project archive (JAR) in your JDeveloper 12c SB application (File -> Import)


XQuery upgrade:

Howver, when you import your Oracle Service Bus 11g project you will most likely import XQuery transformations as well. When you look at the XQuery editor in JDeveloper 12c you will probably notice that you only have “source” mode and not a graphical editor. Besides that the XQuery files show a “04” icon.


Since the early days of AquaLogic Service Bus the company formerly known as BEA (TCFKAB) supported the W3C working draft of “XQuery 1.0 and XPath 2.0 Functions and Operators” dated 23 July 2004.
In addition TCFKAB supported a number of extension functions easy to recognize with their fn-bea prefix. Since then the world moved on and XQuery made it to version 1.0 in 2007. So now in 12c there is a way to upgrade your XQuery 2004 files to version 1.0.




The “04” icons dissapear in your project and the result will be that your XQuery files will be moved to:


Besides that, since April 2014 the XQuery 3.0 recommendations are  also available. We will probably see those in future releases of SOA/OSB.


Leave a comment

Posted by on 03-12-2014 in Oracle, OSB


Tags: , ,

Using the For Each action in Oracle Service Bus 12c

In Oracle Service Bus 12c you can use the For-Each action to iterate multiple elements in your message.
While developing a service with For-Each functionality in Service Bus 12c I discovered that there are some subtle changes in the naming of the properties since 10g + 11g.
It took me half an hour to find out what I did wrong, documentation was not really helpful so hopefully this will spare you the trouble :)

In 11g the configuration looks like (screenshot from the OSB 11g Development Cookbook):


In 12c the configuration would look more like this:





Leave a comment

Posted by on 02-12-2014 in OSB


Tags: , ,

Patching the Oracle Service Bus 12.1.3 unknown protocol deployment error

If you (already) created your first Oracle Service Bus 12c application/project with SOAP webservices and tried to deploy it to your IntegratedWeblogic server you might be familiar with this error: OSB-398016 Error Loading the WSDL from the repository:


Lucky for us Oracle quickly released a solution on their support website and also various blogs picked it up and posted a solution. The earliest reference I found was posted by Link. The solution to your problem was either:

  • Add felix.service.urlhandlers=false to the Init properties of OSGi frameworks bac-svnserver-osgi-framework factory implementation class
  • Remove the default server as a target for the framework

This worked like a charm and I was able to play around with my 12c Service Bus. However since it was stated that the solution could result into problems with BPM on your domain I reminded myself that I wanted to dive deeper into this when I had the time.

Google helped me out, and I discovered this information on the Apache Felix framework website.

Felix installs the URL Handlers service by default. If you do not want this service you can disable it, by setting the felix.service.urlhandlers property to false in the file. It is not recommended to disable this, but the main reason for doing so it because the URL Handlers implementation invokes methods to set the singleton factories for URL stream and content handler factories. Assuming that you want to use URL Handlers service, you must configure it if you aren’t running on the standard Sun JRE.

The URL Handlers service extends the standard Java URL stream and content handler mechanism to work in an OSGi environment. The way that built-in URL protocol and content handlers are discovered is by probing packages for the appropriate classes to handle the protocol/content. ……….. The value of these properties is a list of “|” delimited package names to be searched for protocol and content handlers, respectively. See the Java documentation for stream and content handlers for more information.

So disabling the URL handler service is not recommended and you should be able to extend the list of package names used for handling content and protocols. So after poking around the world wide web I finally discovered that Oracle already released a document on this with Doc ID 1903573.1

When attempting to run both OSB and BPM in the same domain in 12.1.3 the following error occurs during creation of a WSDL file:
The WSDL is not semantically valid: Failed to read wsdl file from url due to Unknown protocol: servicebus.

Apply Patch 18640346 and recreate the domain
add protocol to -Djava.protocol.handler.pkgs in

So either download the patch or to fix this on your local integrated domain by editing the or setStartupEnv.cmd file.
I made the choice to edit the startup files and you just find & replace the multiple entries like stated below:

Windows OLD value setStartupEnv.cmd:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.protocol.handler.pkgs="|oracle.fabric.common.classloaderurl.handler|oracle.fabric.common.uddiurl.handler|"

Windows NEW value setStartupEnv.cmd:

set JAVA_OPTIONS=%JAVA_OPTIONS% -Djava.protocol.handler.pkgs="|oracle.fabric.common.classloaderurl.handler|oracle.fabric.common.uddiurl.handler||"

Linux OLD value


Linux NEW value




Posted by on 07-10-2014 in Oracle, OSB


Tags: , ,

First look how to migrate Oracle BPM 10g R3 projects to Oracle BPM 12c

A very interesting feature in the recently released Oracle BPM 12c Suite (12.1.3) is the fact it now supports migration from older BEA Aqualogic BPM (6.0) & Oracle BPM 10g R3 projects. Oracle BPM 12c (and 11g) brought significant enhancements to the original Fuego/BEA product. However Oracle BPM 11g, unlike 12c, had no migration support for customers,

Shipped with Oracle BPM 12c there is a migration utility whicj enables you to migrate a BPM project that you created using Oracle BPM 10gr3 to a 12c BPM project which you can modify then with Oracle JDeveloper 12c. The migration utility creates an exported BPM project and a migration report. The migration report contains detailed information for the elements in the original 10g BPM project. If problems occur the migration utility will log these details in the report. You can find the migration utility (which is actually an ANT build.xml) in the JDEV HOME folder under /soa/plugins/jdeveloper/bpm. To run BPM 10-12 Migration tool, Apache Ant must be installed. The ANT target you will need to run will be migrate10-12.


cd C:\ORACLE\middleware_12.1.3\soa\plugins\jdeveloper\bpm
C:\ORACLE\tools\apache-ant-1.8.4\bin\ant migrate10-12 -DprojectLocation=C:\oracle\projects\rubix_ALBPM_pilot_15032010 -Ddestination=c:\oracle\projects\bpm12Export
Unable to locate tools.jar. Expected to find it in C:\Oracle\Java\jre7\lib\tools.jar
Buildfile: C:\ORACLE\middleware_12.1.3\soa\plugins\jdeveloper\bpm\build.xml


 [migrate] --- Migration complete ---
 [migrate] --- See log file: 'c:\oracle\projects\bpm12Export\rubix_ALBPM_pilot_15032010.xml' on your browser.

Total time: 2 minutes 59 seconds


The export folder containts the following files:

  • report (.xml) with stylesheet (reports.xsl)
  • project statistics (.csv)
  • most important, the Oracle BPM 12 export (.exp)
  • SOA folder which contains all the BPM artifacts


The project statistics shows a simple overview of the groups, elements and quantity of the migration process, where the migration report gives a very detailed overview of all the artifacts during the migration. During this migration I already saw some warnings and objects which could not be migrated. So I naturally was very curious (and I had to admit, a bit sceptic) what the result would be.

So next step, In Oracle JDeveloper 12c we can import the project through File -> Import


Select the .exp file and press import and the result is a Oracle BPM 12c project with all files: composites.xml, organizations.xml,, etc.




I’m actually quite  impressed  by the result. I have to admit that before starting I was a bit sceptic, especially because the old POC project I used contained more then a simple process and is not in a mile in line with the final production release used by the client. However the result seems is a very complete BPM 12c project with all tasks, Business Objects, Schemas and off course processes. Yes, the migration is not 100% successful and a BPM developer still needs to verify the code and make some fixes to the project. However the migration utility surely gives organizations a quick start to migrate their Oracle BPM 10g R3 environment and start making use of all the new 12c features.



Posted by on 11-08-2014 in BPM, Oracle


Tags: , ,

Solving a TIBCO buildear bug for the use in Continuous Integration

Within Rubix we have a buildserver for the Oracle/Java developers. The server is configured in Amazon EC2 and runs on Ubuntu configured with Tomcat, Jenkins and Nexus. For standardisation and us moving to the Amazon EC2 cloud we wanted to move the Tibco builds to  the same server.

So after installing the necessary Tibco BusinessWorks 5 software on the server, moving all the source over to Linux we tried running our first Tibco build using Jenkins and the exec-maven-plugin to execute Sadly it resulted in this error message:

Starting up...
java.lang.InternalError: Can't connect to X11 window server using '' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(Unknown Source)

There seems to be a (known) bug in the Tibco BusinessWorks buildear which “sometimes” requires a graphical interface when ran from the shell. In our situation this only seemed to occur when projects had XSDs imports in a used libraries.

The solution is to configure Jenkins to use XVFB plugin and emulates a “dumb” framebuffer using virtual memory.

Screen shot 2012-01-29 at 23.18.00

Thanks to collegues Roel, Maarten, Rubén and Anthony for resolving this issue.




Leave a comment

Posted by on 05-07-2014 in Tibco


Tags: , ,

Using the clone ability to duplicate a Service Bus 12c project

It’s quite common in a service oriented landscape that a newer version of a service is required.
For instance due to new functionality for 1 service consumer which brakes the contract for the other consumers.

JDeveloper 12c has a cool feature helping us to clone a Service Bus project.
Right-click on the project and select Service Bus -> Clone


Determine the name of your clone target, for instance a version 1.1 of your current project:


The Service Bus project is cloned (copied) including all artifacts.
If we use a HTTP on our proxy we can expect a warning like in the pictures below which warns about 2 identical URIs.



We can quickly fix this by changing the endpoint URI on the new Service Bus project proxy making it unique.



And off we go! A lof faster then the old copy/paste of files or export/import work-around.


Posted by on 27-06-2014 in Oracle, OSB


Tags: , ,

How to run and debug Oracle Service Bus 12c services on the Integrated Weblogic Server

After developing a Service Bus project in JDeveloper 12c we can deploy it on the internal Weblogic server.
In this blogpost we use the HelloWorld service build earlier as example.



If this is the first time you execute the integrated Weblogic server you will get a pop-up to configure the domain.


Starting the Integrated Weblogic server for the 1st time takes a looooooooot of time, but eventually it is RUNNING and a panel with the look-and-feel of the classic Oracle Service Bus 11g is there.


We can set the SOAP message payload here to debug/test our service.
Since our HelloWorld example ignores any request message, so we can keep the request as-is and by pressing Execute we make the service call to our pipeline.


By checking the Invocation Trace we can debug our service call and check if our service is functioning as expected.

Since we are know running a Oracle Weblogic domain with the SOA/OSB extensions deployed, we can take a quick look at the console.
The most interesting ones are located here (change the port if the default port 7101 was not used creating the domain):

Looking at the Enterprise Manager we see there is a dedicated service-bus and soa-infra part still seperating both components logically.



The biggest change however is the sbconsole which was there since the days of BEA Aqualogic Service Bus.
Changes are not always bad, however it will probably take me a while to get used to it. :)
But mostly determine where certain part of the administration & configuration of services can take place, either in EM or SBCONSOLE.


Leave a comment

Posted by on 27-06-2014 in Oracle, OSB


Tags: , ,


Get every new post delivered to your Inbox.

Join 360 other followers