Oracle SOA Suite 11g Performance Tuning Cookbook

Featuring over 100 recipes, this handy cookbook will walk you through the different ways to optimize the performance of the Oracle SOA Suite 11g. Essential reading for administrators, developers, and architects.

Oracle SOA Suite 11g Performance Tuning Cookbook

Cookbook

Matt Brasier, Nicholas WrightJuly 2013

Featuring over 100 recipes, this handy cookbook will walk you through the different ways to optimize the performance of the Oracle SOA Suite 11g. Essential reading for administrators, developers, and architects.

Who This Book Is For

This book is for Oracle SOA Suite 11g administrators, developers, and architects who want to understand how they can maximise the performance of their SOA Suite infrastructure. The recipes contain easy to follow step-by-step instructions and include many helpful and practical tips. It is suitable for anyone with basic operating system and application server administration experience.

Table of Contents

Chapter 1: Identifying Problems

Introduction

Identifying new size problems with jstat

Identifying permanent generation problems with jstat

Monitoring garbage collection with jstat

Identifying locking issues with jstack

Identifying performance problems with jstack

Identifying performance problems using VisualVM on HotSpot

Identifying performance problems using JRMC on JRockit

Using JRockit flight recorder to identify problems

Monitoring JDBC connections with the WebLogic console

Identifying slow-running database queries

Identifying slow-running components with the Enterprise Manager

Chapter 2: Monitoring Oracle SOA Suite

Introduction

Installing the Hyperic server

Installing Hyperic agents

Configuring Hyperic to monitor SOA Suite 11g

Monitoring the SOA Suite server availability

Monitoring the JVM memory usage

Monitoring the platform CPU usage

Monitoring the data source usage

Monitoring open sockets

Monitoring committed transactions

Configuring alerts in Hyperic

Monitoring the system using the DMS servlet

Chapter 3: Performance Testing

Introduction

Installing Apache JMeter

Creating a web service test using JMeter

Running JMeter on multiple servers

Checking responses in JMeter tests

Monitoring SOA Suite while testing

Recording user web sessions with JMeter

Designing advanced load tests

Running performance tests from the Cloud

Chapter 4: JVM Memory

Introduction

Increasing the JVM heap size

Setting Xmx and Xms to the same value

Setting the size of the Permanent Generation heap

Calculating the total memory used by your application

Viewing the memory used using JRMC for JRockit

Viewing the memory used using VisualVM for HotSpot

Setting the size of the thread stack

Chapter 5: JVM Garbage Collection Tuning

Introduction

Setting the new size

Setting the survivor ratio

Choosing a garbage collection algorithm in HotSpot

Choosing a garbage collection algorithm in JRockit

Turning on verbose garbage collection

Tuning to reduce the number of full garbage collections

Disabling the RMI garbage collector

Disabling explicit GC

Chapter 6: Platform Tuning

Introduction

Tuning global transaction timeouts

Increasing the HTTP accept backlog

Reducing the server logging level

Finding out which JVM you are using

Using large pages in Linux

Increasing the number of file descriptors in Linux

Tuning the SOA Suite EJB timeouts

Upgrading to a newer JVM

Setting the Linux kernel swappiness to low

Using the Oracle JRockit JVM

Running your domain in the production mode

Creating a boot.properties file

Chapter 7: Data Sources and JMS

Introduction

Setting the data source pool sizes

Configuring data source testing

Configuring data source growing and shrinking

Setting data source connection timeouts

Tuning database XA timeouts

Tuning connections in the native EIS database adapter

Configuring the WebLogic thread pool

Using JMS file persistence

Tuning JMS connection factories

Chapter 8: BPEL and BPMN Engine Tuning

Introduction

Tuning the dispatcher invoke threads

Tuning the dispatcher engine threads

Tuning the dispatcher system threads

Disabling BPEL monitors and sensors

Reducing the audit level

Changing a BPEL process to be transient

Reducing the completion persist level

Disabling persistence on invocation

Setting the audit store policy

Reducing audit trail size threshold

Increasing large document threshold

Reducing SOA infra log levels

Purging data from the BPEL store

Ensuring automatic database statistics gathering is enabled

Tuning Oracle database parameters

Tuning the Oracle database

Chapter 9: Mediator and BAM

Introduction

Setting Mediator Parallel Metrics Level

Setting Mediator Parallel Worker Threads

Setting Mediator Parallel Maximum Rows Retrieved

Setting Parallel Locker Thread Sleep

Using batched delivery in the BAM Adapter

Chapter 10: Rules and Human Workflow

Introduction

Disabling automatic release timers globally

Choosing the correct workflow service client

Preventing looping and inefficient rule execution

Tuning rule execution

Chapter 11: SOA Application Design

Introduction

Using BPEL process parallelization

Using non-blocking service invocations in BPEL flows

Turning off payload validation and composite state monitoring

Designing BPEL processes to reduce persistence

Using parallel routing rules in Mediator components

Setting HTTP timeouts for external services

Tuning BPEL adapter properties

Chapter 12: High Performance Configuration

Introduction

Configuring a cluster of SOA Suite servers

Configuring an OHS load balancer

Tuning for deployment on a virtualized infrastructure

Using distributed JMS destinations in a cluster

Using JMS bridges to improve the enqueue speed

Choosing deployment hardware

What You Will Learn

Monitor your SOA Suite environment

Configure the memory available to the Java Virtual Machine

Tune the Java garbage collector

Configure a WebLogic server to handle large loads

Tune BPEL, BPMN, and Mediator engines

Performance test your application

Design your SOA Suite components for maximum performance

Configure a cluster of SOA Suite servers

Tune the operating system and virtualization layers for SOA Suite

In Detail

Oracle SOA Suite 11g forms the heart of many organisations’ Service Oriented Architecture. Yet for such a core component, simple information on how to tune and configure SOA Suite and its infrastructure is hard to find. Because Oracle SOA Suite 11g builds on top of a variety of infrastructure components, up until now there has been no one single complete reference that brings together all the best practices for tuning the whole SOA stack.

Oracle SOA Suite 11g Performance Tuning Cookbook contains plenty of tips and tricks to help you get the best performance from your SOA Suite infrastructure. From monitoring your environment so you know where bottlenecks are, to tuning the Java Virtual Machine, WebLogic Application Server, and BPEL and BPMN mediator engines, this book will give you the techniques you need in a easy to follow step-by-step guide.

Starting with how to identify problems, and building on that with sections on monitoring, testing, and tuning, the recipes in this book will take you through many of the options available for performance tuning your application.

There are many considerations to make when trying to get the best performance out of the Oracle SOA Suite platform. This performance Cookbook will teach you the whole process of tuning JVM garbage collection and memory, tuning BPEL and BPMN persistence settings, and tuning the application server. This book focuses on bringing together tips on how to identify the key bottlenecks in the whole SOA Suite infrastructure, and how to alleviate them.

The Oracle SOA Suite 11g Performance Tuning Cookbook will ensure that you have the tools and techniques to get the most out of your infrastructure, delivering reliable, fast, and scalable services to your enterprise.

Authors

Matt Brasier

Matt Brasier is a professional services consultant with 10 years of experience tuning Enterprise Java applications. He has 9 years of experience working with Enterprise Java middleware, and has always focused on the performance aspects of application servers and SOA platforms. Matt has spoken at numerous technical conferences, including The Serverside Java Symposium and JUDCon.
Matt is the head of consulting at C2B2 Consulting Ltd., an independent middleware consultancy specializing in SOA and JEE, providing professional services on the leading Java middleware platforms. C2B2 is an Oracle Gold Partner with Application Grid Specialization.

Nicholas Wright

Nicholas Wright is a Java middleware consultant and technical evangelist with 9 years of experience from Embedded C real-time systems to Enterprise Java. He has served on a Java Community Process Expert Group, and spoken at conferences across the world.
Nick is a senior consultant at C2B2 Consulting Ltd., where he works with a wide range of commercial and open source JEE and SOA middleware platforms.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.