Using global token variables for SOA and BPM SCA composites

20 Nov

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: , , ,

3 responses to “Using global token variables for SOA and BPM SCA composites

  1. SutoCom

    21-11-2013 at 13:08

  2. Robert H

    17-05-2017 at 16:46

    great post! How does this affect the local build and deploys or even the building of a deployment sar file? do the tokens not get checked at build time and only resolved at deployment time? thanks.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: