Category Archives: SOA Suite

OTech Magazine – Winter 2014

OTech Magazine winter 2014The winter edition of OTech Magazine, the independent magazine for Oracle professionals, is available. In OTech Magazine – Winter 2014 subjects include:

  • Time Series Forecasting in SQL
  • Flashback – Empowering Power Users
  • Starting WebLogic
  • DevOps and Continuous Delivery for Oracle
  • The Rapid Reaction Force – real time business monitoring

Download OTech Magazine Winter 2014 here.

OTech Magazine – Summer 2014

OTech magazineThe fourth issue of OTech Magazine, the independent magazine for Oracle professionals, is available. For the summer 2014 issue there are some more personal articles included. Titles vary from The Spiritual Programmer to The Next Generation: Oracle SOA Suite 12c and back via How to protect your sensitive data using Oracle Data Vault.

Download OTech Magazine – Summer 2014 here.

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.

Configure BPM engine to publish to BAM

By default the Oracle BPM engine (Business Process Management) is configured so it won’t publish events to BAM (Business Activity Management). So should you choose to use BAM and use these great dashboards, you have set the DisableActions property to false/empty. Here is how it works to configure BPM to BAM:

  • Log in to the Fusion Middleware Control – http://bpm-host:7001/em
  • Navigate through the Farm – WebLogic Domain – select the domain and then select the Server in which BPM is running (soa_server1 in a default install)
  • Use the WebLogic Server dropdown menu as shown in the first screenshot
  • Select the System Mbean browser in the menu
  • Expand the folder ans shown in the second screenshot: Application Defined MBeans - oracle.as.soainfra.config - BMNNConfig - bpmn
  • Find the DisableActions property and remove it’s value
  • Apply the changes

BPM Suite configure BAM Adapter

To have the BPM server push events to BAM – Business Activity Monitoring – we have to configure the BPM suite to use the BAM Adapter. The BAM Adapter is configured (like other SOA Suite and BPM Adapters) in the WebLogic Server Console.

Configure BAM Adapter

  • In the WLS Console, locate the Domain structure and select Deployments.
  • In the Deployments table that is shown, search and click the OracleBAMAdapter (you could filter on type Resource Adapter)
  • As shown in the first screenshot: Select the Configuration tab and within that the Outbound Connection Pools tab
  • Drill down on the oracle.bam.adapter.adc.soap.SOAPConnectionFactory to eis/bam/soap
  • In the properties tab: fill in the details of the connection to the BAM Server (depending on how you installed it). Remember to acknowledge the changes of each field using the enter key (leaving a field without using the enter key and changes will be lost)
  • Save
  • First time you alter the BAM Adapter you have to create a Deployment Plan. Select the Path to the deployment plan and Save
  • Since you need to update the Adapetr now, select it and chose Update
  • Choose the option Update this application in place with the new deployment plan changes and click Finish.

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

Oracle BPM enable BAM

BPMN processes created in the BPM Suite can be monitored by standardized dashboard in the BPM workspace. Besides that there a default views to export Oracle BPM metrics to a data warehouse. And there is another option: BAM – Business Activity Monitoring. BAM takes the monitoring of BPMN processes one step further. BAM allows you to create more advanced dashboards and even real-time alerts. BAM enables you to make decisions based on real-time information gathered from your running processes. With BPMN processes you can use the standard Business Indicators that the BPM Suite offers you and use them to with BAM without much extra effort. However you have to enable BAM in BPM processes.

  • In the BPM Project Navigator right click the BPM project
  • Select Project Preferences
  • In the Category tree, select Process Analytics Summary
  • Click the Data Targets tab
  • Check the Enable BAM checkbox
  • Select the JNDI name of the BAM Adapter labeled as eis/bam/soap
  • Click OK

When you run a process that has Oracle BAM enabled the BPMN Service Engine populates Oracle BAM database with information about the business indicators measured in that process. The BPMN Service Engine generates this information based on the Sampling Points preference you defined in your project.

Also read the blog post on how to configure your SOA server to know where your BAM server is running. This is also needed to use BAM for BPM metrics.

Export Oracle BPM metrics to a data warehouse

Managers and teamleads rely on measurements to know how processes and teams are performing. With an increased BPM effort and automated support of processes, more and more questions on solid information from these systems rise. Oracle BPM offers an easy way to export metrics to a data warehouse. Oracle BPM captures standard and business specific metrics and exposes these through a BPM process star schema.

Export Oracle BPM metrics to a data warehouse

To export Oracle BPM metrics to a data warehouse the SOAINFRA schema in which all configuration and (runtime) instance data is stored offers a number fact tables. These standard views enable the extraction of information for BI usage. For Oracle BPM release prior to PS4FP (11.1.1.5.1) the views have to be created manually. From patchset 4 onwards the process has been automated. Please note that it is not recommended to run the BI reports on the BPM process database.

An overview of the standard fact tables:

  • BPM_PROCESS_PERFORMANCE_V – offers standard metrics (like start and end time and running time in seconds) for completed processes.
  • BPM_ACTIVITY_PERFORMANCE_V – offers standard metrics for completed activities, completed intervals, measurement marks and counters for both in-flight and completed process instances.
  • BPM_PROCESS_INSTANCE_V – offers standard metrics for in-flight process instances. Because of that the information is only relevant at the time the view is queried. When processes move forward the information in this view refelcts the progress.
  • BPM_ACTIVITY_INSTANCE_V – offers standard metrics for in-flight activities and interval instances.

An overview of the dimension tables:

  • BPM_PROCESS_DEFINITION_V – including data on domain, composite, label and revision.
  • BPM_ACTIVITY_DEFINITION_V – including the type of activity: UserTask, Gateway, Event, Measurement interval, etc.
  • BPM_ROLE_DEFINITION_V – also allows you to see whether the role is the process owner.
  • CUBE_INSTANCE
  • COMPOSITE_INSTANCE

Example queries of BPM process metrics

Average process running time by process:

SELECT process_name
,      avg(process_running_time_in_msec)
FROM   bpm_process_performance_v 
GROUP  BY process_name
;

The number of faults by process:

SELECT process_name
,      COUNT(sequence_id)
FROM   bpm_process_performance_v
WHERE  process_discriminator = 'instance_system_fault'
GROUP BY process_name
;

When you run the process in multiple domains on the same server join with the BPM_PROCESS_DEFINITION_V and differentiate on DOMAINNAME.

Example queries of task performance metrics

Average, minimum and maximum time taken by a participant in a process per activity:

SELECT process_name
,      activity_label
,      role_name
,      avg(activity_running_time_in_msec)
,      MIN(activity_running_time_in_msec)
,      MAX(activity_running_time_in_msec)
FROM   bpm_activity_performance_v
GROUP BY process_name
,      activity_label
,      role_name
;

You could add the revision to see whether certain improvements in the process resulted in faster handling of activities by joining with the BPM_PROCESS_DEFINITION_V. It could also be usefull to join with the BPM_ACTIVITY_DEFINITION_V and discriminate on ACTIVITYTYPE.

JDeveloper 11g with BPM Studio extension

To create Oracle BPM processess with JDeveloper you need to install the BPM Studio extension. This is similar to installing the SOA Suite extension.

Ensure that the desired version of JDeveloper is installed. You can download JDeveloper here. Should you be unsure on how to install JDeveloper check the SOA Suite quick start guide to guide you.

Install JDeveloper BPM Studio extension

Install JDeveloper in a seperate Middleware Home. When starting JDeveloper choose the “Default” role. To enable JDeveloper to perform development for the SOA Suite and develop and deploy SCA composites you have to install an extension called SOA Composite Editor. When you want to develop BPM processess you need to install BPM Studio extension following these steps:

  • Select Help > Check for Updates
  • Click Next
  • Select Oracle Fusion Middleware Products and Official Oracle Extensions and Updates and click Next
  • Select Oracle SOA Composite Editor and Oracle BPM Studio 11g and click Next
  • Check the update has finished and click finished
  • Restart JDeveloper and you’re good to go

JDeveloper BPM Studio extensionShould you choose to install these extensions from a local file make shure you have the correct version for your JDeveloper and SOA Suite install. You can find these extensions in the JDeveloper Update Center. There is also a JDev extensions blog.