Thursday, June 26, 2014

OSB 12c is coming out with new features

Developer productivity :

  • Quick start installer for developers
You need to install Java 64 bit JDK version 1.7 or later first and then launch the fmw_12.

  • JDev IDE

    Start creating a Service Bus Application : (File > New > Application)

and discovering the OSB's components :
and actions :

  • SCA like : Proxy services are no longer associated with message flow and message context. Proxy service invokes a pipeline, which is associated with its own unique message context and variables.
  • Integrated OSB server on JDev :
    The Weblogic Integrated Server is pre-configured with SOA Suite components runtime and JavaDB (Apache Derby). So you don't need to run RCU.

  • Testing using JDev (right click then Run)

  • Continuous integration with Maven, Hudson, Jackson and Jersey

  • Test XPath expressions using JDev
  • Templates (template pipeline)

Monitoring / Troubleshooting :

  • New OSB loggers (ODL : Oracle Diagnostic Logging)
  • OEM for monitoring :
    Operation setting like Monitoring, sla alerts, Message Tracing, etc, are now applicable on OEM.
  • Oracle Dynamic Monitoring Service (DMS) support servicebus metrics
  • OSB Instance Tracking

Design improvements :

  • Dynamic validation

  • Dynamic replace

  • Shared variables :
    When two pipelines in the same call chain declare a variable with the same name as shared, they will be reading and modifying the same variable.
  • Concept of library XQuery modules
  • Enable/Disable actions and stage in a pipeline

New other features :

  • Custom authentication for Business Service
  • Session Stickiness fot HTTP Business Service To a specific URI entry
  • nXSD Action
  • Service Callout with Attachments
  • New OSB Console (OSB Design)
  • Throttling group resource
  • MDS Support for importing and publishing shared resource
  • OWSM Custom Assertions support
  • Resequencer support
  • Full DVM support (populate, lookup, delete via xpath functions)
  • Enterprise Scheduler Service (ESS) support
  • Active Adapter only started at the first request (Lazy loading)

New Adapters :

  • Coherence Adapter (Put, Get, Remove, Query)

  • Cloud Adapter
  • REST Adapter (JSON support)
  • LDAP Adapter
  • UMS Adapter (Mail, SMS...)

Thursday, April 24, 2014

BPEL and BPM's performance monitoring using DMS

What is DMS ?

The Dynamic Monitoring Service (DMS) API allows you to add performance instrumentation to Weblogic Server and Fusion Middleware (BPM, BPEL, Rules, OSB, Human Tasks, B2B...). During runtime DMS collects performance information, called DMS metrics that developers, system administrators, and support analysts use to help analyse system performance or monitor system status.

These performance metrics captured by DMS
are available via the Spy Servlet and via MBeans.  


BPEL/BPM Threading Model's Review :

Dispatcher system Threads : allocated to process system dispatcher messages.
Dispatcher invoke Threads :
(synchronous invoke) allocated to process synchonous requests, For each payload received, the thread will instantiate a new instance invocations.
Dispatcher Engine Threads :
(asynchronous activities : receive in mid-process, on Alarm, onMessage, wait) accolated to process asynchronous messages (durable process). 

We can tune these values through OEM :

We can see below the number of threads allocated for each dispatcher :

 If you want to get all of these metrics through a monitoring tool, see below the ObjectName of the MBean :

Mbean : MetricMBean
ClassName : oracle.dms.jmx.MetricMBean
System Threads's ObjectName : 
Invoke Threads's ObjectName : 
Engine Threads's ObjectName : 

The DMS Spy Servlet can be used to view the metrics captured by DMS : 

Accessing metrics via the DMS Spy Servlet :

Accessing metrics via JConsole :

./jconsole -J-Djava.class.path=/weblogic/1036/jrockit-jdk1.6.0_45-R28.2.7-4.1.0/lib/jconsole.jar:/.../lib/wlfullclient.jar 

Remote Process : service:jmx:iiop://

Under oracle.dms we can see all the metrics retrieve by the DMS framework.

 Under soainfra_bpel_requests and soainfra_bpmn_requests we can see all the runtime metrics related to the BPEL and BPM engine.

The DMS configuration is located on the file :

Monday, April 14, 2014

Leverage Weblogic LDAPAuthenticator through OEM

Use Case : 

Our use case is to manage the ADF application roles through OEM and assign users located in an enterprise LDAP to them.
The enterprise LDAP is accessible using SSL.

Implementation steps : 
  1. Create a LDAP Authenticator
  2. Import the Authority Certificate in the Weblogic's trustKeystore
  3. Add the LDAP Authenticator's reference to OEM
  4. Import the Authority in the OEM trustKeystore
  5. Assign ADF application roles to users located in the LDAP

1 - Create an LDAP Authenticator
First we need to create our LDAPAuthenticator. Because this LDAP is reachable through SSL we need to import the certificate in the trustKeystore.

2 - Import the certificate in the weblogic's trustKeystore

keytool -import -v -file /u01/ -keystore /keystore_path/weblogic_
trust.jks -alias myalias
Enter keystore password:  
Owner: CN=, OU=uk, O=osc, L=oracle, ST=com, C=GB
Issuer: CN=, OU=uk, O=osc, L=oracle, ST=com, C=GB
Serial number: 9e0ccb13
Valid from: Mon Jan 20 04:51:11 PST 2014 until: Tue Jan 20 04:51:11 PST 2015
Certificate fingerprints:
         MD5:  C7:29:76:2C:E6:EA:68:43:5F:FF:45:68:10:9C:91:FA
         SHA1: 41:F4:76:18:FC:5E:1B:38:5C:DC:64:09:43:C6:F2:2A:34:9B:B1:31
         Signature algorithm name: SHA256withRSA
         Version: 3

Trust this certificate? [no]:  yes
Certificate was added to keystore
[Storing /keystore_path/weblogic_trust.jks]

3 - Add the LDAP authenticator's reference to OEM

First we need to add custom properties.

'virtualize' property needs to be set to true if you want to query multiple identity stores, it leverages the libOvd library.

In order to manage the ADF Security we need to use OEM. Because we aren't using the weblogic embedded LDAP we need to modify the jps-config.xml in order to reference our new LDAPAuthenticator :


<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider">

   <description>LDAP Identity Store Service Instance</description>

   <property name="idstore.config.provider"     value=""/>

   <property name="CONNECTION_POOL_CLASS" value=""/>

<property value="true" name="virtualize"/>

<serviceInstanceRef ref="LDAPAuthenticator"/>


<serviceInstance name="LDAPAuthenticator" provider="idstore.ldap.provider">
   <description>Enterprise LDAP Store</description>
   <property name="idstore.type" value="ACTIVE_DIRECTORY"/>


The LDAPAuthenticator's reference relates to the name of our Weblogic Authenticator.

4 - Import the certificate in the OEM's adapters.jks Keystore

It's important to notice that OEM uses a specific keystore named adapter.jks for the LDAP connection.

$MW_HOME/oracle_common/bin/ -host myhost -port 7001 -userName weblogic -domainPath $DOMAIN_HOME/mydomain -createKeystore
Enter AdminServer password:
Enter OVD Keystore password:
OVD config files already exist for context: default
CSF credential creation successful
Permission grant successful
OVD MBeans already configured for context: default
Successfully created OVD keystore.

$JAVA_HOME/bin/keytool -importcert -keystore $DOMAIN_HOME/config/fmwconfig/ovd/default/keystores/adapters.jks -storepass welcome1 -alias myalias -file my.pem -noprompt

Note : If you are facing some issues you can set the debug flag below :

All the adapter configurations are located in the $DOMAIN_HOME/config/fmwconfig/ovd/default/adapters.os_xml file.

5 - Assign ADF application roles to users located in the LDAP

In order to assign users to application roles, we need to use the OEM console.
Create ADF application roles and grant permissions to them.

Then assign groups or users to application roles.

Wednesday, February 26, 2014

OSB Coherence Mbean for monitoring

Using the Jconsole you can see the different attributes from your coherence node.

In order to see all the metrics from your coherence node OSB-cluster you need to add the following JAVA_OPTIONS on your OSB startup script :

Here we go :

If you want to get all of these metrics through another monitoring tool, see below the ObjectName of the MBean :

Mbean : CacheMBean
ClassName : com.tangosol.coherence.component.manageable.modelAdapter.CacheMBean
ObjectName : Coherence:type=Cache,service=ORA-OSB-deployments,name=/osb/service/ResultCache,nodeId=1,tier=back

Sunday, September 29, 2013

What does BPM Suite offer that SOA Suite doesn't ?

Development :
Web-based Process Composer (enables rapid changes to process and rules definition)
BPMN studio : Modeling and Simulation

Rich Process Features :
Business Calendar
Organization Roles

Web Center Spaces (Restricted)
Web Center Portal (Restricted)
Web Center Content (Restricted)

Process analytics :
Business Indicators
BPA Reports and Analysis
Integrated with BAM (Standard and custom dashboards)

BPMN for business processes and BPEL for underlying service orchestrations

Friday, September 20, 2013

JDK 7u40 is coming out with Jrockit features

Java Mission Control and Java Flight Recorder are now available for Hotspot as well as for JRockit.


Here you can find a nice video which presents the Java Mission Control new feature :

Thursday, July 25, 2013

SOA Suite : Installation and domain creation

Installation steps :

- Weblogic suite installation using the silent.xml
Example :
 $JAVA_HOME/bin/java -jar wls1035_generic.jar -mode=silent -silent_xml=wls.xml 
note : the installer needs to uncompress the installer jar in the tmp directory /tmp. If you don't have enough space in this directory, you can change the temporary destination directory with the parameter :
  - Inventory creation
Example :
Disk1/stage/Response/ /weblogic/1035/ weblogic

- SOA Suite installation using the responseFile
Example :
./Disk1/runInstaller -jreLoc /weblogic/1035/jdk160_24 -invPtrLoc /etc/oraInst.loc -debug -logLevel finest -silent -responseFile /u01/osb.rsp

- Create the SOA suite repository (using rcu tool) 

- Domain template creation using the config builder or writetemplate tools

- Build a wlst script in order to create the domain (using readtemplate and writedomain) and create the managed -servers

- Backup and copy the domain files on the other machines (using pack and unpack tools)

$WLS_HOME/common/bin/ -domain=/MyDomainPath -template=/home/weblogic/Mydomain.jar -template_name="Mydomain" -managed=true

$WLS_HOME/common/bin/ -template=/Mydomain.jar -domain=/MyDomainPath -java_home=/weblogic/1035/jdk160_24

- Update your soa suite home ( using bsu and opatch tools)

View Sylvain Grosjean's profile on  LinkedIn