Category Archives: BPEL

Article on integration infra components published in OTech magazine

article OTech magazine - integration infra componentsDuring Oracle Open World 2013 OTech magazine was launched. OTech is a new independent magazine for Oracle professionals. The magazine’s goal is to offer a clear perspective on Oracle technologies and the way they are put into action. As a trusted technology magazine, OTech Magazine provides opinion and analysis on the news in addition to the facts.

My article in OTech magazine one of the most frequently asked questions is how to pick the right integration infrastructure component to solve the problem at hand.

Download the fall issue of OTech magazine.

SOA Suite EM create partition

In Oracle SOA Suite 10g, or more specific BPEL 10g, one could group functionality in domains. This feature has been away in the early versions of SOA Suite 11g. They have returned in more recent version and can be used for all SCA composites (instead of BPEL only). Nowadays these 10g domains are called partitions.

Create SOA Suite partition

  • Login to the Fusion Middleware Enterprise Manager: http://server-name:portnr/em
  • Use the tree-view on the left and select soa-infra.
  • Use the SOA Infrastructure dropdown menu and select the Manage Partitions item.
  • SOA Suite EM Manage Partitions

  • The manage partitions page appears and you should select Create… to create your new SOA Suite partition.
  • SOA Suite Create Partition

  • Enter a name for the partition and press the create button.
  • SOA Suite Partition

While deploying SCA appications from JDeveloper or ANT you should add the partition from now on.

SOA Suite delete instances for specific composite

There are fine resources on how to purge SOA Suite instances. However there are case where you want to delete the instances for a specific composite deployed in the SOA Suite. An example could be after an extensive test or test load on a specific service implemented in a SCA composite.

Here is the PL/SQL we used to purge instances of the productservice composite in the test partition. It is based on the default packages that are bundled with the SOA Suite to purge instance data:

DECLARE
   l_min_creation_date   TIMESTAMP     := to_timestamp('2010-01-01','yyyy-mm-dd');
   l_max_creation_date   TIMESTAMP     := to_timestamp('2012-09-10 1600','yyyy-mm-dd hh24mi');
   l_batch_size          INTEGER       := 100;
   l_max_runtime         INTEGER       := 60;
   l_soa_partition_name  varchar2(100) := 'test';
   l_composite_name      varchar2(100) := 'productservice';
 
BEGIN
-- delete instances for specific composite
soa.delete_instances( min_creation_date => l_min_creation_date
                    , max_creation_date => l_max_creation_date
                    , batch_size => l_batch_size 
                    , max_runtime => l_max_runtime
                    --, retention_period =>
                    , purge_partitioned_component => FALSE
                    , composite_name => l_composite_name
                    --, composite_revision => 
                    , soa_partition_name => l_soa_partition_name
                    );
commit;
END;

You can use the instances tab to track the progress of the delete script:
Composite instance count

Upgrading to SOA Suite PS5 on Oracle XE

Installing PS5 (11.1.1.6) can cause some problems when using Oracle XE as the infrastucture database. The solution is described in this SOA Suite / BPM blog by Niall Commiskey.

More tips on upgrading OFM 11g to patch set 5

My colleague Laurens van der Starre published a serie of tips and tricks on upgrading Oracle Fusion Middleware to PS5 on the Whitehorses blog.

More considerations on upgrading to OFM 11.1.1.6.0

There is an additional article on upgrading to OFM 11.1.1.6 on the Whitehorses blog. It goes into more detail on JDK 7 support, OWSM in SOA Suite, the combination of OSB en OWSM and for example the PSA (Patch Set Assistant) performance.

Java memory arguments in OFM 11.1.1.6.0

More on setting Java memory arguments in SOA Suite 11.1.1.6.0.

Good practises for SOA Database Adapter

Sharing some things we learned while working with SOA Suite 10g database adapters.

  • Restrict the number of rows that will be returned by the query that is used in the database adapter. If you do not restrict the number of rows that is returned that could lead to high CPU and memory usage and time outs due to extreme processing time. These conditions can appear when a query results in severla thousand of rows returned.
  • Changes the this_toplink_mappings.xml file. If a toplink:read-all-query is used, change it to toplink:max-rows like
  • <toplink:max-rows>100</toplink:max-rows>
  • In case you forgot… if the audit level of the BPEL domain is still on Development level change it to the production level.

For links to File and FTP adapter stuff.

Maintaining SOA Suite infrastructure database

While trying to keep my post on purging the BPEL and ESB/Mediator database up to date with the latest documents and experiences, I found these whitepapers and references:

  • SOA 11G Database (pdf) Growth Management Strategy
  • An Oracle SOA 11G installation presents a few challenges for administrators and one of these is managing the growth of the SOA database. The advice facilitates better dialog between SOA and Database administrators when planning and managing database requirements.

  • On Oracle support: SOA 11g Infrastructure Database: Installation, Maintenance and Administration Guide [ID 1384379.1]
  • This document covers everything you need to know about the SOA Infrastructure Database for Oracle SOA Suite 11g. Here we bring together content from sources such as OTN, Product Documentation and our Knowledge Base in an effort to provide you with a single comprehensive resource.

Solving ORABPEL-11075 Unable to create control directory

Recently I engaged with a customer who experiences (among other problems) the following. Since there is hardly any info on Oracle Support or blogs I thought I’d share some info here:

WSIF JCA Execute of operation 'SomeService' failed due to: Unable to create control directory.
Unable to create control directory: "/mnt/queues/controldir/bpel/fileftp/controlFiles/epajYGFxPFPErSM8HcN8HQ==/outbound".
; nested exception is:
ORABPEL-11075
Unable to create control directory.
Unable to create control directory: "/mnt/queues/controldir/bpel/fileftp/controlFiles/epajYGFxPFPErSM8HcN8HQ==/outbound".
Please make sure that the directory name is valid and that there are adequate permissions to create the directory.

Solution

As the last part of the error message suggests, check for file system stuff:

  1. Is the share and/or mount your file / ftp adapter is pointing to still available?
  2. Can the share be reached from your SOA Server?
  3. Does the directory name exist?
  4. Are the required permissions available?

Correct inaccuracies.

Common Issues and Workarounds for File/FTP Adapter

There is an extensive document on solving issues with file and FTP adapters on Oracle support. The documentation for file and FTP adapters can be found:

  1. 11g JCA File / FTP adapter
  2. 10g File / FTP Adapter

SOA Suite Installation Quick Start

There are always quite some blog posts on installing SOA Suite on several platforms. Recently I discovered that Oracle publishes a Quick Start Guide on the SOA Suite (PDF!) that mainly deals with the installation process (and de-installation should you need it).

This guide is aimed at installations for developers and not for production machines. Unfortunately the installation of OSB is out of scope. I expect it to be upgraded to PS4 (11.1.1.5) soon. I could find any missing instructions while installing PS4 on a Windows7 VirtualBox.

This document looks very similar to the installation chapter in Getting Started with Oracle SOA Suite 11g R1.

Update

It was confirmed by Simone Geib, Product Manager in the Oracle SOA team, that both the OSB part and the PS4 update are coming soon.

Update September

The update for SOA Suite PS4 (11.1.1.5) including Oracle Service Bus is now available.

Kscope 11 Fusion Middleware presentations

Like the previous days at Kscope my focus has been on the Fusion Middleware track. In this post I’ll share some of the highlight and summaries of some of the talks over here.

Fault Handling in SOA Suite

Ronald van Luttikhuizen en Guido Schmutz presented on Fault Handling in the SOA Suite. There is a clear need for another approach compared to say traditional systems. This is because SOA based systems differ from traditional system on the following aspects: level of heterogeneity, number of (different types of) consumers, asynchronous responses, and the way that transactions are handled.

Guido showed us around in the OSB with a focus on the following features: Result Caching, Service Throttling, Retry mechanism, Service pooling (talking to multiple endpoints) and Fault Message on callback (in async). Ronald gave a demo on how the Compensate and Fault Policy Framework work in BPEL.

This presentation on SOA Suite Fault Handling is also available on slideshare.

Using Oracle Apex as a replacement for BPEL Console

The company where this case was build has a high number of messages running through their BPEL 10g. This causes performance issues in the BPEL Console due to the high number of instances (millions on a daily basis) in the dehydration store (on which full table scans are performed). They created an own more lightweight console in Apex to manage both deployed BPELs as well as instances. Their solution uses the following ingredients:

  • A BPEL api – which is included in a BPEL script. They import orabpel.jar for this.
  • A BPEL script that exposes a part of the BPEL api as a web service. Embed Java in a BPEL and call the API.
  • An Apex front end that calls the web service to perform maintenance tasks.

In my opinion this delivers value to this company, however are there better ways to expose Java as a web service. Besides that this adds additional BPEL instances to the bottleneck resource.

Tuning SOA Suite 11g for perfomance

This presentation was delivered by Vikas Anand. One of the best parts of his presentation was that he didn’t only address the tuning part but also the design part. This mainly focus on preventing the need for tuning afterwards. Some of the design considerations he mentioned were:

  • Choose the right tool for the job.
  • Design it right – Consider what parts of the integration have to be synchronous and what have to be asynchronous. To which he added the advise to be aware of transactional boundaries.
  • Need a holistic view on sizing and capacity – Based on business requirements.
  • Plan sizing of dehydration DB – make sure there is a retention strategy and implement dehydration strategy.
  • Use the same JVM across (different) clusters.

Tools and Knowledge needed to develop SOA Suite 11g applications

Edwin, Torsten and Guido - Image by Markus Eisele

Edwin Biemond was presenting on Knowledge and Tools needed to develop with SOA Suite 11g. He shared great insights on using tools like MDS, Testing – both with TestSuites and AIA CAVS – and using Hudson for continuous Integration for SOA Composites.