Sunday Jun 07, 2015

Service Bus 12c: Retrieving Username from HTTP Basic authentication token by Sven Bernhardt

clip_image001Using HTTP Basic authentication is a common mechanism to check user’s authenticity, when creating REST-enabled API’s to prevent applications and it’s functionalities from unathorized access. Service Bus 12c (SB) supports this authentication method by using a OWSM security policy. The corresponding authentication information are transported in the HTTP header.

In some cases, for example when only user-relevant data should be determined when querying information from Enterprise Information Systems (EIS), the information about the current user that are available  in the HTTP header might be helpful. As an alternative the username information could be transported in the payload of each Service Call, e.g. as a query parameter.

In the following I will describe, which steps are needed to extract the username from the HTTP header, so transporting the same information twice, in the header and the payload, can be avoided.

Starting point is a simple HelloWorld service, which expects a valid HTTP Basic authentication token. In the example a corresponding OWSM policy is used to realize this. The service as such has an operation “greet” that takes no parameter. As result, it returns a personalized salution based on the passed authorization header. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Saturday Jun 06, 2015

OSB 12c – Pipeline Template by Vivek Garg

clip_image002As we know Oracle SOA 12c comes with lot of new features, one of that is service bus is merged with SOA Suite i.e. we need not to use separate IDE to build service bus projects. In 12c we use Jdeveloper to build service bus projects.

In previous post we discuss about SOA templates which helps to improve developer productivity, similarly in service bus we have pipeline template. We will discuss about pipeline template in this post, we see how to create pipeline template and how to use pipeline template.

A pipeline template depicts the general message flow and we can generate concrete message flow using this pipeline template.

One point which we need to keep in mind that we cannot create a pipeline template in Oracle Service Bus Console.

How to create pipeline template

Now we see how to create pipeline template from Jdeveloper. To create pipeline template, create a new project and choose “Service Bus project” option. Also provide the project name and click on finish. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Sunday May 24, 2015

https://soacommunity.wordpress.com/2015/05/24/mobile-suite-service-bus-rest-and-adf-bc-soap-by-andrejus-baranovskis/


clip_image002One of the key parts of Oracle Mobile Suite 12c offering is Service Bus product. This is logical choice - Service Bus allows to transform complex SOAP Web Service data into simplified REST format, preferred by mobile client. I think it is essential to use Service Bus, when implementing enterprise mobile applications. It makes sense to learn how Oracle Service Bus works. I would recommend to start from Steven Davelaar excellent tutorial article, available here - Creating a Mobile-Optimized REST API Using Oracle Service Bus – Part 2.
I have created my own ADF BC application with SOAP WS - findEmployees method (filters by first and last name). Here you can download both applications - MobileServiceBusApp_v1.zip. Keep in mind, for some reason Service Bus server doesn't start with JDEV 12c BPM Default Domain, it works only with JDEV 12c SOA Default Domain. Make sure to check, which JDEV you are using, you can check the list features installed: ADF BC SOAP service is implemented to support Master-Detail (Employee - Department Managed by Employee) structure: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Monday Apr 27, 2015

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

Introduction

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:

clip_image002

Tested Environment

  • Oracle Fusion Middleware 12c (12.1.3.0.0) Infrastructure
  • Oracle Fusion Middleware 12c (12.1.3.0.0) 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:

$ ./config.sh

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:

clip_image004

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:

clip_image006

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

clip_image008

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:

clip_image010

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

clip_image012

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

clip_image014

On Component Datasources click in Next button:

clip_image016

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

clip_image018

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

clip_image020

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:

clip_image022

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:

clip_image024

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:

clip_image028

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

cluster_osb

osb-node-01-vip:7010

osb-dev.internal

80

443

cluster_owsm

owsm-node-01-vip:7020

Click in Next button:

clip_image030

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

clip_image032

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:

clip_image034

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:

clip_image036

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

clip_image038

Click in Create button on Configuration Summary:

clip_image040

After the Domain was created, click in Next button:

clip_image042

Click in Finish button:

clip_image044

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 startWebLogic.sh shell script, when asked enter the admin user name and password and wait the process to be in RUNNING state:

$ ./startWebLogic.sh

.

.

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

.

CLASSPATH=/u01/oracle/middleware/fmw1213/oracle_common/modules/features/com.oracle.db.jdbc7-dms.jar:/u01/oracle/middleware/fmw1213/oracle_common/modules/odsi_xquery2004_12.1.3/odsi.xquery.modules_12.1.3.0.jar:/u01/oracle/jdk1.7.0_75/lib/tools.jar:/u01/oracle/middleware/fmw1213/wlserver/server/lib/weblogic_sp.jar:/u01/oracle/middleware/fmw1213/wlserver/server/lib/weblogic.jar:/u01/oracle/middleware/fmw1213/wlserver/../oracle_common/modules/net.sf.antcontrib_1.1.0.0_1-0b3/lib/ant-contrib.jar:/u01/oracle/middleware/fmw1213/wlserver/modules/features/oracle.wls.common.nodemanager_2.0.0.0.jar:/u01/oracle/middleware/fmw1213/soa/soa/modules/oracle.soa.common.adapters_11.1.1/oracle.soa.common.adapters.jar:/u01/oracle/middleware/fmw1213/soa/soa/modules/oracle.cloud.adapter_12.1.3/oracle.cloud.adapter.jar:/u01/oracle/middleware/fmw1213/osb/lib/servicebus-common.jar:/u01/oracle/middleware/fmw1213/oracle_common/communications/modules/config-12.1.3.jar:/u01/oracle/middleware/fmw1213/oracle_common/communications/modules/userprefs-config-12.1.3.jar:/u01/oracle/middleware/fmw1213/oracle_common/modules/internal/features/jrf_wlsFmw_oracle.jrf.wls.classpath_12.1.3.jar:/u01/oracle/middleware/fmw1213/osb/lib/version.jar:/u01/oracle/middleware/fmw1213/osb/lib/servicebus.jar:/u01/oracle/domains/OSBDomain/config/osb:/u01/oracle/middleware/fmw1213/wlserver/../oracle_common/modules/com.oracle.cie.config-wls-online_8.1.0.0.jar::/u01/oracle/middleware/fmw1213/wlserver/common/derby/lib/derbynet.jar:/u01/oracle/middleware/fmw1213/wlserver/common/derby/lib/derbyclient.jar:/u01/oracle/middleware/fmw1213/wlserver/common/derby/lib/derby.jar:/u01/oracle/middleware/fmw1213/wlserver/server/lib/xqrl.jar

.

PATH=/u01/oracle/middleware/fmw1213/wlserver/server/bin:/u01/oracle/middleware/fmw1213/wlserver/../oracle_common/modules/org.apache.ant_1.9.2/bin:/u01/oracle/jdk1.7.0_75/jre/bin:/u01/oracle/jdk1.7.0_75/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin

.

***************************************************

* 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 -Djava.security.policy=/u01/oracle/middleware/fmw1213/wlserver/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Djava.endorsed.dirs=/u01/oracle/jdk1.7.0_75/jre/lib/endorsed:/u01/oracle/middleware/fmw1213/wlserver/../oracle_common/modules/endorsed -Djava.protocol.handler.pkgs=oracle.mds.net.protocol -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 -Doracle.security.jps.config=/u01/oracle/domains/OSBDomain/config/fmwconfig/jps-config.xml -Doracle.deployed.app.dir=/u01/oracle/domains/OSBDomain/servers/AdminServer/tmp/_WL_user -Doracle.deployed.app.ext=/- -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 -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -Dem.oracle.home=/u01/oracle/middleware/fmw1213/em -DINSTANCE_HOME=/u01/oracle/domains/OSBDomain -Djava.awt.headless=true -Doracle.sysman.util.logging.mode=dual_mode -Dums.oracle.home=/u01/oracle/middleware/fmw1213/oracle_common -Djava.util.logging.manager=oracle.core.ojdl.logging.ODLLogManager -Dweblogic.utils.cmm.lowertier.ServiceDisabled=true weblogic.Server





clip_image045

Enter username to boot WebLogic server:weblogic

Enter password to boot WebLogic server:





Mar 28, 2015 1:00:45 AM oracle.security.jps.JpsStartup start

INFO: Jps initializing.

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

INFO: Hibernate Validator 12.1.3.0.0

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.

...



<Channel "Default" is now listening on 192.168.56.102:7001 for protocols iiop, t3, ldap, snmp, http.>

clip_image046


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)

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

at oracle.wsm.policymanager.BeanFactory.getInitialContext(BeanFactory.java:810)

at oracle.wsm.policymanager.BeanFactory.getJndiObj(BeanFactory.java:844)

at oracle.wsm.policymanager.BeanFactory.lookupJndiObj(BeanFactory.java:1175)

at oracle.wsm.policymanager.BeanFactory.getUsageTrackerBeanEJB(BeanFactory.java:1019)

at oracle.wsm.policymanager.BeanFactory.getBeanEJB(BeanFactory.java:544)

at oracle.wsm.policymanager.BeanFactory.getBean(BeanFactory.java:451)

at oracle.wsm.config.ConfigurationManager$2.run(ConfigurationManager.java:1589)

at java.security.AccessController.doPrivileged(Native Method)

at oracle.wsm.config.ConfigurationManager.getBean(ConfigurationManager.java:1585)

at oracle.wsm.config.ConfigurationManager.access$1400(ConfigurationManager.java:169)

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.configureBean(ConfigurationManager.java:600)

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.configure(ConfigurationManager.java:541)

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.(ConfigurationManager.java:487)

at oracle.wsm.config.ConfigurationManager$ContextualAccessor.(ConfigurationManager.java:375)

at oracle.wsm.config.ConfigurationManager.initializeAccessors(ConfigurationManager.java:1902)

at oracle.wsm.config.ConfigurationManager.reset(ConfigurationManager.java:2251)

at oracle.wsm.config.ConfigurationManager.getRepositoryAccessor(ConfigurationManager.java:1803)

at oracle.wsm.policyaccess.PolicyAccessPoint$1.run(PolicyAccessPoint.java:333)

at oracle.wsm.policyaccess.PolicyAccessPoint$1.run(PolicyAccessPoint.java:330)

at java.security.AccessController.doPrivileged(Native Method)

...

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:98)

at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:87)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1162)

at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1147)

at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

Caused By: javax.naming.CommunicationException: t3://owsm-node-01-vip:7020: Destination 192.168.56.102, 7020 unreachable; nested exception is:

java.net.ConnectException: Connection refused; No available router to destination]

at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)

at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:808)

at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:365)

at weblogic.jndi.Environment.getContext(Environment.java:319)

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 createAndDeployCoherence.py and paste the following text:

## Variables

username='weblogic'

password='welcome1'

domainURI='t3://admin-vip:7001'

ClusterWLSCoherence_Name='cluster_coherence'

ManagedWLSCoherence_Name='coherence_server1'

ListenAddressCoherence='coherence-node-01-vip'

PortCoherence=7030

ClusterCoherence='CoherenceCluster'

MachineCoherence='machine1'

OracleHome='/u01/oracle/middleware/fmw1213/osb'

## End Variables

connect(username,password,domainURI);

edit();

startEdit();

#Create Cluster

cd('/')

cmo.createCluster(ClusterWLSCoherence_Name)

cd('/Clusters/'+ClusterWLSCoherence_Name)

cmo.setClusterMessagingMode('unicast')

#Create Server

cd('/')

cmo.createServer(ManagedWLSCoherence_Name)

cd('/Servers/'+ManagedWLSCoherence_Name)

cmo.setListenAddress(ListenAddressCoherence)

cmo.setListenPort(PortCoherence)

cmo.setCluster(getMBean('/Clusters/'+ClusterWLSCoherence_Name))

cmo.setMachine(getMBean('/Machines/'+MachineCoherence))

#Disable SSL

cd('/Servers/'+ManagedWLSCoherence_Name+'/SSL/'+ManagedWLSCoherence_Name)

cmo.setEnabled(false)

#Add to Coherence Cluster

cd('/Servers/'+ManagedWLSCoherence_Name)

cmo.setCoherenceClusterSystemResource(getMBean('/CoherenceClusterSystemResources/'+ClusterCoherence))

cd('/CoherenceClusterSystemResources/'+ClusterCoherence)

cmo.addTarget(getMBean('/Servers/'+ManagedWLSCoherence_Name))

cd('/Clusters/'+ClusterWLSCoherence_Name)

cmo.setCoherenceClusterSystemResource(getMBean('/CoherenceClusterSystemResources/'+ClusterCoherence))

cd('/CoherenceClusterSystemResources/'+ClusterCoherence)

cmo.addTarget(getMBean('/Clusters/'+ClusterWLSCoherence_Name))

#Deploy resultcache

progress=deploy('resultcache',OracleHome+'/lib/apps/resultcache.gar',ClusterWLSCoherence_Name,block='true',upload='true')

progress.printStatus()

print

print

print 'Coherence Server has been configured'

print

print

save();

activate();

disconnect();

exit();

  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 wlst.sh shell script asking our createAndDeployCoherence.py script created previously, the wlst.sh in my case resides on /u01/oracle/middleware/fmw1213/oracle_common/common/bin/wlst.sh:

$ /u01/oracle/middleware/fmw1213/oracle_common/common/bin/wlst.sh createAndDeployCoherence.py

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) ...


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.

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

-DOSB.coherence.cluster=CoherenceCluster

  1. Start All Managed Servers

Conclusion

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.

References

https://docs.oracle.com/middleware/1213/soasuite/SOEDG/toc.htm

https://docs.oracle.com/middleware/1213/osb/develop/osb-business-services.htm#OSBDV2232

http://www.oracle.com/technetwork/articles/soa/bus-coherence-caching-421276.html

https://blogs.oracle.com/MarkSmith/entry/osb_and_coherence_integration_1


SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Friday Apr 24, 2015

Migrating Service Bus 11g to 12c (and the XQuery 1.0 upgrade) by Jan van Zoggel

clip_image001You can easily import an Oracle Service Bus 11g project archive (JAR) in your JDeveloper 12c SB application (File -> Import)

XQuery upgrade:

Howver, when you import your Oracle Service Bus 11g project you will most likely import XQuery transformations as well. When you look at the XQuery editor in JDeveloper 12c you will probably notice that you only have “source” mode and not a graphical editor. Besides that the XQuery files show a “04” icon.

Since the early days of AquaLogic Service Bus the company formerly known as BEA (TCFKAB) supported the W3C working draft of “XQuery 1.0 and XPath 2.0 Functions and Operators” dated 23 July 2004.
In addition TCFKAB supported a number of extension functions easy to recognize with their fn-bea prefix. Since then the world moved on and XQuery made it to version 1.0 in 2007. So now in 12c there is a way to upgrade your XQuery 2004 files to version 1.0. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Sunday Mar 22, 2015

XSLT and DVMs – Design Time Execution in Oracle Service Bus 12c by Jennie DeRosa

clip_image002Within Oracle Service Bus 11g, there is not an easy way to reference Domain Value Maps (DVM), like there is in Oracle SOA Suite 11g Composites. Typically, a kluge solution is implemented as a workaround in a Service Bus 11g project. With Oracle Service Bus 12c, this has changed, DVMs are now accessible in XQuery and XSL maps.

While this is good news, the even better news is that XSL maps which contain references to DVMs can now be successfully executed at design time, allowing for testing within JDeveloper. Testing of XSL maps at design time is always a good practice, it allows for catching bugs early in the development process.

Within this article, I will provide an overview of the configurations required to enable testing an XSL map at design time, which references a DVM within an Oracle Service Bus 12c project.

Overview of creation of a DVM along with publishing to the MDS repository can be found here: http://technology.amis.nl/2014/06/27/soa-suite-12c-using-domain-value-map-dvm-in-service-bus-projects/

One prerequisite step necessary when referencing a DVM outside of the current Service Bus project is to import the resource from the Meta Data Storage (MDS).  OSB 12c cannot contain references to resources, like a DVM, within the MDS repository. Rather, the resource needs to be imported into the Service Bus project, as shown below.

Select the DVM within the MDS repository and select ‘Import Resource’: Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Friday Mar 20, 2015

Caching in OSB 12c without Out-Of-Process Coherence Servers by Ricardo Ferreira

clip_image002Introduction

One of the most popular use cases for Oracle Service Bus (OSB) is the mediation of synchronous service interactions. In this scenario, a client invokes the service through a proxy instead of the actual service endpoint, guaranteeing that the consumer is decoupled from the producer. This type of architecture allows producers to be changed without impacting the consumers, allowing greater agility for projects with volatile requirements.

Synchronous services that return results that do not change often are good candidates to have their results cached by OSB, through a feature called Result Caching. This improves performance by reducing network overhead to access the back-end service. Result caching can help to improve scalability by reducing the load on the back-end servers that host the service. Figure 1 illustrates a client invoking a synchronous service with Result Caching enabled.

Although using the Result Caching feature may seem to always be a good idea, it is important to evaluate its side effects. When this feature is activated, all results are cached in the JVM heap. That means that heap can rapidly become full after a number of service invocations occur. This could lead to serious garbage collection (GC) issues once the JVM starts to reclaim the used space when it hits the high water-mark of 80% of the heap size. Eventually, full GC pauses will start to occur and jeopardize OSB performance.

To avoid using too much heap space with Result Caching, out-of-process Coherence servers can be set up to run in their own JVMs to hold the cached results. They are termed “out-of-process” because they execute in a JVM different from the OSB JVM. The technique here is to allocate data off the OSB JVM letting the Coherence servers use their own heap space without affecting the heap space OSB uses to process messages. This technique is also called off-heap caching. Figure 2 shows an OSB domain using out-of-process Coherence servers to hold the cached results. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Thursday Mar 19, 2015

Service Bus 12c – Exposing a Pipeline as a REST Service by Jennie DeRosa

clip_image002Within Oracle Service Bus 12c, there are several ways to implement a pipeline as a REST service.

One approach is to REST enable an existing SOAP service. In this scenario, a pipeline is supported by both SOAP and REST based interactions. A video that provides a good overview of the required steps to implement this can be found here.

Another way is to derive it from a pipeline WSDL (REST bindings in OSB 12c are based on a WSDL document). The steps below detail the configurations required to accomplish this.

The first step is to create a pipeline that is a WSDL-based service. If the WSDL does not exist, it can be generated from a schema. To do this, select the ‘Create a WSDL’ icon in the Pipeline Service creation wizard to open the Create WSDL dialog.  Before selecting ‘Finish’, be sure the ‘Expose as a Proxy Service’ is not checked, since we will be generating a REST based proxy in a later step. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Friday Feb 20, 2015

OSB12c: Errorhandling in REST by Martien van den Akker

clip_image002Yesterday, I had an OSB consulting day at a customer. We looked into a REST service that was to be extended with update functionality. Since calling an update service of an EIS (Enterprise Information System) can go wrong with all sorts of errors, it is important to be able to return a fault-message with the errors, jason format.
Now in OSB12c it's very apparent how you define possible fault-messages and even how the should be formatted in JSON:

In this sample case we created a more or less simple xsd for faults (dutch: fouten). To test with different fault messages we simply duplicated the 'fouten' element in the xsd to 'fouten2'. You can assign different HTTP-status codes to the different fault.
So this is configuration is pretty simple and straight forward. But it is not quite clear in the documents how you would return a specific fault within your error-handlers in the pipeline.
Internally OSB works not only 'XML'-based but actually SOAP-based. So the trick in the end is to replace the body with a soap-fault message and the selection of the REST/JSON errormessage is done based on the structure of the document in the details-section of the SOAP-Fault. In the screen above, you would define for each fault message an xsd-element and apparently it validates the soap-fault-details content against each XSD defined, and the xsd against which the detail-content is valid points to the returned fault, with the corresponding HTTP Status.

Read the complete article here

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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

Thursday Feb 19, 2015

Patching the Service Bus 12.1.3 unknown protocol deployment error by rubix

clip_image002If you (already) created your first Oracle Service Bus 12c application/project with SOAP webservices and tried to deploy it to your IntegratedWeblogic server you might be familiar with this error.

Lucky for us Oracle quickly released a solution on their support website and also various blogs picked it up and posted a solution. The earliest reference I found was posted by Link. The solution to your problem was either:

  • Add felix.service.urlhandlers=false to the Init properties of OSGi frameworks bac-svnserver-osgi-framework factory implementation class
  • Remove the default server as a target for the framework

This worked like a charm and I was able to play around with my 12c Service Bus. However since it was stated that the solution could result into problems with BPM on your domain I reminded myself that I wanted to dive deeper into this when I had the time.

Google helped me out, and I discovered this information on the Apache Felix framework website.

Felix installs the URL Handlers service by default. If you do not want this service you can disable it, by setting the felix.service.urlhandlers property to false in the config.properties file. It is not recommended to disable this, but the main reason for doing so it because the URL Handlers implementation invokes methods to set the singleton factories for URL stream and content handler factories. Assuming that you want to use URL Handlers service, you must configure it if you aren’t running on the standard Sun JRE.

The URL Handlers service extends the standard Java URL stream and content handler mechanism to work in an OSGi environment. The way that built-in URL protocol and content handlers are discovered is by probing packages for the appropriate classes to handle the protocol/content. ……….. The value of these properties is a list of “|” delimited package names to be searched for protocol and content handlers, respectively. See the Java documentation for stream and content handlers for more information.

So disabling the URL handler service is not recommended and you should be able to extend the list of package names used for handling content and protocols. So after poking around the world wide web I finally discovered that Oracle already released a document on this with Doc ID 1903573.1. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (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





Search

Archives
« July 2015
SunMonTueWedThuFriSat
   
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
       
Today