Tag 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

Book review: Do more with SOA integration

Book cover: Do more with SOA IntegrationRecently I read Do more with SOA integration that was published December 2011. This book is a mash-up of eight earlier published works from Packt, including Service Oriented Architecture: An Integration Blueprint, Oracle SOA Suite Developer’s Guide, WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g, and SOA governance. More details on this title:

Target audience according to the publisher:

If you are a SOA architect or consultant who wants to extend your knowledge of SOA integration with the help of a wide variety of Packt books, particularly covering Oracle tools and products, then “Do more with SOA Integration: Best of Packt” is for you. You should have a good grasp of Service Oriented Architecture, but not necessarily of integration principles. Knowledge of vendor-specific tools would be an advantage but is not essential.

My thoughts

My assumption is that most people won’t read the around 700 pages of this book cover to cover. In my view it is a good reference book to get a solid introduction to SOA and integration in general.

To deepen you knowledge on real world scenario’s there a good examples eg given in the chapters on Extending enterprise application integration and Service oriented ERP integration. The first gives an example of of BPEL orchestrating various web service exposed on ERP systems (SAP, Siebel) using EAI (TIBCO, webMethods). This sample includes an example of centralized error handling. The latter shows an integration of PeolpleSoft CRM 8.9 and Oracle Applications 11g using BPEL 10g. The ideas and mechanismes of the integration will also hold in the 11g version.

Chapter 14 on SOA Integration a Scenario in detail, offers another example on how to use Oracle SOA technology (10g again) to integrate legacy systems into a more modern application landscape. It does a thorough job.

The chapter on Base Technologies has parts that are based on the Trivadis Integration Architecture Blueprint. Beside that it offers a good introduction on transactions, JCA, SCA and SDO. Their fundamentals are well explained without getting too technical. So should you be looking for coding examples on these topics, there are other great sources.

When reading about XML for integration I noticed that it answers questions we get from our customers on a regular basis like: How to design XSDs – XML Schema Definitions. Questions on when to use a type or an Element, chose targetNamespace or XMLSchema as the default namespace, the number of namespaces to use. These are all well adressed in the book.

Where on the other hand a complete view on the following statement could fill at least a whitepaper:

Adopt and develop design techniques, naming conventions, and other best practices similar to those used in object-oriented modelling to address the issues of reuse, modularization, and extensibility. Some of the common design techniques are discussed in the later sections.

The chapter on loose coupling offers an example of how to achieve this using the Oracle Service Bus. It is hard to overrate the importance of loose coupling since a lot of both the technical and the business advantage rely on whether or not this loose coupling is achieved.

Bottomline

As a reference this is a good starting point to learn about SOA and integration in general. It could be more consistent on some details and with the great BPEL and BPM tooling these days I wouldn’t implement processes in an ESB. Of course there is a good chapter (12) with an eaxmple of using both BPM and BPEL. As mentioned before it has some great illustrative examples of real world scenarios. The bottom line is that I would recommend this book to people looking for a reference on SOA and integration.

Cons:
Some text seems a little dated.

Pros:
Good description of SOA and integration in general; practical ; solid introduction on the XML stuff, transactions, JCA and SCA; nice real world integration examples.

Additional reviews

If you’re interested in other reviews on this book, visit the ADF Code Corner blog by Frank Nimphius, AMIS blog by Lucas Jellema, or this SOA / BPM on Fusion Middleware blog by Niall Commiskey.

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.

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 Thursday Thunder

During the Kscope Thursday Thunder a team of highly skilled ADF (including JHeadstart) and SOA Suite experts is building an application based on these technologies. Although this session – like any real world project – seemed chaotic at times, there were a lot of best practices to learn for all who attended.

We could have learned all of the tips and tricks in a normal session or presentation. However by working this way there is a much stronger feel of how technologies and tools are used in a real world project. It was fun to watch and learn and I think the team had a great time as well!

At the en of the session the End-to-End flow worked really well. Great work in just a few hours time!

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.

Choosing your Oracle Application Integration Infrastructure

Today I presented at ODTUG Kaleidoscope. The presentation is aimed at supporting architects and especially developers to choose the right integration infrastructure for a job.