Archive

Posts Tagged ‘BPEL’

SOA Suite EM create partition

October 8th, 2012 No comments

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

September 13th, 2012 2 comments

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

February 23rd, 2012 No comments

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

February 14th, 2012 No comments

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

January 3rd, 2012 No comments

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

July 14th, 2011 No comments

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

June 30th, 2011 No comments

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

June 30th, 2011 No comments

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

June 29th, 2011 No comments

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.

Purging BPEL and ESB instances

April 11th, 2011 No comments

The question on the ability to purge instances for both Oracle BPEL and Oracle ESB keeps recurring so I decided to come up with a small overview.

Oracle BPEL

  • FMW version 11.1.1.4 and up, there is a new version of the purge_soainfra_oracle.sql. Ensure that you run the purge setup scripts from the 11.1.1.4 RCU or 11.1.1.5 RCU location, respectively, as this contains the latest purge details. Details are in the SOA Admin Guide
  • FMW version 11.1.1.1 and up, there is a purge_soainfra_oracle.sql script in the RCU_HOME/rcu/integration/soainfra/sql/purge directory. In the release before 11.1.1.4 you need to apply patch 10297850 to obtain the updated purge scripts. More details are in the FMW Admin Guide on Managing Database Growth. Mark Kelderman posted on how to improve the performance of this script by adding a specific index.
  • From BPEL in SOA Suite version 10.1.3.3.1 and up, there is a purge_instances_oracle.sql script in the SOA_HOME/bpel/system/database/scripts directory.
  • For BPEL in SOA Suite version 10.1.3.1 you need patch 7162289. After applying this patch purge_instances_oracle.sql will be located at SOA_HOME/bpel/system/database/scripts.
  • In case you’re still running BPEL 10.1.2.0.2 check Oracle support document 398578.1 and document 341102.1

Oracle ESB

  • For Mediator in FMW 11g refer to the scripts and links mentioned in the BPEL paragraph.
  • To purge ESB instances in 10.1.3.4 you need to apply at least MLR#4 to have purge scripts available. There are 3 scripts available:
  • $ORACLE_HOME/integration/esb/sql/other/purge_by_date.sql
    $ORACLE_HOME/integration/esb/sql/other/purge_by_id.sql
    $ORACLE_HOME/integration/esb/sql/other/purge_by_instance_id.sql
    

Update 2011-06 SOA Suite 11gR1 PS3

Recently the SOA Suite Engineering Team published a presentation on Purging strategies in Oracle SOA Suite 11gR1 PS3. Besides the information presented in this post, the presentation goes into targeted deletion from the EM and looks into looped and parallel purges. It also mentions the use of database partitioning. That can be very useful when you have long running instances and a large installation (the presentation gives more than 500GB total OR more than 10GB daily depending on environment specifics).

Update 2011-07 Purging the Extreme Edition

Mark Kelderman posted a blog on Purging SOA Suite 11g Extreme Edition. He give a SQL script that deletes data from Mediator, BPEL, BPM, Workflow and Composite, and after that reclaims disk space.

Update Purge Oracle Service Bus

Marc Kelderman posted on his blog on Purging OSB Report Data. Besides the default way to delete the data using the console. He also gives a SQL script to purge directly in the database.

SOA 11g database growth strategies

In January of 2012 the Oracle Fusion Middleware whitepaper on database growth strategies was published. The advice presented should facilitate better dialog between SOA and Database administrators when planning database and host requirements. An important aspect of the whitepaper is purging of the SOA database.

Related documentation:

Updated purging strategies on Oracle Support

purging in OFM 11gAs part of the Oracle Fusion Middleware (FMW) SOA 11g Infrastructure Database: Installation, Maintenance and Administration Guide [ID 1384379.1] A purging guide has been published to offer strategies and procedures for managing database growth in a production SOA 11g implementation.
Purging is not supported for MS SQL Server out of the box or through a patch in any version of 11g. The provided scripts can, however, be used as a solid base from which to create usable purge scripts for SQL Server.

Categories: BPEL, Oracle, Service Bus, SOA Suite
Tags: , , , ,