Category Archives: BPM

Using global token variables for SOA and BPM SCA composites

Our Oracle BPM project is going live and so many user stories lately are targeted to the operational support team to help them ease the deployment and maintenance through the environments.

Since we are already using the Credential Store Framework (blog here) to centralize the authentication/authorization part of our Oracle BPM (and SOA) SCA composites our application configuration plans became smaller and much easier to maintain.

The only deltas in our configuration plans through dev, tst, acc and prd are the endpoint hostname & ports in the different environment. Configuration plans are composite-specific so we need to maintain them for each SCA composite application and often have to change the same value in multiple plan files. For example: the Oracle WebCenter Content endpoint is used by many of our BPM processes.

So together with our Oracle Fusion Middleware administrator “Two Tone” Tony van Esch we dove into the fact that Oracle Fusion Middleware (PS6) supports the ability to use Token Configuration. Also check Tony’s blogpost of our adventure. Tokens helps us, identical to the CSF, to define a global configuration which can be used by multiple SCA composites we deploy on the SOA-INFRA.

In your Enterprise Manager right-click on soa-infra -> SOA Administration -> Token Configuration

Token Configuration

Token Configuration

Here you will see 2 options, the second (most straightforward version) is to manually add, delete, modify changes and commit them straight into the Metadata Manager (MDM). The top option (Bulk Append Tokens) allow you to load large numbers of tokens from a mdm-url-resolver.xml file into the MDM.

Below is an example of an mdm-url-resolver.xml file which bulk loads multiple tokens:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "">
 <comment>URL Resolver file used by the Metadata manager</comment>
 <entry key="ucmProtocol">http</entry>
 <entry key="ucmHostname">ucm.rubix.local</entry>
 <entry key="ucmPort">7301</entry>

To use these new token values from your MDM you simple configure your composites.xml to look something like this:

< port="..." location="${ucmProtocol}://${ucmHostname}:${ucmPort}/..." soapVersion="1.1">

For us this simplified our release process (we actually don’t need any configuratuion plans anymore). This makes deployment through OTAP much easier and less likely to fail through any human mistake. Besided that when using automated deploy tooling it saves you on scripting numberous replace actions.

Some mental notes: !!

  • Tokens are only supported for the host, port & protocol at the ws.binding location and properties under the reference tag in your composites.xml. Don’t try using them in the import section
  • You will need to restart your SOA-INFRA after adding or modifying the tokens before they can be used (small disappointment here)
  • You cant create token names with special characters, host-name for instance won’t work. Also dots seem to be a problem, so just keep it simple and use camelcase.
  • Tokens don’t seem to work in MDS reference WSDLs
  • By default there is 1 default out-of-the-box variable named ${serverURL} which can be used in your composites.xml to point to the SOA server itself. It has to be configured on a different location in Enterprise Manager soa-infra under SOA Administration -> Common properties. Again a restart is necessary. I don’t really get the point myself of separating these settings in your SOA configuration. My advice would be that you define the soa binding tokens together with all other tokens and don’t use this.




Posted by on 20-11-2013 in BPM, EM, Oracle, SOA Suite


Tags: , , ,

Using the Oracle Credential Store Framework (CSF) in your Oracle BPM / ADF project

In our Oracle BPM/SOA project we initially started with 1 process which had a service call out to Oracle UCM/WCC. Since WCC uses basic authentication by default we enabled an OWSM policy on the external reference and made sure the username and password were set in the composite.xml. With the help of Oracle config plans we were able to transfer the SCA through the different OTAP environments.

<interface.wsdl interface=""/>
< port="" location="oramds:/apps/rubix/references/UCM.wsdl" soapVersion="1.1">
<wsp:PolicyReference URI="oracle/wss_http_token_client_policy" orawsp:category="security" orawsp:status="enabled"/>
<property name="oracle.webservices.auth.password" type="xs:string" many="false" override="may">welcome2</property>
<property name="oracle.webservices.auth.username" type="xs:string" many="false" override="may">ucmuser</property>

However when there became more and more processes, with increased complexity and all with numberous callouts to backends with authentication enabled, the delivey of our release through the OTAP environment became more complex as well.Besides that, our Oracle ADF task screens needed connection to many of the same endpoints as well so we ended up with username and password properties in that deployment as well.

So to centralize the username and password in our environment we decided to use the full potential of the Oracle Credential Store Framework (CSF) for both BPM and ADF. Oracle CSF is part of the Oracle Platform Security Services (OPSS).

Since Oracle BPM relies heavily on the SOA-INFRA structure used by Oracle SOA Suite the functionality works identical. Lucky for us Edwin Biemond already blogged about this feature regarding Oracle SOA Suite which we could simple re-use for Oracle BPM.

Oracle Credential Store Framework

Next step was Oracle ADF where our task has functionality to call web services which have the same basic authentication. Again we have a quick start by using this blogpost from Wilfred van der Deijl. In this blogpost he explains how to use a key to the credential store and how to retrieve it from your ADF application.

ADF and Oracle Credential Store

With the help of these 2 fellow Dutch Oracle techies blogs this turned out to be the smoothest user story in our last sprint ;-)



Posted by on 19-11-2013 in ADF, BPM, Oracle, SOA Suite


Tags: , , , , , ,

Using the Notification Task in Oracle BPM

In Oracle BPM 11g we had functional requirements to send emails from our BPM processes. So we started using the BPM Notification Task in our processes.


Since the Notification Task makes use of the User Messaging Service (UMS) we need to configure this in Oracle Enterprise Manager. Right click on the email driver to set the Email Driver Properties. There are a lot of settings there, however to use the SMTP protocol to send emails we only need to configure the outgoing mailserver, port & default sender address.

User Messaging Server Driver

Next thing we need to configure the SOA Suite Workflow properties to enable Email. Right-click on soa-infra -> SOA Administration -> Workflow Properties

SOA Workflow

Select Email from the Notification Mode pulldown and configure the different addresses. In our case we just used non genuine addresses.

SOA Workflow

In our environment the settings did not work until completely restarting the SOA/BPM Managed servers. A  stop/start of the UMS service didn’t do the trick.

After restart and running our BPM processes we could see validate that the Notification task worked by checking the UMS logs. Right-click on the usermessagingdriver-email -> Logs -> View Log Messages. There you can see that the Dispatcher has sent email messages.

User Messaging Server Log

Another way to verify if the Infrastructure works is by checking the OraSDPM queues in the Weblogic console. There you will find OraSDPMDriverDefSnd queues which are used by the User Messaging Services.

Oracle Weblogic queue


Posted by on 01-11-2013 in BPM, Oracle


Tags: ,

Metrics, business indicators and analytics in Oracle BPM

Oracle BPM is build upon the same Oracle Fusion Middleware infrastructure as Oracle SOA Suite and therefor integrates with many of it components. One of these components, Oracle BAM, can be used for business activity monitoring. But Oracle BPM comes with some integrated features for process analytic purposes as well.

Sooner or later in your BPM project you will find yourself in the situation where the business requires some metrics about the business process and task performance. Or at least, they should be. Oracle documentation about how to use process analytics can be found here. The Oracle BPM product comes with some default metrics out of the box. However you can add upon these by configuring your own business indicators. These metrics can be set on project, process and all the way down to activity level. The interesting thing about the BPM/SOA/BAM infrastructure is that the analytic mechanism works in 2 ways. When configuring the business indicators for your process you have the option to configure 2 data targets, namely:

  • Enable Cubes
  • Enable BAM
Oracle BPM analytics data targets

Oracle BPM analytics data targets

Below picture shows an high level overview of the flows of these metrics through the Oracle Fusion Middleware infrastructure for BPM/SOA & BAM.

Oracel BPM data target overview

Oracel BPM data target overview

Below 2 paragraph give a quick insight regarding the role for both options:

Real-time dashboards: The role for BAM is allowing real-time dashboards to get “RIGHT NOW” insight in your organizations processes. The “enable BAM” option allows you to send metrics to the Oracle BAM adapter which stores them in the ORABAM schema. These metrics will be the primary source for your Oracle BAM Active Data Cache (BAM ADC). The BAM ADC is designed and optimized to handle large amounts of data in real time. Data coming into Oracle BAM ADC immediately updates all defined calculations and aggregates in real time in an in-memory cache so that this data can be pushed as quickly as possible to Oracle BAM dashboards and reports (quote: Oracle). How to configure BAM for BPM is documented by Aldo Schaap in this blogpost. Oracle BAM is a good extension for the BPM infrastructure to get .

Business Intelligence (BI): The Enable Cubes setting has another important but different function. When enabling this setting the Oracle BPMN Engine will start storing the business indicators of the process into the CUBE tables in your SOAINFRA schema. These CUBE tables are full with references, hardly readable, considered internal SOAINFRA infrastructure and better left alone. However they are the source for the Oracle Process Star schema views. These process views are perfectly documented by Oracle and will probably be the most important source for your Business Intelligence (BI) information.

Oracle BPM process star views

Oracle BPM process star views

The views are based upon the CUBE tabels and show the overlapping result of all analytic information from all of your processes. Because many of the processes will have different business indicators, almost none of the views above will have specific custom information (your own metrics) available. To solve this problem, Oracle has added something in BPM version (PS6).

We now have an additional configuration option for our processes during design time. By configuring the Analytics View Identifier the BPM infrastructure this will create views for the specific process with the name mentioned in the Analytic View Identifier.

Analytics View Identifier

Analytics View Identifier

After deploying the BPM application you will find the new database analytics views generated in your SOAINFRA schema. These specific views will contain the named columns for the business indicators you configured in your process. This is an excellent out-of-the-box mechanism to publish your business intelligence information with custom metrics without having to create custom views yourself on the internal cubes.

Oracle BPM proces star analytics view

Oracle BPM proces star analytics view

Since you most likely don’t want to store this information in the SOAINFRA schema for decades, it’s best to create a strategy to extract the necessary information to a simple separate database (warehouse) or a Business Intelligence solution.

Interesting facts:

  • When you do a redeployment of your BPM project, and decide to leave the “keep running instances on after redeployment” not selected, your process information will be removed from the cubes. As a result your BI views will show no historical information anymore. So watch out for this in production.
  • The generic Oracle BPM process star views are always available in SOAINFRA, however the process specific views created due to the analytics view identifier are not (as mentioned earlier). When you redeploy your BPM process (no matter what selection you made mentioned here above regarding keeping instances), your process specific views will be dropped, and recreated. Which is not unexpected due to the fact the view will hold specific columns based on the metrics in your process and can’t keep track of the changes in JDeveloper. However this is a bit annoying when you have created grants on these SOAINFRA views to access them from another schema.



Posted by on 05-09-2013 in BPM, Oracle


Tags: , , ,

Force dehydration in Oracle BPM

Oracle BPM uses transactions to control the steps throughout it’s processes. In the Oracle BPEL processes you are able to use a checkpoint to explicit force a dehydration during your process.

Oracle BPMN doesn’t have a specific activity to perform the same. However you can force a dehydration by using a timer catch event in your process. Setting the timer to 2 seconds is sufficient.
(I think this might actually be 1 second, but the manual claims that the duration should be more than 1 second so we use 2 seconds to be sure).

Oracle BPM Catch Timer Event

Oracle BPM Catch Timer Event

Overview of where transactions occur in Oracle BPM/BPEL (source: Oracle performance tuning guide):

• Mid-process breakpoint activities (e.g. receive, onMessage, onAlarm, wait),
• A non-idempotent (i.e. non-retryable) invoke,
• A non-blocking (i.e. asynchronous) invoke,
• Explicit dehydration (in BPEL only), i.e. the checkpoint() call,
• An asynchronous queue (e.g. JMS), and
• A Timer Catch Event with duration of more than one second.



Posted by on 22-08-2013 in BPM


Tags: ,

Debugging Oracle BPM and Events (Oracle EDN)

We are using Oracle EDN events to communicate between Oracle BPM instances and from the Oracle ADF tasks to Oracle BPM. We use the correlation configuration to make sure the events arrive at the correct instances.

We had our share of problems with events during our project and it often took us some time to debug it. Since documentation is scattered across blogs, support sites and some manuals to configure the whole setup. The documentation about debugging your problems is very thin.

1. Check EM logging (duh)

All event steps are logged and the Enterprise Manager ECID (Execution Context ID) can help you detect what is going wrong.

2. Use Oracle Enterprise Manager’s ability to check the Business Events:

right click soa-infra and voila: Business Events! It shows an overview of registered events, amounts, subscriptions and is also the place for recovery of your events,


3. Check your Oracle BPM project project_properties.wsdl file

This file contains the alias settings for your event correlation. In one case we had a “corrupt” file holding old alias settings which caused problems. Our file contained old correlation configurations and old variables.

Correlation definition not registered.
The correlation set definition for operation {}ZaakAuditEvent, process myPartition/myBPMprocess!1.0*soa_e2845e50-44d9-4272-ba3d-47657fcfd9b7/myBPMprocess, is not registered with the server.

The correlation set was not defined in the process. Redeploy the process to the container.

and this message:

cannot find the property alias {someAlias} the message type {someType}
The property alias named in the error message was not defined in the BPMN/WSDL source. Check the BPMN/WSDL source to ensure that the property alias named in the error message had been defined. ORABPEL-03812


4. Use the EDN DB logging servlet

As explained by the Oracle A-Team here. EDN comes with a EDN DB logging servlet to view logging information generated by the EDN component. It is located here:

Oracle EDN DB log

5. Examine the EDN database tables

Also explained by the Oracle A-Team in their blogpost. The 2nd option is to check the Oracle SOA-INFRA database tables EDN_EVENT_QUEUE_TABLE and EDN_OAOO_DELIVERY_TABLE. We had our portion of stuck event records in these tables, which apparantly block all other events as well.



Posted by on 08-08-2013 in BPM, EDN, EM, Oracle


Tags: , , ,

BPM Suite PS6 ( ) available for download

Finally! Very interested in the adaptive case management feature.

PaaS Community Blog

PS6 is a Major Update which includes:

· Complete process model to execute from Composer

· Simplified end user experience in Workspace

· Adaptive Case Management

· Instance Revisioning


The new version of BPM Suite PS6 is available. At our SOA Community Workspace (SOA Community membership required) you can find the latest presentation, highlights include

Process Composer

• Business analysts can capture the process

• Or import existing process from Visio etc.

• Share models and collaborate

• Manage snapshots


• Run simulations to do what-if analysis

• starting PS6 available in Composer

Web Forms

• Business analysts can define the forms

• Forms can be previewed within Composer

• If needed, developers can enrich behavior using JavaScript


• Process can be played to business stake holders within Composer

• Draft mode enables partial processes to be played facilitating iterative discovery

Additional Composer Enhancements

• Complete process…

View original post 100 more words

Leave a comment

Posted by on 01-04-2013 in BPM, Oracle


Tags: , ,