Oracle Service Bus & Coherence Caching Strategies

23
An Oracle Technical Article July 11 ORACLE SERVICE BUS AND ORACLE COHERENCE: AN IN-PROCESS AND OUT- OF-PROCESS CACHE EXAMPLE by William Markito Oliveira Senior Technologist Platform Technology Services

description

How to integrate Oracle Coherence and Oracle Service Bus with a in-process and out-of-process caching strategies

Transcript of Oracle Service Bus & Coherence Caching Strategies

Page 1: Oracle Service Bus & Coherence Caching Strategies

An Oracle Technical Article

July 11

ORACLE SERVICE BUS AND ORACLE

COHERENCE: AN IN-PROCESS AND OUT-

OF-PROCESS CACHE EXAMPLE

by William Markito Oliveira

Senior Technologist Platform Technology Services

Page 2: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 2

TABLE OF CONTENTS Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example ................................. 1

Introduction ......................................................................................................................................................................... 3

Requirements ................................................................................................................................................................... 3

Our Problematic Web Service ........................................................................................................................................... 3

Web Service Project ........................................................................................................................................................ 3

Oracle Service Bus Project.................................................................................................................................................. 7

Import Web Service Resources ..................................................................................................................................... 7

Create Proxy and Business Services ............................................................................................................................. 8

Activate and Test ............................................................................................................................................................ 9

Oracle Coherence Integration ......................................................................................................................................... 11

Activating Cache for Business Service ....................................................................................................................... 11

Coherence console integration with Oracle Service Bus Cache .............................................................................. 13

Creating a new external coherence server from Weblogic console ........................................................................ 15

Out-of-process caching with external Coherence server ......................................................................................... 19

Set internal Coherence server Storage to False ......................................................................................................... 20

Conclusion ......................................................................................................................................................................... 22

References .......................................................................................................................................................................... 22

About the Author .............................................................................................................................................................. 22

TABLE OF FIGURES Figure 1 - New Web Service Project ..................................................................................................................................... 4

Figure 2 - New XML Schema ................................................................................................................................................ 4

Figure 3 - Generate Java Classes from XML Schema using JAXB .................................................................................... 5

Figure 4 - Problematic Web Service Response .................................................................................................................... 7

Figure 5 - Import WSDL Resource into Oracle Service BUS ............................................................................................. 8

Figure 6 - Business Service Creation .................................................................................................................................... 9

Figure 7 - Request With Performance Problems ............................................................................................................... 10

Figure 8 - Web Service RESPONSE After 9 seconds ........................................................................................................ 10

Figure 9 - How Result Caching Works .............................................................................................................................. 11

Figure 10 - Enable Business Service Result Cache ............................................................................................................ 12

Figure 11 - Business Service Caching Settings .................................................................................................................. 12

Figure 12 - Adding a New machine ................................................................................................................................... 16

Figure 13 - Node Manager Properties ................................................................................................................................ 16

Figure 14 – Creating a New Coherence Server ................................................................................................................. 17

Figure 15 - Coherence Server Settings ................................................................................................................................ 18

Page 3: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 3

INTRODUCTION

Since version 11g Oracle Service Bus provides a built-in cache functionality that features Oracle

Coherence offering a first class support for many caching strategies. This article describes how to use these

functionalities and explore a fail-over scenario with an example of how caching strategies can speed up your

Web Services and even prevent production outages.

REQUIREMENTS

Software Version Description

Oracle Service Bus 11.1.1.4 Enterprise Service Bus- Oracle Coherence 3.6 Data Grid Cache Server Weblogic Server 10.3.4 Application Server Linux or Windows N/A Operating System Oracle Enterprise Pack for Eclipse (OEPE) 3.6 IDE

This article is written considering the reader already has knowledge in the following areas:

• Java and Web Services

• Basic Oracle Service Bus Knowledge

• Basic Weblogic Server Administration

• Has one Oracle Service Bus domain up and running.

OUR PROBLEMATIC WEB SERVICE

In our case study, we have a simple Web Service called CustomerService that is currently with some

performance problems and for every request, it is spending 9 seconds to respond. In the section below there are

the steps to create and simulate this “problematic” web service.

WEB SERVICE PROJECT

1. Start Oracle Enteprise Pack Eclipse

2. In the New Project window, select Web Service Project and click Next

Page 4: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

FIGURE 1 - NEW WEB SERVICE PROJ

3. In the New Web Service Project

a. Set the project name to

b. Set Target Runtime to

c. Click Finish

4. Right-click in the Customer

5. Create a new XML Schema

FIGURE 2 - NEW XML SCHEMA

This schema will have

6. Copy and paste the following schema definition into the

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace xmlns:tns="http://www.example.org/Customer" elementFormDefault <element name=

Oracle Service Bus and Oracle Coherence: An In-Process and Out

NEW WEB SERVICE PROJECT

New Web Service Project window:

Set the project name to Customer

Set Target Runtime to Oracle Weblogic Server 11gR1 PatchSet 3

Finish

Customer project and create a new folder called schemas

Create a new XML Schema CustomerType.xsd

NEW XML SCHEMA

This schema will have the data structure the Web Service will use.

Copy and paste the following schema definition into the CustomerType.xsd

"http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/Customer"

"http://www.example.org/Customer" elementFormDefault="qualified">

="customer" type="tns:CustomerType"></element>

Process and Out-of-Process Cache Example

Page 4

Oracle Weblogic Server 11gR1 PatchSet 3

schemas

CustomerType.xsd file

Page 5: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

<complexType name <sequence </sequence </complexType> <complexType name <sequence> <element <element <element </sequence> </complexType> </schema>

7. After pasting the content into

Classes

a. Set Package field to

FIGURE 3 - GENERATE JAVA CLASSE

b. The console will output the following results:

parsing a schema...compiling a schema...com/oracle/examples/entities/AddressType.javacom/oracle/examples/entities/CustomerType.javacom/oracle/examples/entities/ObjectFactory.javacom/oracle/examples/entities/packagecom/oracle/examples/entities/jaxb.properties

8. Select Java Resources

Web Service class.

a. In the New Web Service window set:

i. Package:

ii. Name:

9. Copy the following code into the

package com.oracle.examples.service; import javax.jws.WebMethod;import javax.jws.WebService;import com.oracle.examples.entities.AddressType;import com.oracle.examples.entities.CustomerType;import com.oracle.examples.entities.ObjectFactory; @WebService public class Customer {

Oracle Service Bus and Oracle Coherence: An In-Process and Out

name="CustomerType"> sequence>

<element name="id" type="int"></element> <element name="firstname" type="string"></element> <element name="lastname" type="string"></element> <element name="address" type="tns:AddressType"></element

sequence> >

name="AddressType">

element name="street" type="string"></element> element name="country" type="string"></element> element name="city" type="string"></element>

After pasting the content into CustomerType.xsd, right-click this file and select

Package field to com.oracle.examples.entities and click Finish.

GENERATE JAVA CLASSES FROM XML SCHEMA USING JAXB

The console will output the following results:

parsing a schema... compiling a schema... com/oracle/examples/entities/AddressType.java com/oracle/examples/entities/CustomerType.java com/oracle/examples/entities/ObjectFactory.java com/oracle/examples/entities/package-info.java com/oracle/examples/entities/jaxb.properties

Java Resources under Project Explorer tab and click in Weblogic Web Service

In the New Web Service window set:

Package: com.oracle.examples.service

Name: Customer

Copy the following code into the Customer.java class created

com.oracle.examples.service;

javax.jws.WebMethod; javax.jws.WebService; com.oracle.examples.entities.AddressType; com.oracle.examples.entities.CustomerType; com.oracle.examples.entities.ObjectFactory;

Process and Out-of-Process Cache Example

Page 5

element>

click this file and select Generate > JAXB

Finish.

ING JAXB

gic Web Service to create a new

Page 6: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 6

@WebMethod public CustomerType getCustomer(int id) { ObjectFactory factory = new ObjectFactory(); AddressType addressType = factory.createAddressType(); CustomerType customerType = factory.createCustomerType(); switch (id) { case 1: addressType.setCity("São Paulo"); addressType.setCountry("BRA"); addressType.setStreet("Marginal Pinheiros"); customerType.setId(1); customerType.setFirstname("João"); customerType.setLastname("Silva"); customerType.setAddress(addressType); break; case 2: addressType.setCity("San Francisco"); addressType.setCountry("USA"); addressType.setStreet("Some address"); customerType.setId(2); customerType.setFirstname("John"); customerType.setLastname("Lock"); customerType.setAddress(addressType); break; default: break; } // forcing slow down try { Thread.currentThread().sleep(9000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } return customerType; } }

This Web Service will return fixed values but of course you should change this and do a real

Customer search in a database using JPA and/or Oracle TopLink. Also, to simulate the slowness

on our Web Service there is a Thread.sleep() call that will cause our service to return only after 9

seconds.

10. Deploy this project to a running instance of Weblogic Server and hit the URLs below to see the

WSDL and test using Weblogic Test Client.

WSDL URL http://localhost:7001/Customer/CustomerService?WSDL

TEST URL http://localhost:7001/wls_utc/?wsdlUrl=http://local host:70

01/Customer/CustomerService?WSDL

Note: You can deploy this project to same server you will be running Oracle Service Bus.

11. When you invoke the service method getCustomer notice that it really takes 9 seconds to execute.

Page 7: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

FIGURE 4 - PROBLEMATIC WEB SERV

In the next section

how service caching

ORACLE SERVICE BUS

In this section we will import the Web Service previously created and generate the Proxy and Business

Services in a Service Bus project. For more details about Proxy and Business services please check the following

link: http://download.oracle.com/docs/cd/E21764_01/doc.1111/e15866/toc.htm

IMPORT WEB SERVICE RESOURCES

1. Open Oracle Service Bus Console:

2. Click in Project Explorer, start a Session and create a new project. Name it

3. Click in the Customer

URL under Bulk.

4. Fill the form with the following information:

a. URL/Path: http://localhost:7001/Customer/CustomerService?WSDL

b. Resource Name

Oracle Service Bus and Oracle Coherence: An In-Process and Out

PROBLEMATIC WEB SERVICE RESPONSE

In the next section we will import the service into Oracle Service

ervice caching can reduce the impact of this performance

US PROJECT

In this section we will import the Web Service previously created and generate the Proxy and Business

For more details about Proxy and Business services please check the following

http://download.oracle.com/docs/cd/E21764_01/doc.1111/e15866/toc.htm

ESOURCES

Open Oracle Service Bus Console: http://localhost:7001/sbconsole

Click in Project Explorer, start a Session and create a new project. Name it

Customer project and look for the Create Resource combo box. Select

with the following information:

http://localhost:7001/Customer/CustomerService?WSDL

Resource Name: CustomerWSDL

Process and Out-of-Process Cache Example

Page 7

we will import the service into Oracle Service Bus and then learn

performance problem.

In this section we will import the Web Service previously created and generate the Proxy and Business

For more details about Proxy and Business services please check the following

http://localhost:7001/sbconsole

Click in Project Explorer, start a Session and create a new project. Name it Customer for example.

combo box. Select Resources from

http://localhost:7001/Customer/CustomerService?WSDL

Page 8: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

c. Resource Type

FIGURE 5 - IMPORT WSDL RESOURCE

5. Click Next and then

CREATE PROXY AND BUSINESS

1. Click in the Customer

a. Service Name

b. Service Type:

i. In the Select WSDL window, select

ii. Select

c. Keep the protocol as HTTP and in the

http://localhost:7001/Customer/CustomerS

Web Service we created in the previous section.

Oracle Service Bus and Oracle Coherence: An In-Process and Out

Resource Type: WSDL

IMPORT WSDL RESOURCE INTO ORACLE SERVICE BUS

and then Import.

USINESS SERVICES

Customer project and look for Create Resource combo box. Select

Service Name: CustomerBS

Service Type: WSDL Web Service

In the Select WSDL window, select CustomerWSDL.

Select CustomerPortBinding and Click Submit.

Keep the protocol as HTTP and in the Endpoint URI set

http://localhost:7001/Customer/CustomerS ervice

Web Service we created in the previous section.

Process and Out-of-Process Cache Example

Page 8

combo box. Select Business Service

ervice , which is the URL of the

Page 9: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 9

FIGURE 6 - BUSINESS SERVICE CREATION

d. Click Last and then Save.

2. Back to the Customer project, Create Resource combo box and now select Proxy Service

a. Service Name: CustomerPS

b. Service Type: Create From Existing Service

i. Select Business Service and point to CustomerBS.

ii. We don’t need to modify any settings in the Proxy Service, so you can click Last

and then Save.

ACTIVATE AND TEST

1. Click Activate to save the changes done in this session and Submit.

2. Back to the Customer project, click in Launch Test Console under Actions column.

3. Now you can execute the Proxy Service and this will call our problematic Web Service. Since we

hardcoded only two IDs, you can input only 1 or 2 to get some data in response. Other values

will return an empty response document.

Page 10: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

FIGURE 7 - REQUEST WITH PERFORM

FIGURE 8 - WEB SERVICE RESPONSE

Note that all service calls is really taking around 9 seconds to execute. Sometimes it can take a

little bit longer with

“response time” of our backend Web Service.

In the next section we will demonstrate how Oracle Service

integrated and how you can escalate the solution using an out

Oracle Service Bus and Oracle Coherence: An In-Process and Out

REQUEST WITH PERFORMANCE PROBLEMS

WEB SERVICE RESPONSE AFTER 9 SECONDS

Note that all service calls is really taking around 9 seconds to execute. Sometimes it can take a

little bit longer with an additional 1 or 2 seconds, but never less than

“response time” of our backend Web Service.

section we will demonstrate how Oracle Service Bus

integrated and how you can escalate the solution using an out-of-process caching strategy.

Process and Out-of-Process Cache Example

Page 10

Note that all service calls is really taking around 9 seconds to execute. Sometimes it can take a

than 9 seconds since this is the

and Oracle Coherence are

process caching strategy.

Page 11: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 11

ORACLE COHERENCE INTEGRATION

Oracle Service Bus always had some mechanics of caching in order to provide XQuery and XML beans

caching also with object caching for Proxy and Business Services classes. But since release 11gR1, Oracle Service

Bus offered an integrated solution for result caching with Oracle Coherence.

The result caching in Oracle Service Bus is available for Business Services. When you enable result

caching, the Business Service will not reach the back-end service and the response will come from the cache entry.

This entry can expire and if the entry is expired, the next service call will indeed reach the back-end service and

update the cache entry.

FIGURE 9 - HOW RESULT CACHING WORKS

For more details about how result caching works on Oracle Service Bus please check the following link

from Fusion Middleware 11g documentation:

http://download.oracle.com/docs/cd/E21764_01/doc.11 11/e15867/configuringandusingservices.htm#OSBAG170

ACTIVATING CACHE FOR BUSINESS SERVICE

To enable result caching for our Business Service follow these steps:

1. Click in Create at Change Center to create a new change session in Oracle Service Bus console.

2. Navigate to Customer project and click in the CustomerBS Business Service.

3. Click in Edit under Message Handling Configuration section.

Page 12: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

FIGURE 10 - ENABLE BUSINESS SERV

4. Expand Advanced Settings

5. Set the Cache Token Expression:

FIGURE 11 - BUSINESS SERVICE CAC

This will use the customer ID as our unique

Also, set the Expiration

6. Click Last >> and Save

change session.

7. Now click in Launch

The first time you execute the service, it

cache entry. Click Back

immediately, directly from a cache entry in the embedded Oracle Coherence Server running

within Oracle Service Bus.

step 4, so during this period your calls will not hit the back

Oracle Service Bus and Oracle Coherence: An In-Process and Out

ENABLE BUSINESS SERVICE RESULT CACHE

Advanced Settings and in Result Caching select Supported.

Set the Cache Token Expression: fn:data($body/ser :getCustomer/arg0)

BUSINESS SERVICE CACHING SETTINGS

This will use the customer ID as our unique token for the cache entry.

Expiration Time for 10 minutes.

Save to confirm the Business Service modifications. You can

Launch Test Console for CustomerPS proxy service and let’s test our configurations.

he first time you execute the service, it takes 9 seconds to execute and it will populate our

Back in the Test Console and try to execute again. It will show the results

immediately, directly from a cache entry in the embedded Oracle Coherence Server running

within Oracle Service Bus. The cache Expiration Time (Time-to-Live) was set to 1

step 4, so during this period your calls will not hit the back-end web

Process and Out-of-Process Cache Example

Page 12

:getCustomer/arg0)

oken for the cache entry.

to confirm the Business Service modifications. You can activate the

and let’s test our configurations.

9 seconds to execute and it will populate our

and try to execute again. It will show the results

immediately, directly from a cache entry in the embedded Oracle Coherence Server running

) was set to 10 minutes in

service.

Page 13: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 13

In this section we already provided one solution for our problematic service. But one can ask: What if I

want to see what’s going on with my cache? Other will say: How many entries do I have in my cache server?

And so on… Please check the next section for more details and a solution for development environments.

COHERENCE CONSOLE INTEGRATION WITH ORACLE SERVICE BUS CACHE

Oracle Coherence offers good APIs for JMX and Reports about cache servers and that’s definitely the

way to go for monitoring production environments with huge loads. But for development environment and

other critical monitoring situations, you can use the Coherence Console.

Coherence Console is a self-contained command line utility that connects to specific Coherence Servers.

It is a good tool to check which servers are participating in the cluster and let you browse the cache data. That’s

the tool we will be using in the example to monitor our cache entries and Coherence servers.

In order to integrate Coherence Console and Oracle Service Cache you need to specify a few things:

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

#!/bin/sh # Middleware home MDW=/opt/oracle/osb11114 # Service Bus installation folder OSB=$MDW/Oracle_OSB # Domain home DM=/opt/oracle/domains/osb11gR1 # ------------------------------------------------- ---------------------------

if [ -f $JAVA_HOME/bin/java ]; then JAVAEXEC=$JAVA_HOME/bin/java else JAVAEXEC=java fi OPTS="-Xms64m -Xmx64m -Dtangosol.coherence.override=$DM/config/osb/cohe rence/osb-coherence-override.xml -Dtangosol.coherence.cacheconfig=$DM/config/osb/c oherence/osb-coherence-cache-config.xml -Dtangosol.coherence.distributed.localstorage= false -Dtangosol.coherence.cluster=OSB-cluster -Dtangosol.coherence.localhost=localhost -DOSB.coherence.cluster=OSB-cluster" CP="$MDW/oracle_common/modules/oracle.coherence_3.6 /coherence.jar" CP=$CP:"$MDW/modules/features/weblogic.server.modul es.coherence.server_10.3.4.0.jar" CP=$CP:"$OSB/lib/osb-coherence-client.jar" $JAVAEXEC -server -showversion $OPTS -cp $CP com.ta ngosol.net.CacheFactory $1

Note: You do not have to worry about the file location, you can place it anywhere.

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

a. Middleware home - MDW

b. Oracle Service Bus installation directory - OSB

c. Domain Home - DM

Page 14: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 14

3. Give the file execution permission and execute the script in a terminal. You should see an

output similar to the following:

markito@anakin:~/Projects/PTS$ ./consoleOSB.sh … 2011-06-17 16:14:35.612/0.240 Oracle Coherence 3.6. 0.4 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/opt/oracle/osb11114/oracle_common/module s/oracle.coherence_3.6/coherence.jar!/tangosol-coherence.xml" 2011-06-17 16:14:35.621/0.249 Oracle Coherence 3.6. 0.4 <Info> (thread=main, member=n/a): Loaded operational overrides from "file:/opt/oracle/domains/osb11gR1/config/osb/coher ence/osb-coherence-override.xml" 2011-06-17 16:14:35.629/0.257 Oracle Coherence 3.6. 0.4 <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml " is not specified

Oracle Coherence Version 3.6.0.4 Build 19111 Grid Edition: Development mode Copyright (c) 2000, 2010, Oracle and/or its affilia tes. All rights reserved.

2011-06-17 16:14:36.127/0.755 Oracle Coherence GE 3 .6.0.4 <Warning> (thread=main, member=n/a): Local address "127.0.0.1" is a loopbac k address; this cluster node will not connect to nodes located on different machines 2011-06-17 16:14:36.136/0.764 Oracle Coherence GE 3 .6.0.4 <D4> (thread=main, member=n/a): TCMP bound to /127.0.0.1:7892 using Sy stemSocketProvider 2011-06-17 16:14:36.445/1.073 Oracle Coherence GE 3 .6.0.4 <Info> (thread=Cluster, member=n/a): This Member(Id=4, Timestamp=2011-06-17 16:14:36.262, Address=127.0.0.1:7892, MachineId=26733, Location=site:localdomain,machine:localhost,process :13130, Role=CoherenceConsole, Edition=Grid Edition, Mode=Development, CpuCount=4, SocketCount=2) joined cluster "OSB-cluster" with senior Member(Id=1, Timestamp=2011-06 -17 11:00:46.772, Address=127.0.0.1:7890, MachineId=26733, Location=site:localdomain,machine:localhost,process :5603, Role=OSB-node, Edition=Grid Edition, Mode=Development, CpuCount=4, SocketCount= 2) 2011-06-17 16:14:36.454/1.082 Oracle Coherence GE 3 .6.0.4 <D5> (thread=Cluster, member=n/a): Member 1 joined Service Cluster with s enior member 1 2011-06-17 16:14:36.454/1.082 Oracle Coherence GE 3 .6.0.4 <D5> (thread=Cluster, member=n/a): Member 1 joined Service Management wit h senior member 1 2011-06-17 16:14:36.454/1.082 Oracle Coherence GE 3 .6.0.4 <D5> (thread=Cluster, member=n/a): Member 1 joined Service ORA-OSB-deploy ments with senior member 1 2011-06-17 16:14:36.457/1.085 Oracle Coherence GE 3 .6.0.4 <Info> (thread=main, member=n/a): Started cluster Name=OSB-cluster

WellKnownAddressList(Size=2, WKA{Address=127.0.0.1, Port=9999} WKA{Address=127.0.0.1, Port=7890} )

MasterMemberSet ( ThisMember=Member(Id=4, Timestamp=2011-06-17 16:14:36.262, Address=127.0. 0.1:7892, MachineId=26733, Location=site:localdomain,machine: localhost,process:13130, Role=CoherenceConsole) OldestMember=Member(Id=1, Timestamp=2011-06-17 11 :00:46.772, Address=127.0.0.1:7890, MachineId=26733, Location=site:localdomain,machine: localhost,process:5603, Role=OSB-node) ActualMemberSet=MemberSet(Size=2, BitSetCount=2 Member(Id=1, Timestamp=2011-06-17 11:00:46.772, Address=127.0.0.1:7890, MachineId=26733, Location=site:localdomain,machine:localhost,process:5603, Role=OSB-node) Member(Id=4, Timestamp=2011-06-17 16:14:36.262, Address=127.0.0.1:7892, MachineId=26733, Location=site:localdomain,machine:localhost,process:13130, Role=CoherenceConsole) ) RecycleMillis=1200000 RecycleSet=MemberSet(Size=0, BitSetCount=0 ) )

TcpRing{Connections=[1]} IpMonitor{AddressListSize=0} 2011-06-17 16:14:36.500/1.128 Oracle Coherence GE 3 .6.0.4 <D5> (thread=Invocation:Management, member=4): Service M anagement joined the cluster with senior service member 1

Map (?):

Page 15: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 15

4. Now you are already connected to the same Oracle Coherence cluster with Oracle Service Bus.

There are various commands available for Coherence Console, please check the documentation

for a complete list. Let’s check our cache entries:

a. Type cache /osb/service/ResultCache and hit enter:

Map (?): cache /osb/service/ResultCache 2011-06-17 16:27:25.807/770.435 Oracle Coherence GE 3.6.0.4 <Info> (thread=main, member=4): Loaded cache configuration from "file:/opt/oracle/domains/osb11gR1/config/osb/coher ence/osb-coherence-cache-config.xml" 2011-06-17 16:27:26.352/770.980 Oracle Coherence GE 3.6.0.4 <D5> (thread=DistributedCache:ORA-OSB-deployments, membe r=4): Service ORA-OSB-deployments joined the cluster with senior service member 1 <distributed-scheme> <scheme-name>expiring-distributed</scheme-name> <service-name>ORA-OSB-deployments</service-name> <backing-map-scheme> <local-scheme> <scheme-ref>expiring-backing-map</scheme-ref> </local-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme>

b. Type list or size commands and you should see no results if you are following our

example. That’s because our entries expired (10 minutes, remember?) and we now must

execute the Proxy Service CustomerPS again to populate our cache server entries. If your

cache is still valid (not expired) you will get different results and of course your entry

will be already there.

5. Get back to the Service Bus console, Launch the Test Client again and execute CustomerPS.

6. Go to the Coherence Console and type list or size commands. You should see the following

output (before and after testing):

Map (/osb/service/ResultCache): list Map (/osb/service/ResultCache): size 0 Map (/osb/service/ResultCache): size 1 Map (/osb/service/ResultCache): list PipelineResultCacheKey[BusinessService Customer/Cus tomerBS,getCustomer,1) = owner=BusinessService Customer/CustomerBS,value=[B@ 58c16b18

7. Go back to the Service Bus Test client and try to execute with a different Customer ID that you

used in the previous execution. You should see 2 entries and after 10 minutes, they will expire.

CREATING A NEW EXTERNAL COHERENCE SERVER FROM WEBLOGIC CONSOLE

Now that we already have our service cache enabled, we will have a better throughput performance and

can attend much more users in our system. That is true but remembers we are still using an in-process strategy

and this means that we are using the same JVM memory for cache entries, Weblogic services like JDBC or JMS,

and Oracle Service Bus objects, like transformations, Proxy Services and Business Services. If we increase our

cache usage to a high volume, we can go out of memory easily and compromise all other services in the

Enterprise Service Bus, even the ones that are not using cache features, in a worst case scenario.

Page 16: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

To solve this situation you can use an external Coherence Server. That will be a dedicated JVM with its

own Coherence Server. This solution can increase the scalability of our overall architecture and a more

Coherence Cluster infrastructure can take in place. It is out of the scope of this article discuss the configuration

of Coherence Clusters, but it will give an idea of what can be achieved and then adjusted for your situation.

These are the steps to add a new Coherence server using Weblogic Console:

1. Log into Weblogic console:

2. If you are running a domain without a Machine associated in Weblogic, you have to add a

machine and associate the Coherence Server with this Machine. Expand

menu and select Machines

3. Fill up the New Machine

a. Name: anakin

b. Machine OS:

c. Click Next

FIGURE 12 - ADDING A NEW MACHINE

4. In the Node Manager Properties

a. Type: Plain

b. Listen Address:

c. Listen Port:

d. Click Finish

FIGURE 13 - NODE MANAGER PROPERT

Oracle Service Bus and Oracle Coherence: An In-Process and Out

To solve this situation you can use an external Coherence Server. That will be a dedicated JVM with its

own Coherence Server. This solution can increase the scalability of our overall architecture and a more

frastructure can take in place. It is out of the scope of this article discuss the configuration

of Coherence Clusters, but it will give an idea of what can be achieved and then adjusted for your situation.

to add a new Coherence server using Weblogic Console:

Log into Weblogic console: http://localhost:7001/console

If you are running a domain without a Machine associated in Weblogic, you have to add a

associate the Coherence Server with this Machine. Expand

Machines.

New Machine form with the following information:

anakin [replace with your machine name]

Machine OS: Unix [replace with your OS]

ADDING A NEW MACHINE

e Manager Properties form use the following information:

[change it to SSL or SSH for production environments]

Listen Address: localhost

Listen Port: 5556

Finish

NODE MANAGER PROPERTIES

Process and Out-of-Process Cache Example

Page 16

To solve this situation you can use an external Coherence Server. That will be a dedicated JVM with its

own Coherence Server. This solution can increase the scalability of our overall architecture and a more complex

frastructure can take in place. It is out of the scope of this article discuss the configuration

of Coherence Clusters, but it will give an idea of what can be achieved and then adjusted for your situation.

If you are running a domain without a Machine associated in Weblogic, you have to add a

associate the Coherence Server with this Machine. Expand Environment in the left

change it to SSL or SSH for production environments]

Page 17: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

Later we will setup the node manager scripts to complete this step.

5. Expand Environment

6. Fill up this form with the following

a. Name: server1

b. Machine: anakin

c. Unicast Listen Address:

d. Unicast Listen Port:

e. Click Finish

FIGURE 14 – CREATING A NEW COHER

7. In the Coherence servers

integrate with Oracle Service Bus.

8. In the Settings for server1

a. Java Home:

[set to your java home location

b. BEA Home:

[set to your

c. Class Path: /opt/oracle/osb11114/modules/features/weblogic.serv er.modules.coherence.server_10.3.4.0.jar:/opt/oracle/osb11114/coherence_3.6/lib/c oherence.jar:/opt/oracle/osb11114/Oracle_OSB/lib/osb

[replace /opt/oracle/osb11114/

d. Arguments:-Dtangosol.coherence.override=b- coherence -Dtangosol.coherence.cacheconfig=/osb- coherence - Dtangosol.coherence.distributed.localstorage=true - Dtangosol.coherence.cluster=OSB - Dtangosol.coherence.localhost=localhost - DOSB.coherence.cluster=OSB

[replace /opt/domains/osb11gR1/

Oracle Service Bus and Oracle Coherence: An In-Process and Out

Later we will setup the node manager scripts to complete this step.

Environment, select Coherence Servers in the left menu and click in

Fill up this form with the following information:

server1

anakin [or replace with the machine name used in step 3

Unicast Listen Address: localhost

Unicast Listen Port: 9999

Finish.

CREATING A NEW COHERENCE SERVER

ervers screen, click in server1. We need to adjust the class

integrate with Oracle Service Bus.

Settings for server1 screen, click in Server Start tab and fill the following fields:

Java Home: /opt/oracle/jrockit-jdk1.6.0_20-R28.1.0- 4.0.1

set to your java home location]

BEA Home: /opt/oracle/osb11114/

your Oracle Service Bus installation directory]

Class Path: /opt/oracle/osb11114/modules/features/weblogic.serv er.modules.coherence.server_10.3.4.0.jar:/opt/oracle/osb11114/coherence_3.6/lib/c oherence.jar:/opt/oracle/osb11114/Oracle_OSB/lib/osb -coherence-client.jar

/opt/oracle/osb11114/ with your Oracle Service Bus installation directory

Arguments:

Dtangosol.coherence.override= /opt/oracle/domains/osb11gR1/coherence -override.xml

Dtangosol.coherence.cacheconfig= /opt/oracle/domains/osb11gR1/coherence -cache-config.xml

Dtangosol.coherence.distributed.localstorage=true Dtangosol.coherence.cluster=OSB -cluster Dtangosol.coherence.localhost=localhost DOSB.coherence.cluster=OSB -cluster

/opt/domains/osb11gR1/ with your Oracle Service Bus domain directory]

Process and Out-of-Process Cache Example

Page 17

in the left menu and click in New

or replace with the machine name used in step 3]

We need to adjust the class path of this server to

tab and fill the following fields:

4.0.1

/opt/oracle/osb11114/modules/features/weblogic.serv er.modules.coherence.server_10.3.4.0.jar:/opt/oracle/osb11114/coherence_3.6/lib/c oherence.jar:/opt/oracle/osb11

rvice Bus installation directory]

domains/osb11gR1/config/osb/coherence/os

domains/osb11gR1/config/osb/coherence

with your Oracle Service Bus domain directory]

Page 18: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

Note: In order to use this Coherence server as storage node the

tangosol.coherence.distributed.localstorage

e. Click Save.

FIGURE 15 - COHERENCE SERVER SET

9. Now we need to add our new server to the

Servers in the Oracle Service Bus configuration.

a. In the command terminal, browse to

/opt/oracle/domains/osb11gR1/config/osb/coherenceb. Edit the osb-

<!DOCTYPE coherence SYSTEM "coherence.dtd"><coherence> <cluster - <!-- By specifying a well This ensures that the Coherence cluster for OSB wil l be isolated to this machine only. --> <address system <port system </cluster</coherence>

Here we are adding a new socket

and performance reasons, Oracle Coherence server that is bundled with Oracle Service

Oracle Service Bus and Oracle Coherence: An In-Process and Out

In order to use this Coherence server as storage node the

tangosol.coherence.distributed.localstorage property needs to be

COHERENCE SERVER SETTINGS

Now we need to add our new server to the WKA (Well Known Address) list of Coherence

Servers in the Oracle Service Bus configuration.

In the command terminal, browse to

/opt/oracle/domains/osb11gR1/config/osb/coherence-coherence-override.xml file and update according the following snippet:

<!DOCTYPE coherence SYSTEM "coherence.dtd">

- config> By specifying a well -known- address we disable the mutlicast listener.This ensures that the Coherence cluster for OSB wil l be isolated to this machine

<unicast-listener> <well-known-addresses> <socket-address id="1"> <address system- property="OSB.coherence.wka1">127.0.0.1</address> <port system- property="OSB.coherence.wka1.port">7890</port> </socket-address>

<socket-address id="2"> <address system-property="OSB.coherence.wka2">127.0.0.1</address> <port system-property="OSB.coherence.wka2.port">9999</port> </socket-address>

</well-known-addresses> <address system -property="OSB.c oherence.localhost">127.0.0.1</address><port system - property="OSB.coherence.localport">7890</port>

</unicast-listener> <multicast-listener> <time-to-live system- property="OSB.coherence.tt </multicast-listener>

</cluster -config> </coherence>

are adding a new socket address to the Oracle Coherence cluster. For security

and performance reasons, Oracle Coherence server that is bundled with Oracle Service

Process and Out-of-Process Cache Example

Page 18

In order to use this Coherence server as storage node the

property needs to be true.

(Well Known Address) list of Coherence

/opt/oracle/domains/osb11gR1/config/osb/coherence file and update according the following snippet:

address we disable the mutlicast listener. This ensures that the Coherence cluster for OSB wil l be isolated to this machine

property="OSB.coherence.wka1">127.0.0.1</address> property="OSB.coherence.wka1.port">7890</port>

property="OSB.coherence.wka2">127.0.0.1</address> property="OSB.coherence.wka2.port">9999</port>

oherence.localhost">127.0.0.1</address> property="OSB.coherence.localport">7890</port>

property="OSB.coherence.tt l">0</time-to-live>

address to the Oracle Coherence cluster. For security

and performance reasons, Oracle Coherence server that is bundled with Oracle Service

Page 19: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 19

Bus uses WKA and Unicast, so for every new node you add to the cluster this file needs

to be updated or make sure that at least one of the nodes specified here is running when

trying to start other nodes unlisted. In this case, we are specifying a new server listening

in the localhost address (127.0.0.1) and port 9999.

c. Save and close osb-coherence-override.xml.

Note: You can also perform the same configuration shown in this step (step 9) through adding

two more properties in the Coherence server configuration in Weblogic Console:

-DOSB.coherence.wka2=localhost -DOSB.coherence.wka2.port=9999

10. Now it is time to test all we have done so far, please do the following:

a. Shutdown Oracle Service Bus domain.

b. In a command terminal, browse to

/opt/oracle/osb11114/wlserver_10.3/server/bin where

/opt/oracle/osb11114/ is your Oracle Service Bus installation directory.

c. Execute the script to start the node manager:

./startNodeManager.sh

d. Start your Oracle Service Bus domain.

e. Go to the Weblogic Server console: http://localhost:7001/console

f. Expand Environment in the menu on the left and click in Coherence Servers.

g. Click in Control tab, mark server1 and click in Start.

h. Note that the State column value changed to Starting and after a few seconds to

Running.

Congratulations, you have a new Coherence Server up and running integrated with Oracle

Service Bus and can manage your server through Weblogic Console with the help of a Node

Manager. In the next sections we will test this integration and play with our cache server.

OUT-OF-PROCESS CACHING WITH EXTERNAL COHERENCE SERVER

Now it is time to test our out-of-process strategy caching and execute our problematic web service

again. Remember that we still have both servers able to store cached data, the internal server bundled with

Oracle Service Bus and the external server1 because they have tangosol.coherence.distributed.localstorage

property set to true.

To test your out-of-process cache you can do the following:

1. Open a command terminal and browse to the consoleOSB.sh script that we created before.

Execute. You should see the following output:

……… … WellKnownAddressList(Size=2, WKA{Address=127.0.0.1, Port=7890} WKA{Address=127.0.0.1, Port=9999}

Page 20: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 20

) MasterMemberSet ( ThisMember=Member(Id=3, Timestamp=2011-06-20 15:0 3:22.947, Address=127.0.0.1:7894, MachineId=8417, Location=site:localdomain,machine:l ocalhost,process:11912, Role=CoherenceConsole) OldestMember=Member(Id=1, Timestamp=2011-06-20 14 :34:49.401, Address=127.0.0.1:7890, MachineId=8417, Location=site:localdomain,machine:l ocalhost,process:10716, Role=OSB-node) ActualMemberSet=MemberSet(Size=3, BitSetCount=2 Member(Id=1, Timestamp=2011-06-20 14:34:49.401, Address=127.0.0.1:7890, MachineId=8417, Location=site:localdomain,machine:l ocalhost,process:10716, Role=OSB-node) Member(Id=2, Timestamp=2011-06-20 14:47:55.749, Address=127.0.0.1:7892, MachineId=8417, Location=site:localdomain,machine:localhost,process:11562,member:server1, Role=WeblogicWeblogicCacheServer) Member(Id=3, Timestamp=2011-06-20 15:03:22.947, Address=127.0.0.1:7894, MachineId=8417, Location=site:localdomain,machine:l ocalhost,process:11912, Role=CoherenceConsole) ) RecycleMillis=1200000 RecycleSet=MemberSet(Size=0, BitSetCount=0 ) ) TcpRing{Connections=[2]} IpMonitor{AddressListSize=0}

Note that you have now two address in the Well Know Address List and three members in the

Coherence cluster: OSB-node (internal), server1 (external) and CoherenceConsole (which is the

console we are using).

2. In the Oracle Coherence Console, enter in Oracle Service Bus ResultCache: Map (?): cache /osb/service/ResultCache

3. In the web browser, log in Oracle Service Bus console:

http://localhost:7001/sbconsole

4. Click in Project Explorer, browse to Customer project and Launch Test Console for CustomerPS

proxy service.

5. Execute the service and you should experience the 9 seconds execution time for the first call.

Click Back, execute again and your result should be immediate, just like we did previously.

6. Type size or list in the Coherence console and you will see one entry.

7. To validate our external cache server and check if it is working, shutdown Oracle Service Bus

domain.

8. Type size or list again in the Coherence console and you should still see one entry. That’s

it! The external Coherence Server is holding our data for 10 minutes.

9. Start Oracle Service Bus domain, log in sbconsole and re-execute CustomerPS proxy service.

You will see an immediate response because the data is still coming from the cache and not the

back-end service.

Note: Remember to use the same customer ID attempted in step 5, otherwise your call will hit

the back-end service.

SET INTERNAL COHERENCE SERVER STORAGE TO FALSE

As we can see in the previous section the external Coherence server (server1) is already taking care of

cached data storage. But we are still doing cache in both Coherence servers, internal and external, and for a

production environment it may be a good idea to disable the storage of internal Coherence server and free some

Page 21: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 21

JVM memory that can be used for other services like JDBC, JMS or service processing. With this change all

cached data will be stored only in the external Coherence server (server1).

To execute these settings follow the steps below:

1. Make sure you have the external Oracle Coherence (server1) already running with storage

enabled. Otherwise you will see many exceptions in Oracle Service Bus logs complaining that

Service Result Caching functionality is disabled. This happens because there will be no cache

servers with storage enabled in the Coherence Cluster and because of that caching will not be

possible.

2. Open a command terminal and browse to the Oracle Service Bus domain directory.

3. Open /opt/oracle/domains/osb11gR1/bin/ startDomainEnv.sh in a text editor and

look for the following line:

JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES} -Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testCo nsole=${testConsoleFlag} -Dwlw.logErrorsToConsole=${logErrorsToConsoleFlag} "

4. Modify this line to look like the one below:

JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES} - Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testConsole=${testConsoleFlag} -Dwlw.logError sToConsole=${logErrorsToConsoleFlag} -Dtangosol.coherence.distributed.localstorage=false "

5. Save and close the startDomainEnv.sh file.

6. Restart your Oracle Service Bus domain to apply the changes.

7. Once your server is starting, look for the line we modified in step 3 in the starting information

that Weblogic outputs.

/opt/oracle/jrockit - jdk1.6.0_20 - R28.1.0 - 4.0.1/bin/java - jrockit - Xdebug - Xnoagent -Xrunjdwp:transport=dt_socket,address=8453,server=y, suspend=n -Djava.compiler=NONE -Xms648m -Xmx768m -Dweblogic.Name=AdminServer -Djava.security.policy=/opt/oracle/osb11114/wlserver _10.3/server/lib/weblogic.policy -Xverify:none -da:org.apache.xmlbeans... -ea -da:c om.bea... -da:javelin... -da:weblogic... -ea:com.bea.wli... -ea:com.bea.broke r... -ea:com.bea.sbconsole... -Dplatform.home=/opt/oracle/osb11114/wlserver_10.3 -Dwls.home=/opt/oracle/osb11114/wlserver_10.3/server -Dweblogic.home=/opt/oracle/osb11114/wlserver_10.3/s erver -Dcommon.components.home=/opt/oracle/osb11114/oracle _common -Djrf.version=11.1.1 -Dorg.apache.commons.logging.Log=org.apache.commons. logging.impl.Jdk14Logger -Ddomain.home=/opt/oracle/domains/osb11gR1 -Djrockit.optfile=/opt/oracle/osb11114/oracle_common /modules/oracle.jrf_11.1.1/jrocket_optfile.txt -Doracle.server.config.dir=/opt/oracle/domains/osb11 gR1/config/fmwconfig/servers/AdminServer -Doracle.domain.config.dir=/opt/oracle/domains/ osb11gR1/config/fmwconfig -Digf.arisidbeans.carmlloc=/opt/oracle/domains/osb11 gR1/config/fmwconfig/carml -Digf.arisidstack.home=/opt/oracle/domains/osb11gR1/ config/fmwconfig/arisidprovider -Doracle.security.jps.config=/opt/oracle/domains/osb 11gR1/config/fmwconfig/jps-config.xml -Doracle.deployed.app.dir=/opt/oracle/domains/osb11 gR1/servers/AdminServer/tmp/_WL_user -Doracle.deployed.app.ext=/- -Dweblogic.alternateTypesDirectory=/opt/oracle/osb11 114/oracle_common/modules/oracle.ossoiap_11.1.1,/opt/oracle/osb11114/oracle_common/modul es/oracle.oamprovider_11.1.1 -Djava.protocol.handler.pkgs=oracle.mds.net.protocol -Dweblogic.jdbc.r emoteEnabled=false -Dem.oracle.home=/opt/oracle/osb11114/oracle_common -Djava.awt.headless=true -Dweblogic.management.discover=true -Dwlw.iterative Dev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dtangosol.coherence.distributed.localstorage=false -Dweblogic.ext.dirs=/opt/oracle/osb11114/patch_wls10 34/profiles/default/sysext_manifest_classpath:/opt/oracle/osb11114/patch_ocp360/profiles /default/sysext_manifest_classpath weblogic.Server

8. Now execute the CustomerPS proxy service.

Page 22: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In

An Oracle Technical Article

9. Back to the command terminal, execute the

or list commands. You should still see one entry

external Coherence server (

acting as client node only.

CONCLUSION

In this article was presented two different

caching with Oracle Coherence and Oracle Service Bus. There was an example of a Web Service with

performance problems exposed in Oracle Service Bus and through the use of

improvement is clear.

Also the Oracle Coherence Console integration with Oracle Service Bus is an alternative for

development and troubleshooting of service c

data information.

Out-of-process caching can drastically reduce the JVM memory footprint of an Oracle Service Bus

domain and increase the scalability and fail

projects that needs to scale safely.

REFERENCES

Link http://download.oracle.com/docs/cd/E21764_01/doc.11 11/e15867/configuringandusingservices.htm#OSBAG170 http:/ /coherence.oracle.com/display/COH/Oracle+Coherence+ Knowledge+Base+Home

http://mazanatti.info/index.php?/archives/65console-to-an-OSB-Coherence- cluster.html

http://www.oracle.com/technetwork/middleware/servic ebus/documentation/index.html

ABOUT THE AUTHOR

William Markito

Solutions team in Brazil where he focuses in Middleware

technologies.

providing write

more than 8 years of experience in Software Development, Consulting and

Architecture, previously working as a Solution Architect in several companies.

Oracle Service Bus and Oracle Coherence: An In-Process and Out

nd terminal, execute the consoleOSB.sh (Coherence Console)

commands. You should still see one entry in the cache but now it is stored only in the

external Coherence server (server1) and the Oracle Service Bus internal Coherence server

acting as client node only.

In this article was presented two different cache strategies and the benefits of using out

caching with Oracle Coherence and Oracle Service Bus. There was an example of a Web Service with

e problems exposed in Oracle Service Bus and through the use of result caching the response time

Also the Oracle Coherence Console integration with Oracle Service Bus is an alternative for

development and troubleshooting of service caching solutions capable to show the running servers and cached

process caching can drastically reduce the JVM memory footprint of an Oracle Service Bus

domain and increase the scalability and fail-over of the architecture and it is a recommended approach for

Descriptionhttp://download.oracle.com/docs/cd/E21764_01/doc.11 11/e15867/configuringandusingservices.htm#OSBAG170

Documentation about Result Cache in Oracle Service Bus

/coherence.oracle.com/display/COH/Oracle+Coherence+ Kn Coherence Knowledge Base with documentation, Screencasts and examples

ttp://mazanatti.info/index.php?/archives/65 - Connecting - a-cluster.html

Script that connects to Oracle Coherence console and Oracle Service Bus

http://www.oracle.com/technetwork/middleware/servic e- Oracle Service Bus documentation index

UTHOR

William Markito Oliveira is a Senior Technologist at Oracle Platform Technology

Solutions team in Brazil where he focuses in Middleware

technologies. Work also as contributor to the official Java EE

providing write-ups and code examples about CDI,

more than 8 years of experience in Software Development, Consulting and

Architecture, previously working as a Solution Architect in several companies.

Process and Out-of-Process Cache Example

Page 22

(Coherence Console) and type size

in the cache but now it is stored only in the

) and the Oracle Service Bus internal Coherence server is now

strategies and the benefits of using out-of-process

caching with Oracle Coherence and Oracle Service Bus. There was an example of a Web Service with

result caching the response time

Also the Oracle Coherence Console integration with Oracle Service Bus is an alternative for

aching solutions capable to show the running servers and cached

process caching can drastically reduce the JVM memory footprint of an Oracle Service Bus

is a recommended approach for

Description Documentation about Result Cache in Oracle Service

Coherence Knowledge Base with documentation, Screencasts and examples Script that connects to Oracle Coherence console and

Oracle Service Bus documentation index

Oliveira is a Senior Technologist at Oracle Platform Technology

Solutions team in Brazil where he focuses in Middleware, SOA and Java

Work also as contributor to the official Java EE 6 Tutorial

ups and code examples about CDI, EJB 3.1 and JAX-RS. Has

more than 8 years of experience in Software Development, Consulting and

Architecture, previously working as a Solution Architect in several companies.

Page 23: Oracle Service Bus & Coherence Caching Strategies

Oracle Service Bus and Oracle Coherence: An In-Process and Out-of-Process Cache Example

An Oracle Technical Article Page 23