53
2015 © Trivadis BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN KOPENHAGEN 2015 © Trivadis Überleben im OSB/SOA-Dschungel Daniel Joray

Überleben im OSB/SOA Dschungel Daniel Joray

Embed Size (px)

Citation preview

Page 1: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

KOPENHAGEN

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

Daniel Joray

Page 2: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Trivadis ist führend bei der IT-Beratung, der Systemintegration,

dem Solution-Engineering und der Erbringung von IT-Services

mit Fokussierung auf und Technologien

im D-A-CH-Raum.

Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern:

Trivadis Services übernimmt den korrespondierenden Betrieb

Ihrer IT Systeme.

Unser Unternehmen

20.11.2015

Trivadis – das Unternehmen

B E T R I E B

2

Page 3: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort

3

12 Trivadis Niederlassungen mit

über 600 Mitarbeitenden

200 Service Level Agreements

Mehr als 4'000 Trainingsteilnehmer

Forschungs- und Entwicklungs-

budget: CHF 5.0 Mio. / EUR 4.0

Mio.

Finanziell unabhängig und

nachhaltig profitabel

Erfahrung aus mehr als 1'900

Projekten pro Jahr bei über 800

Kunden

Stand 12/2013

Hamburg

Düsseldorf

Frankfurt

FreiburgMünchen

Wien

Basel

ZürichBern

Lausanne

3

Stuttgart

20.11.2015

Trivadis – das Unternehmen

3

Brugg

Page 4: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Trivadis – das Unternehmen

Trivadis an der DOAG

Ebene 3 - gleich neben der Rolltreppe

Wir freuen uns auf Ihren Besuch.

Denn mit Trivadis gewinnen Sie immer.

Page 5: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

AGENDA

1. SOA & OSB Project

2. Installation

3. WLS Domain Configuration

4. OSB Cluster

5. SOA Cluster

6. SOA Schema

7. Testing

8. Summary

Überleben im OSB/SOA-Dschungel

Page 6: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

About SOA & OSB

Page 7: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA & OSB Project – General

Überleben im OSB/SOA-Dschungel

The Oracle SOA Suite is a comprehensive, standards-based software

suite to build, deploy and manage integration following the concepts of

service-oriented architecture(SOA)

The Oracle Service Bus is an enterprise service bus (ESB) that

provides the key virtualization layer required for any sustainable

integration architecture

Page 8: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA & OSB Project – Focus

Überleben im OSB/SOA-Dschungel

External hosted applications can execute service requests

to the main application

The internal GUI application should use the same services

to retrieve the data.

Authentication is done before in a “secure zone” - a token

is delivered with the request

Coherence will be use to Cache Data between the OSB,

SOA and GUI components

Page 9: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA & OSB Project – Requirements

Application should be high available

Application should support 200 requests per second

98% transactions should be faster than 600 milliseconds

Database Size is about 1 TB

The Application should deliver data to subsystems e.g. for a

batch job

Überleben im OSB/SOA-Dschungel

Page 10: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA & OSB Project – The Architecture

Überleben im OSB/SOA-Dschungel

Page 11: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA & OSB Project – Lessons learned

Überleben im OSB/SOA-Dschungel

In the next slides, you will see our

lessons learned

Page 12: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

Installation

Page 13: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Installation - General

Use distinct middleware home for SOA and for OSB.

Install your own JDK, don’t use the system JDK

In this project, we got better performance with Oracle JDK as with

JRockit

Überleben im OSB/SOA-Dschungel

Page 14: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Installation – Patching

Install the last patch set and PSU in comparison with the

base version Patch 20423630: OSB Bundle Patch 11.1.1.7.4 fix 118 bugs

Patch 20900797: SOA Bundle Patch 11.1.1.7.8 fix 768 bugs

Patch 20780171: SU Patch [EJUW]: WLS PATCH SET UPDATE

10.3.6.0.12 fix more than 700 bugs

Nobody will spend time for upgrade in a project phase, but

this is very important to plan updates regularly in the

project

Use a recent JDK compatible with your middleware

version

After each patch, regression testing must be done

Überleben im OSB/SOA-Dschungel

Page 15: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

WebLogic Domain Configuration

Page 16: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – General

Create your domain in Production Mode to maximize performance

For performance testing and production environments, consider using

the lowest acceptable logging level, such as "ERROR" or

"WARNING" whenever possible

Consider turning off the HTTP access logging

If You use non-persistent JMS scenarios, explicitly turn off persistence

at the JMS server level - for persistent JMS scenarios you can use file

store or JDBC store

If there are multiple JMS servers involved, create each JMS store on

a separate disk to lower I/O contention

Überleben im OSB/SOA-Dschungel

Page 17: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – JVM Memory

The out-of the box JVM configuration provided by the default

installation of OSB, SOA or WebLogic Domain is probably not optimal

for your application (-Xms512m –Xmx1024m)

Not only the Heap Size should be tuned, take care for the ratio

between Young and Tenured

Verify the Garbage Collection algorithm

Sample of the memory argument from the OSB Managed Server

Überleben im OSB/SOA-Dschungel

-Xms8192M -Xmx8192M -XX:+UseParNewGC -

XX:+UseConcMarkSweepGC -XX:NewSize=4096m -

XX:MaxNewSize=4096m -XX:SurvivorRatio=6 -

XX:TargetSurvivorRatio=90 -XX:PermSize=512m -

XX:MaxPermSize=768m -XX:ReservedCodeCacheSize=120m

Page 18: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – Connection Pools

Überleben im OSB/SOA-Dschungel

Configure the Connection Pools

Ensure that the connection pool has

enough free connections.

Set Initial Capacity and Minimum

Capacity to the same value

Disable unnecessary connection testing

and profiling

Enabling Data Source Statement

Caching

Take care with the Option “Wrap

datatypes” and DB Adapter

Page 19: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – TCP

The Accept Backlog parameter specifies how many Transmission

Control Protocol (TCP) connections can be buffered in a wait queue.

Tune the Default Work Manager.

The Default WorkManager is used to handle

thread management and perform self-tuning.

Überleben im OSB/SOA-Dschungel

-DWebLogicic.threadpool.MinPoolSize=100

-DWebLogicic.threadpool.MaxPoolSize=250

Page 20: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – Work Manager

For OSB you can create Work Manager in the WebLogic Domain

Überleben im OSB/SOA-Dschungel

Page 21: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – Time Zone / Archiving

Force WLS to use the right time zone

Set Configuration Archive Enable on True and set the Archive

Configuration parameter

Überleben im OSB/SOA-Dschungel

-Duser.timezone=Europe/Zurich

Page 22: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – Cluster or not Cluster

If your system must be permanently available, it is best to define a

cluster configuration type from the beginning of your project

SOA and OSB environments are extremely slow to start (several

minutes) which makes them unusable failover type configuration

A cluster type of configuration is easily modified to accept more load

depending on demand.

For SOA and OSB cluster configurations are robust even under high

load variation or if some managed server are not available

Überleben im OSB/SOA-Dschungel

Page 23: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

WLS Domain Configuration – Oracle HTTP Server

If you use mod_wl_ohs from the Oracle HTTP Server or mod_wl for

Apache, set the parameter WebLogic Plug-In Enabled to true

Überleben im OSB/SOA-Dschungel

Page 24: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

OSB Cluster

Page 25: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

OSB Cluster – Proxy Service Caching

Oracle Service Bus 11g provides built-in cache for proxy services may

help throughput (Compiled Proxy Cache )

This cache management use algorithm (LRU)

The default value is 100 and can be increased for large number of proxy

services

If you deploy a large numbers of services in your OSB, you should

increase the size of this cache

Überleben im OSB/SOA-Dschungel

-Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.size=700

-Dcom.bea.wli.sb.pipeline.RouterRuntimeCache.preload=true

Page 26: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

OSB Cluster – Result Caching (1)

For result caching, OSB provides built-in cache functionality that uses

Oracle Coherence

Per default, the Coherence Cache is part of the OSB Managed Server

OSB Cache Configuration is located unter$DOMAIN_HOME/config/osb/coherence/

Coherence Cache Configration is defined in file osb-coherence-

cache-config.xml

Coherence Network Configuration is define in file osb-coherence-

override.xml

If you want no spend OSB JVM Memory for the cache, you can

configure external Coherence Server and change the local storage for each cache

Überleben im OSB/SOA-Dschungel

Page 27: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

OSB Cluster – Result Caching (2)

Result caching definition is done on service level

You can enable or disable result caching for the OSB Domain in the console

Überleben im OSB/SOA-Dschungel

Page 28: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

OSB Cluster – Load Balancing Outgoing Request

(HTTP)

Specify Load Balancing Algorithm and list of Endpoint URIs

3 settings that help with endpoint failures

Retry Count - Retry Iteration Interval - Retry Application Errors

You can use an external load balancer

Überleben im OSB/SOA-Dschungel

Page 29: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

OSB Cluster – Load Balancing Outgoing Request

(JMS)

For JMS you have the same possibilities, but the syntax is a quite

different

Überleben im OSB/SOA-Dschungel

Page 30: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

SOA Cluster

Page 31: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – Post Configuration (1)

Oracle SOA Suite 11g use an embedded Coherence cache to

coordinate several cluster-wide activities including composite

deployment

By default, this embedded Coherence cache is configured for

multicast node discovery

To allow the communication between the coherence cache members,

you should add in the setDomain.sh/cmd these properties

In setDomain from Managed Server 1

In setDomain from Managed Server 2

Überleben im OSB/SOA-Dschungel

-Dtangosol.coherence.wka1=“ServerName1”

-Dtangosol.coherence.wka2=“ServerName2”

-Dtangosol.coherence.localhost=“ServerName1”

-Dtangosol.coherence.wka1=“ServerName1”

-Dtangosol.coherence.wka2=“ServerName2”

-Dtangosol.coherence.localhost=“ServerName2”

Page 32: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – Post Configuration (2)

Configure the Java Object Cache (JOC) procedure is optional, but

increases the performance of Oracle WSM by keeping a local cache

instead of having to search for a cache.

Perform the 'soa-createUDD.py' to create the JMS Cluster

Überleben im OSB/SOA-Dschungel

$JAVA_HOME/bin/java weblogic.WLST

$MW_HOME/oracle_common/bin/configure-joc.py

$JAVA_HOME/bin/java weblogic.WLST $ORACLE_HOME/bin/soa-

createUDD.py --domain_home $DOMAIN_HOME --soacluster soacluster

Page 33: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – Common Properties

The Audit Level property enables you to select the level of

information to be collected by the message tracking infrastructure

(None, Production, Development)

Don’t forget to turn off the Payload Validation at SOA Infra

Properties, if you don’t need validation at this level. This increases

the performance of the SOA Suite to greater extent. Major

Improvements are guaranteed.

Überleben im OSB/SOA-Dschungel

Page 34: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – Common Properties

More SOA Infra Advanced Configuration Properties... this link gives

you access to the soa-infra MBEAN

Configure the same value for all SOA Server

You can use WLST Scripts to make change

Überleben im OSB/SOA-Dschungel

Page 35: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – BPEL/BPMN Engine Level Properties

The BPEL thread pool

implementation notifies the

threads when a message has

been enqueued

It ensures the appropriate

number of threads are

instantiated in the pool

Verify Parameter

dspSystemThreads

dspInvokeThreads

dspEngineThreads

largedocumentthreshold

Überleben im OSB/SOA-Dschungel

Page 36: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Cluster – Mediator Engine Level Properties

Überleben im OSB/SOA-Dschungel

Mediator is a component of

Oracle SOA that provides

mediation capabilities like

selective routing, transformation

and validation capabilities

Verify Parameter

metricsLevel

Parallel Worker Threads

(DeferredWorkerThreadCount)

Parellel Maximum Rows

Retrieved

(DeferredMaxRowsRetrieved)

Parallel Locker Thread Sleep

(DeferredLockerThreadSleep)

Page 37: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

SOA Schema

Page 38: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Schema – Database Purging (1)

The SOA schema has one of the biggest impact on the SOA business

application

Impact on performance of SQL query runtime

Impact on asynchronous routing rules and asynchronous BPEL

processes

It slows down the console access when querying for auditing data

Purging data needs database performance, do it in the general

maintenance window

If retention periods are defined too long, larger disk space is required –

BLOB column tables are growing fast

Überleben im OSB/SOA-Dschungel

Page 39: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Schema – Optimizing

Consider using hash partitioning on your tables and

indexes http://docs.oracle.com/cd/E29505_01/core.1111/e10108/others.htm#autoId10

Check for missing indexes High CPU Usage in SOA 11.1.1.5 due to Full Table Scan (Doc ID

1420114.1)

Don’t let your SOA Composite instance grow

exponentially

Define rules to keep the house clean, purge the

instances at regular interval to obtain better

performance from BPEL engine and Enterprise Manager

Überleben im OSB/SOA-Dschungel

Page 40: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Schema – Purge Script (1)

Composite instances using the SOA Suite Service Engines

(BPEL, mediator, rules, BPM, etc.) are writing data to

tables residing within the SOAINFRA schema

Oracle provides a purge script to delete instances that are

no longer required using stored procedures that are

provided with Oracle SOA Suite out of the box

This purge script will delete composite instances that are

in the following states: Completed, Faulted, Terminated by user, Stale, Unknown

This purge script will NOT delete composite instances that

are in the following states: Running (in-flight), Suspended, Pending Recovery

Überleben im OSB/SOA-Dschungel

Page 41: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Schema – Purge Script (2)

There are two options for running the purge script:

Looped

Parallel

Basically the soa.delete_instance uses five parameters

Überleben im OSB/SOA-Dschungel

Parameter Description

min_creation_date Beginning creation date for the composite instances.

max_creation_date Ending creation date for the composite instances.

batch_size Batch size used to loop the purge. The default value is

20000.

max_runtime Expiration at which the purge script exits the loop. The

default value is 60. This value is specified in minutes.

retention_period Retention period is only used by the BPEL process service

engine

Page 42: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

SOA Schema – Package

Package soa.delete_instances

Überleben im OSB/SOA-Dschungel

DECLARE

max_creation_date timestamp;

min_creation_date timestamp;

batch_size integer;

max_runtime integer;

retention_period timestamp;

BEGIN

min_creation_date := to_timestamp('2015-09-01','YYYY-MM-DD');

max_creation_date := to_timestamp('2015-09-30','YYYY-MM-DD');

max_runtime := 60;

retention_period := to_timestamp('2015-10-01','YYYY-MM-DD');

batch_size := 10000;

soa.delete_instances(

min_creation_date => min_creation_date,

max_creation_date => max_creation_date,

batch_size => batch_size,

max_runtime => max_runtime,

retention_period => retention_period);

END;

/

Page 43: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

Testing

Page 44: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing - General

Performance optimization for a SOA Suite application is a real

challenge

A large number of components are involved in each request

Each component (JVM, DB, OSB, SOA, Network) has to be optimized

separately

To ensure that parameter changes have the desired effect, it is

necessary to repeat the same tests under the same conditions

several times

Maybe this change may have negative effects on other parts of the

application

Test cases must represent reality, use actual test data

The end scenarios is a representative mixture of all application

services

Überleben im OSB/SOA-Dschungel

Page 45: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing

For each service, it is necessary to develop automatic test scenarios

which can be repeated for several times

For each scenario it is necessary to define

The expected response time

The number of requests that this service can be called per second

The expected response values

In reality, some query will be go wrong, it is important that this type of

queries are integrated in your test scenarios too (error handling)

During testing, don’t forget to check the log files…

Use SoapUI, LoadUI, Jmeter or whatever you want, each tool has his

own advantages

Überleben im OSB/SOA-Dschungel

Page 46: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing – Verify your Test Runs

Start a test is one thing, optimize the system is another

For each component type, there are many specific tools to perform

these measurements

JVM -> jconsole, jvisualvm, jmc (Java Mission Control), DomainHealth

WLST, Enterprise Could Control, …

Domain -> DomainHealth, WLST, Enterprise Could Control, …

SOA -> DMS Spy, WLST, …

But only a few tools give you the possibility to see your complete

environment in the same application – E2E

EM12c Could Control, Dynatrace, AppDynamics

Überleben im OSB/SOA-Dschungel

Page 47: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing – Dynatrace (1)

Real End-to-End Monitoring

A deep dive in the application code

Haben Sie Ihre WebLogic Umgebung im Griff

Page 48: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing – Dynatrace (2)

You can see in detail where your application spends time

Haben Sie Ihre WebLogic Umgebung im Griff

Page 49: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing – Dynatrace (3)

Haben Sie Ihre WebLogic Umgebung im Griff

The PurePath functions allows you to see the true transaction level

detail, all the time

Page 50: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Testing – Dynatrace (4)

See the database calls, code included

Search for the hostpot

Haben Sie Ihre WebLogic Umgebung im Griff

Page 51: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Überleben im OSB/SOA-Dschungel

Summay

Page 52: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Summary

Each components from a SOA Suite should be tuned separately

Do to this, you need automated test scenarios

To tune an application, you must understand how it works, speak with

your developers, eat with them, go to beer with them

To optimize the right parameters, you need to understand what

represents the measured value

Application Optimization is a permanent job - it must be started from the

beginning of the development

Überleben im OSB/SOA-Dschungel

“This is as much an art as it is a science.” (John Mounjoy, WebLogic The Definitive Guide)

Page 53: Überleben im OSB/SOA Dschungel Daniel Joray

2015 © Trivadis

Fragen und Antworten...

2015 © Trivadis

BASEL BERN BRUGG GENF LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

KOPENHAGEN

Daniel Joray

Principal Consultant

Tel. +41 58 459 50 26

[email protected]

Haben Sie Ihre WebLogic Umgebung im Griff