RSS

Author Archives: jvzoggel

About jvzoggel

Middleware Consultant / the Netherlands / 's-Hertogenbosch / RUBIX.nl

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 buildear.sh. Sadly it resulted in this error message:


Starting up...
java.lang.InternalError: Can't connect to X11 window server using '10.0.0.51:0.0' 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.

 

References:

https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin

 

 
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

01

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

02

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.

03

04

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

05

 

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

 
Leave a comment

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.

01

 

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

02

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.

03

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.

03_02

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.

04_EM

 

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.

04_SBCONSOLE

 
Leave a comment

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

 

Tags: , ,

Building a simple Oracle Service Bus 12c HelloWorld service

As a first service we can build a simple service which returns a SOAP message with a HelloWorld text.
Drag the HTTP transport from the Technology palette to the SBProject Proxy Services lane (the left one).

01

The Create Proxy wizard will start and guide you to the settings.
First we choose a name for our service, comfirm the HTTP transport (the pulldown actually shows no choice) and leave Generate Pipeline enabled.

02

 

As service type we select the most easy option Any Soap, which allows us to use SOAP messages but spares us the part to configure a WSDL/XSD for now.
The pulldown shows us that both SOAP 1.1 and 1.2 are supported, but for this example we can use either.

03

 

The last step in the wizard is configuring the endpoint URI for your service. The endpoint determines the address our service consumers will have to use.
In our example: http://<servername>:<serverport>/SBProject/helloWorld

04

 

The wizard automatically generated the Pipeline so our project looks like this.
Since our HelloWorld service won’t access any back-ends we will not use the External Services lane of our project.

05
When we click on the pipeline we will see a familiar layout we know from Oracle Service Bus 11g proxy’s.

First we drag the Pipeline pair from the components to our pipeline

06_selectPipeline

 

Our pipeline know shows a request and response pipeline where we can place our transformation logic.

07

 

Since we don’t access a back-end, we will just transform the SOAP message in the response pipeline.
Drag a Replace action from the components palette to the StageResponse.

Configure the Replace action to change the body (location), on root leven using the dot (.).
For Value we will use XML-content <message>HelloWorld</message> to make sure the SOAP message still contains a valid XML structure.
We select the Replace node contents, which is a best practice for SOAP messages.
This option will only replace the content of the SOAP body and prevent any namespace issues, avoid creating a non-valid SOAP body structure, etc.

 

08

 

The result is a simple SOAP/HTTP service which we can now deploy and test.

 

09

 
Leave a comment

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

 

Tags: , ,

Creating a new Oracle Service Bus 12c project

After Oracle SOA Suite 12.1.3 for developers is installed we can now create our first Service Bus project. Select New Application.

01

From the Service Bus Tier we can select the Service Bus Application with Service Bus Project.
It seems the OSB 12c project naming was aligned with other JDeveloper projects, and so dropping the old OSB Configuration terminology and use Service Bus Application instead.

02

The 1st step in the Service Bus Application wizard is to determine our application name, working folder and an application package prefix

03

Since the Servicew Bus Application needs a Service Project we can now determine our project nme and the working folder for our project:

05

Our first (empty) project is a fact.

06_result_files

When we look at the result we see that the main part is the SBProject. The layout looks familiary close to the SCA composites we know from the SOA Suite.
However the OSB Proxy Services terminology is still used instead of Exposed Services and Pipelines/Split Joins instead of the SCA Components term

06_result_sbproject

When we look at the Components panel to the right we see that 12c uses pipelines and split-joins to model the service bus project logic.
Besides that a lot of transports and adapters are available to connect to a large scale of backends and technologies.
OId obvious integration friends like HTTP, FTP, File, JMS are there, but also options like REST, UMS, Oracle Coherence and Oracle BAM.

06_result_components

Probably for backwards compatibility Oracle decided to support both the old OSB 11g Business Services transports and better integrate the SOA Suite JCA transports in the designer.
Which again allows us to use 2 default options for the File, JMS and FTP transport.

Looking at the way Oracle decided to arrange the components as they did between Technology and Advanced, it looks like the “default” or “best-practice” transport is located under Technology.
For instance:

  • The Technology panel File and FTP transport pop-up the JCA Adapter wizard, and the HTTP and JMS transport pop-up the Business Service wizard.
  • The Advanced panel File and FTP transport pop-up the Business Service wizard, and the JMS transport pop-up the JCA Adapter wizard

Another killer feature is the default integrated Maven support for your projects.
After viewing a demo of a competitors new integration product release recently, which simply stated “there is still no Maven support”, this seems clearly an advantage for Oracle and will help developers and IT organizations to embrace CI more efficiently.

06_result_pom

 
2 Comments

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

 

Tags: , ,

Installing Oracle SOA Suite 12.1.3 for developers

This blogpost quickly describes the usage of the Oracle SOA Suite 12.1.3 Quick Start Installer for developers.

After download and extracting the fmw_12.1.3.0.0_soaqs_Disk1_1of1.zip file from the Oracle website you will find 2 JAR files in the archive.

  • 18-06-2014 22:39   2.060.922.907   fmw_12.1.3.0.0_soa_quickstart.jar
  • 18-06-2014 22:38   1.125.261.418   fmw_12.1.3.0.0_soa_quickstart2.jar

Funny detail, both JAR files are dated 18-06 so it seems the package was ready a week before the big release on 26-06-2014

On Windows make sure you run the JAR with Administrator priviles, if you don’t you will get the following error message:


java -jar fmw_12.1.3.0.0_soa_quickstart.jar
Launcher log file is C:\Users\Jan\AppData\Local\Temp\OraInstall2014-06-27_09-19-50AM\launcher2014-06-27_09-19-50AM.log.
Extracting files..........................................
Unable to access or modify the system registry. Select Run as Administrator when opening the Command Prompt and try again.

Press any key to exit . .

Also make sure you execute the JAR installer with a of JDK 1.7.0.15 or higher. If not, you will get this message:


java -jar fmw_12.1.3.0.0_soa_quickstart.jar
Launcher log file is C:\Users\Jan\AppData\Local\Temp\OraInstall2014-06-27_09-26-24AM\launcher2014-06-27_09-26-24AM.log.
Extracting files.......................................
This installer must be executed using a Java Development Kit (JDK) but C:\Java\jre7u60 is not a valid JDK.

Press any key to exit . . .

Running the installer in a Administrator console with a recent JDK


c:\Java\jdk1.7.0_60\bin\java.exe -jar fmw_12.1.3.0.0_soa_quickstart.jar

After extraction of the files you will get graphic installer:

01

 

02

 

03

 

04

 

05_2

 

06

Click on Finish and if you don’t disable the Start JDeveloper checklist the IDE will start

07

 

The Select Role pop-up is still there, and like 11.x the majority of us will just select Studio Developer (All Features) and disable the Always prompt for role selection on startup.

 

08

 

Also still there, JDeveloper will ask you if you want to import previous preferences from other installations. Personally I never select Yes, but I’m a control freak so determine yourself ;-)

 

09

 

And there it is, the JDeveloper 12.1.3 IDE all to your disposal!

 

10


If you like you can install JDeveloper in silent mode, to do this you need an response file. This file can be generated in the 4th step of the installation wizard, but here is an example:


[ENGINE]

#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0

[GENERIC]

#The oracle home location. This can be an existing Oracle Home or a new Oracle Home
ORACLE_HOME=C:\Oracle\Middleware\12.1.3

Save the response file and execute the installer with this command:


java -jar distribution_name.jar -silent -responseFile file

 

 References:

 
Leave a comment

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

 

Tags: , , ,

How to configure Oracle SOA/BPM task auto release

When a Oracle SOA or BPM workflow task is assigned to a role and/or group a user may acquire the task to work on it. Once the task is acquired, other users are not able to work on that specific task. In the Oracle SOA-INFRA, used by both SOA Suite and BPM Suite, there is a feature called ‘task auto release’ which allows to configure the duration before tasks are automatically released and made available for all other users again.

In Enterprise Manager go to soa-infra -> SOA Administration -> Workflow Properties

01

Select the Task tab and expand Advanced. There you can see there are default values for automatically releasing tasks according to their priority. In the screenshot below the default value of P3D (3 Days) is changed to P1TM (1 minute) for testing purposes. This is done for the priority 3 task, which is the default priority.

 


02

Another feature is to use the expiration data (most right column) of tasks. This feature only works when you map the expiration Duration element in your BPEL or BPM tasks. In the example below the duration is set to P2D (2 days) which means with a priority 3 task the task is released after 1 day (50%).

03

 

References:

 
1 Comment

Posted by on 07-04-2014 in BPM, Oracle, SOA Suite

 

Tags: , ,

 
Follow

Get every new post delivered to your Inbox.

Join 335 other followers