Implementing Coherence and OWSM out-of-process on OSB 12c by David Saes


Enterprise Deployment Guide for Oracle SOA Suite states that we should segregate Oracle Web Service Manager (OWSM) and if we plan to use Result Caching heavily with OSB we should segregate Coherence from OSB Managed Server too, but to perform these tasks at WebLogic 12c is quite different than old version 11g. This article describes how to create an OSB domain and segregate (or “out-of-process”) OWSM and Coherence Servers from OSB Managed Servers, our desired domain is covered by the following image:


Tested Environment

  • Oracle Fusion Middleware 12c ( Infrastructure
  • Oracle Fusion Middleware 12c ( Service Bus
  • Oracle JDK 7u75
  • Linux

Installation Steps

I’m assuming that all Installation steps are already done before, and I’ll not cover them on this article to not be boring, the installation steps are:

(Note: always certify your system meets the Requirements and Supported Platform):

Domain Configuration

Now we already have installed the OSB binaries, we need to configure the domain using the Configuration Wizard, my Oracle Home is /u01/oracle/middleware/fmw1213 and to start the Configuration Wizard we need to go to $ORACLE_HOME/oracle_common/common/bin and execute:

$ ./

Choose “Create a new domain” and choose the Domain Location as you prefer (in my case it will be /u01/oracle/domains/OSBDomain) and Click in Next button:


Select the Template “Oracle Service Bus”, and the templates: “WebLogic Advanced Web Services for JAX-RPC Extension”, “ODSI XQuery 2004 Components”, “Oracle Enterprise Manager”, “Oracle WSM Policy Manager”, “Oracle JRF” and “WebLogic Coherence Cluster Extension” will be selected too, then Click in Next button:


Choose the Application Location as you prefer (in my case it will be /u01/oracle/domains/applications/OSBDomain) and Click in Next button:


Define the Administrator Account User and password (in my case it will be weblogic for User and welcome1 for Password) and Click in Next button:


Select “Production” on Domain Mode and Choose the JDK appropriate and Click in Next button:


Enter your Database connection and RCU data then click in “Get RCU Configuration”, after we verify everything is OK click in Next button:


On Component Datasources click in Next button:


On JDBC Test verify if everything is OK and click in Next button:


Select “Administration Server”, “Node Manager”, “Managed Servers, Clusters and Coherence” and Click in Next button:


On Administration Server enter the “Server Name” and “Listen Port” as you prefer, on “Listen Address” as EDG states use a virtual host (in my case it will be AdminServer for Server Name, admin-vip for Listen Address and 7001 for Listen Port), on “Server Groups” leave “Unspecified” and click in Next button:


Choose the “Node Manager Type” and “Node Manager Credentials” as you prefer (in my case it will be Per Domain Default Location for Node Manager Type, nmuser for Username and welcome1 for Password) and click in Next button:


On Managed Servers screen, we will change the Server Group for OSB Server from “OSB-MGD-SVRS-COMBINED” to “OSB-MGD-SVRS-ONLY”, and Click in clip_image026 button to add our OWSM Managed Server then we will associate the Server Groups: “JFR-MAN-SVR” and “WSMPM-MAN-SVR” for it, then click in Next button:


Create two new cluster as following, you can adapt the names to your standards (Note: Always set Frontend Host to OSB)

Cluster Name

Cluster Address

Frontend Host

Frontend HTTP Port

Frontend HTTPS









Click in Next button:


Associate each Server on your respective cluster then click in Next button:


Enter the name for Coherence Cluster and an Unicast Port Listen (in my case it will be CoherenceCluster for Cluster Name and 0 for Unicast Listen Port), if you leave port 0 it will create an offset for the Managed Servers, then click in Next button:


Enter the Machine information (in my case it will be machine1 for Name, machine1-vip for Node Manager Listen Address and 5556 for Node Manager Listen Port) then click in Next button:


Associate the Managed Servers to Machine created then click in Next button:


Click in Create button on Configuration Summary:


After the Domain was created, click in Next button:


Click in Finish button:


Here we’ve already segregated the OSB and OWSM in two different Managed Servers.

Starting OSB domain

Now we start our OSB domain created in previous step, my Domain Location or $DOMAIN_HOME is /u01/oracle/domains/OSBDomain, and to start the Admin Server we need to go $DOMAIN_HOME, execute shell script, when asked enter the admin user name and password and wait the process to be in RUNNING state:

$ ./



JAVA Memory arguments: -Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m







* To start WebLogic Server, use a username and *

* password assigned to an admin-level user. For *

* server administration, use the WebLogic Server *

* console at http://hostname:port/console *


starting weblogic with Java version:

java version "1.7.0_75"

Java(TM) SE Runtime Environment (build 1.7.0_75-b13)

Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

Starting WLS with line:

/u01/oracle/jdk1.7.0_75/bin/java -server -Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m -Dweblogic.Name=AdminServer -Dweblogic.ProductionModeEnabled=true -Djava.endorsed.dirs=/u01/oracle/jdk1.7.0_75/jre/lib/endorsed:/u01/oracle/middleware/fmw1213/wlserver/../oracle_common/modules/endorsed -Dopss.version=12.1.3 -Digf.arisidbeans.carmlloc=/u01/oracle/domains/OSBDomain/config/fmwconfig/carml -Digf.arisidstack.home=/u01/oracle/domains/OSBDomain/config/fmwconfig/arisidprovider -Dweblogic.alternateTypesDirectory=/u01/oracle/middleware/fmw1213/oracle_common/modules/oracle.ossoiap_12.1.3,/u01/oracle/middleware/fmw1213/oracle_common/modules/oracle.oamprovider_12.1.3,/u01/oracle/middleware/fmw1213/oracle_common/modules/oracle.jps_12.1.3 -Dweblogic.jdbc.remoteEnabled=true -Dcommon.components.home=/u01/oracle/middleware/fmw1213/oracle_common -Djrf.version=12.1.3 -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger -Ddomain.home=/u01/oracle/domains/OSBDomain -Doracle.server.config.dir=/u01/oracle/domains/OSBDomain/config/fmwconfig/servers/AdminServer -Doracle.domain.config.dir=/u01/oracle/domains/OSBDomain/config/fmwconfig -Doracle.mds.filestore.preferred= -Dadf.version=12.1.3 -Doracle.osb.home=/u01/oracle/middleware/fmw1213/osb -da -Dwls.home=/u01/oracle/middleware/fmw1213/wlserver/server -Dweblogic.home=/u01/oracle/middleware/fmw1213/wlserver/server -DINSTANCE_HOME=/u01/oracle/domains/OSBDomain -Djava.awt.headless=true -Doracle.sysman.util.logging.mode=dual_mode -Djava.util.logging.manager=oracle.core.ojdl.logging.ODLLogManager -Dweblogic.utils.cmm.lowertier.ServiceDisabled=true weblogic.Server

<Mar 28, 2015 12:59:36 AM BRT> <Info> <Security> <BEA-090905> <Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify>

<Mar 28, 2015 12:59:36 AM BRT> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG128 to FIPS186PRNG. To disable this change, specify>

<Mar 28, 2015 12:59:37 AM BRT> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) 64-Bit Server VM Version 24.75-b04 from Oracle Corporation.>

<Mar 28, 2015 12:59:38 AM BRT> <Info> <Management> <BEA-141107> <Version: WebLogic Server Wed May 21 18:53:34 PDT 2014 1604337 >

clip_image045<Mar 28, 2015 12:59:42 AM BRT> <Info> <Security> <BEA-090065> <Getting boot identity from user.>

Enter username to boot WebLogic server:weblogic

Enter password to boot WebLogic server:

<Mar 28, 2015 1:00:42 AM BRT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING.>

<Mar 28, 2015 1:00:42 AM BRT> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool.>

<Mar 28, 2015 1:00:42 AM BRT> <Info> <WorkManager> <BEA-002942> <CMM memory level becomes 0. Setting standby thread pool size to 256.>

<Mar 28, 2015 1:00:43 AM BRT> <Notice> <Log Management> <BEA-170019> <The server log file /u01/oracle/domains/OSBDomain/servers/AdminServer/logs/AdminServer.log is opened. All server side log events will be written to this file.>

Mar 28, 2015 1:00:45 AM start

INFO: Jps initializing.

Mar 28, 2015 1:00:52 AM org.hibernate.validator.util.Version <clinit>

INFO: Hibernate Validator

Mar 28, 2015 1:00:52 AM org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA

INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.

<Mar 28, 2015 1:04:18 AM BRT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN.>

<Mar 28, 2015 1:04:18 AM BRT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING.>

<Mar 28, 2015 1:04:19 AM BRT> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on for protocols iiop, t3, ldap, snmp, http.>

clip_image046<Mar 28, 2015 1:04:19 AM BRT> <Notice> <WebLogicServer> <BEA-000329> <Started the WebLogic Server Administration Server "AdminServer" for domain "OSBDomain" running in production mode.>

<Mar 28, 2015 1:04:19 AM BRT> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.>

Note: If during the Admin startup you see the stack like below, it is because the Admin Server is trying to reach wsm-pm during startup. As wsm-pm is targeted only to Managed Servers which have not been started yet, this must fail.

The connection to wsm-pm will be retried, and will be established once wsm-pm is available in the domain. (more details see the MOS Note: 1948727.1)

<Mar 28, 2015 1:03:03 AM BRT> <Warning> <oracle.wsm.resources.policymanager> <WSM-02141> <Unable to connect to the policy access service.

oracle.wsm.policymanager.PolicyManagerException: WSM-02141 : Unable to connect to the policy access service.

at oracle.wsm.policymanager.BeanFactory.getInitialContext(

at oracle.wsm.policymanager.BeanFactory.getJndiObj(

at oracle.wsm.policymanager.BeanFactory.lookupJndiObj(

at oracle.wsm.policymanager.BeanFactory.getUsageTrackerBeanEJB(

at oracle.wsm.policymanager.BeanFactory.getBeanEJB(

at oracle.wsm.policymanager.BeanFactory.getBean(

at oracle.wsm.config.ConfigurationManager$

at Method)

at oracle.wsm.config.ConfigurationManager.getBean(

at oracle.wsm.config.ConfigurationManager.access$1400(

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.configureBean(

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.configure(

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.<init>(

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.<init>(

at oracle.wsm.config.ConfigurationManager.initializeAccessors(

at oracle.wsm.config.ConfigurationManager.reset(

at oracle.wsm.config.ConfigurationManager.getRepositoryAccessor(

at oracle.wsm.policyaccess.PolicyAccessPoint$

at oracle.wsm.policyaccess.PolicyAccessPoint$

at Method)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$




Caused By: javax.naming.CommunicationException: t3://owsm-node-01-vip:7020: Destination, 7020 unreachable; nested exception is: Connection refused; No available router to destination]

at weblogic.jndi.internal.ExceptionTranslator.toNamingException(

at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(

at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(

at weblogic.jndi.Environment.getContext(

Creating Coherence Managed Server

Now we need to create our WebLogic Cluster and WebLogic Managed Server to keep our Coherence data from OSB Resulting Cache, this process is very different than the configuration on OSB 11g, in order you need to follow this steps:

  1. Create a file named and paste the following text:

## Variables











## End Variables




#Create Cluster





#Create Server








#Disable SSL



#Add to Coherence Cluster









#Deploy resultcache





print ‘Coherence Server has been configured’







  1. Modify the script variables according to your installation settings. The variables are:

username – The Admin username created for the Domain

password – The Admin password created for the Domain

domainURI – The Url for your Admin Server

ClusterWLSCoherence_Name – The new name for WebLogic Cluster to create for the Coherence Managed Servers

ManagedWLSCoherence_Name – The new name for Coherence Managed Server

ListenAddressCoherence – The virtual host for the new Coherence Managed Server

PortCoherence – The port for the new Coherence Managed Server

ClusterCoherence – The Coherence created to the new Coherence Managed Servers

MachineCoherence – The Machine created to managed the new Coherence Managed Servers

OracleHome – Oracle Service Bus installation directory

  1. In another SSH session run shell script asking our script created previously, the in my case resides on /u01/oracle/middleware/fmw1213/oracle_common/common/bin/

$ /u01/oracle/middleware/fmw1213/oracle_common/common/bin/

Initializing WebLogic Scripting Tool (WLST) …

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://admin-vip:7001 with userid weblogic …

Successfully connected to Admin Server "AdminServer" that belongs to domain "OSBDomain".

Warning: An insecure protocol was used to connect to the

server. To ensure on-the-wire security, the SSL port or

Admin port should be used instead.

Location changed to edit tree. This is a writable tree with

DomainMBean as the root. To make changes you will need to start

an edit session via startEdit().

For more help, use help(‘edit’)

Starting an edit session …

Started edit session, please be sure to save and activate your

changes once you are done.

Deploying application from /u01/oracle/middleware/fmw1213/osb/lib/apps/resultcache.gar to targets cluster_coherence (upload=true) …

<Mar 28, 2015 2:00:44 AM BRT> <Info> <J2EE Deployment SPI> <BEA-260121> <Initiating deploy operation for application, resultcache [archive: /u01/oracle/middleware/fmw1213/osb/lib/apps/resultcache.gar], to cluster_coherence .>

You have an edit session in progress, hence WLST will not

block for your deployment to complete.

Started the Deployment of Application. Please refer to the returned WLSTProgress object or variable LAST to track the status.

Current Status of your Deployment:

Deployment command type: deploy

Deployment State : failed

Deployment Message : weblogic.deploy.beans.factory.InvalidTargetException: cluster_coherence

Coherence Server has been configured

Saving all your changes …

Saved all your changes successfully.

Activating all your changes, this may take a while …

The edit lock associated with this edit session is released

once the activation is completed.

Activation completed

Disconnected from weblogic server: AdminServer

Exiting WebLogic Scripting Tool.

<Mar 28, 2015 2:00:46 AM BRT> <Warning> <JNDI> <BEA-050001> <WLContext.close() was called in a different thread than the one in which it was created.>

  1. Log into WebLogic console: http://admin-vip:7001/console

Expand Environment in the left menu and select Servers

i) Click on server osb_server1 and go to Server Start tab on Arguments, add the following parameters and Save your configuration:

-DOSB.coherence.cluster=CoherenceCluster -Dtangosol.coherence.distributed.localstorage=false

ii) Click on server owsm_server1 and go to Server Start tab on Arguments, add the following parameters and Save your configuration:

-DOSB.coherence.cluster=CoherenceCluster -Dtangosol.coherence.distributed.localstorage=false

iii) Click on server coherence_server1 and go to Server Start tab on Arguments, add the following parameters and Save your configuration:


  1. Start All Managed Servers


Now we have an OSB domain configured using the best practices that EDG says and also we can use the best that Oracle Fusion Middleware 12c can deliver.


SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

About Jürgen Kress
As a middleware expert Jürgen works at Oracle EMEA Alliances and Channels, responsible for Oracle’s EMEA Fusion Middleware partner business. He is the founder of the Oracle SOA & BPM and the WebLogic Partner Communities and the global Oracle Partner Advisory Councils. With more than 5000 members from all over the world the Middleware Partner Community is the most successful and active community at Oracle. Jürgen manages the community with monthly newsletters, webcasts and conferences. He hosts his annual Fusion Middleware Partner Community Forums and the Fusion Middleware Summer Camps, where more than 200 partners get product updates, roadmap insights and hands-on trainings. Supplemented by many web 2.0 tools like twitter, discussion forums, online communities, blogs and wikis. For the SOA & Cloud Symposium by Thomas Erl, Jürgen is a member of the steering board. He is also a frequent speaker at conferences like the SOA & BPM Integration Days, JAX, UKOUG, OUGN, or OOP.

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

%d bloggers like this: