- 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.
Download OTech Magazine Winter 2014 here.
The 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.
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:
Application Defined MBeans - oracle.as.soainfra.config - BMNNConfig - bpmn
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.
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.
While deploying SCA appications from JDeveloper or ANT you should add the partition from now on.
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;
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.
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 (18.104.22.168.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:
An overview of the dimension tables:
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.
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.
To create Oracle BPM processess with JDeveloper you need to install the BPM Studio extension. This is similar to installing the SOA Suite 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:
Should 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.
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.
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.
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.
Installing PS5 (22.214.171.124) 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.
There is an additional article on upgrading to OFM 126.96.36.199 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.
More on setting Java memory arguments in SOA Suite 188.8.131.52.0.