Monday Jul 20, 2015

CI using Oracle Fusion Middleware 12C: Part 2. Building a SB and SOA project using maven and the MDS by Hugo Hendriks

clip_image001In the part 1 I have shown how to setup a simple CI environment and how to build a Service Bus project using Maven. In this part I will try to make a release pipeline which builds, deploys, tests, packages and release a whole service using Jenkins and if all successful and finally install the artifact in Nexus.

Lets start where we left of. Startup Tomcat and log into Jenkins. We need some sort of plugin to be able to run multiple actions in a sequence. Jenkins has alot of plugins but the one which I am going to use is the MultiJob one. Go to Manage Jenkins->Manage plugins, choose the available tab, check the Multijob plugin and click Install without restart.

The multi-job plugin can chain jobs together and share variables and artifact between jobs. You can make very intricate jobs but for now I will keep it simple. I will make 1 job that will:

  1. Build the service bus component which also refers to a SharedObjects project and deploy it to my server
  2. Build the soa component which also refers to the MDS and deploy it to my server
  3. Run the matching soap ui test
  4. If succesfull, install the artifact to nexus

I have created a simple HelloService which first goes to the SB and then routes to a SOA component. The SB component makes use of a SharedObjects SB project which holds the WSDL and XSD. This project is setup so you don’t have to sync between this project and the MDS. This because the SB isn’t able yet to access the MDS. The SOA component does nothing else the return a string response. So the setup will look like this: 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 Jul 18, 2015

How to use the Domain Value Map (DVM) in Oracle Service Bus 12c by Jan van Zoggel

Introduction

clip_image002Due to the tighter integration of Oracle Service Bus 12c in the whole Oracle SOA Suite product it’s now much easier for developers to use general SOA Suite components like the Domain Value Map (DVM).

Getting Started

First I use the OSB 12c clone project ability to copy th earlier created/blogged OSB 12c Database adapter project and create a project named GetCaseServiceDVM. In the new project we add a Domain Value Map (DVM):

The file name and description speak for themself. The Initial DVM Entries forces us to define the minimum amount of 2 domain names (source and target of our value) and if we want we can inmediately configure the 1st record here.

The result is a DVM file in our project which we can easily edit within JDeveloper 12c.
For this blogpost we will add 2 records which will allow us to translate the value “1” and “2” which we receive from the database to a basic description of that value. 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 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

About





Search

Archives
« September 2015
SunMonTueWedThuFriSat
  
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
   
       
Today