Tag 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.

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

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.

How to VirtualBox overview

VirtualBoxIn this post we’ll share some VirtualBox resources that will help you to use Oracle virtualization product VirtualBox.

Installing an Operating System in VirtualBox

There are several great blog post on how to install an Operating System (OS) in VirtualBox. The install Ubuntu 11.04 in VirtualBox not only offers a good step by step guide to install Ubuntu (also check the more recent Ubuntu 12.04 ) , the steps also provide great insights when you want to install other operating systems. It is fairly easy to get from there to installing Windows8 in VirtualBox.

VirtualBox appliances and extending them

There are several great VirtualBox Appliances for Developers. Oracle offers for example both an appliance to test drive SOA Suite 11g and BPM 11g and a very recent appliance running WebLogic Server 12c , including a bunch of Java tools (including NetBeans, OEPE, Subversion, Hudson, Maven).

These VirtualBox Appliances can easily be extended for example with Oracle OSB as described in installing OSB on SOA Suite 11g appliance and extend SOA Suite appliance with Oracle Service Bus. The latter showing you how to extend the SOA domain and the first how to install OSB in a seperate domain.

Dealing with real world problems using VirtualBox

There a several examples on the web. I’d like to share three of them. The first shows you how to create a duplicate disk for use in an additional virtual machine. The second shows you how to update a Vagrant box.

On the side: Vagrant uses Oracle’s VirtualBox to build configurable, lightweight, and portable virtual machines dynamically. It uses Chef or Puppet to provision them. Vagrant is used so other developers can get up and running in just a couple commands.

The third shows you how we solved VBOX_E_FILE_ERROR (0x80BB0004) :
VBoxManage.exe: error: Code VBOX_E_FILE_ERROR (0x80BB0004) – File not accessible or erroneous file contents (extended info not available)

Or how to solve VirtualBox VERR_VMX_MSR_LOCKED_OR_DISABLED (0x80004005)
Failed to open a session for the virtual machine Ubuntu 12.10.
VT-x features locked or unavailable in MSR. (VERR_VMX_MSR_LOCKED_OR_DISABLED).

Since Virtual Machines can be quite demanding for resources on your PC or laptop: Here are some hints to increase appliance performance in VirtualBox.

Have Fun!

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.