View Source

{section}
{column}

h1. Introduction

In this section, you will find:
* how to adjust your system to get the best of Petals ESB,
* and how to adjust Petals ESB to your system.

{column}

{column:width=35%}
{panel:title=Table of contents}{toc:outline=true}{panel}
{panel:title=Contributors}{contributors:order=name|mode=list|showAnonymous=true|showCount=true|showLastTime=true}{panel}
{column}

{section}

h1. Adjusting your system to Petals

Adjusting your system is required only for a production usage to get the best performances and scalability. First, see the [system requirements|Production Requirements].

h2. Backupping a Petals ESB container

A Petals ESB container does not really need a backup of it's data. A Petals ESB container can be restored from a fresh re-installation, except log files. That's why it is more important to reduce the probability of re-installation than backup Petals data. And if a re-installation is needed, it should be as fast as possible to reduce the downtime of the Petals ESB container.

h2. Reducing probability of re-installation

Installing Petals ESB container on a filesystem running on system RAID prevents incidents as HDD crash.
Installing Petals ESB container using Debian packages can reduce incidents as file deletions by mistake, thanks to the system user/group '{{petals/petals}}'

h2. Re-installing as fast as possible

To have a Petals ESB container re-installation as fast as possible, it should be scripted, including for example:
* [installation of Petals ESB container through Debian packages|Installing Petals ESB using the Debian packages],
* generation of Petals ESB container configuration files,
* a [Petals CLI script|petalscomponents:Petals CLI SNAPSHOT] to deploy shared-libraries, components and services.

h2. Preventing the file system space error

It is possible to prevent Petals ESB container errors due to file system space errors, as no space left on a file system, as following:
* Install the Petals ESB container using the Debian packages, so the Petals ESB container will be installed on the main file system of your operating system.
* Create 3 others file system dedicated to log files of Petals ESB:
** one for the main log file,
** one for the monitoring log file,
** one for the dumps of monitoring traces.
{gliffy:name=Log filesystems|size=L|version=4}

{note}This configuration requires to [change the default logging configuration|petalsesbsnapshot:Logging in Petals].{note}



{color:red}TODO:{color}
** {color:red}select an efficient journaling [filesystem|http://en.wikipedia.org/wiki/File_system] to write small files to store MONIT log files and payload dumps,{color}
** {color:red}select an efficient journaling filesystem to write big files to store the global log file.{color}

h1. Adjusting Petals ESB to your system

Several system parameters can be set to the Java virtual machine running Petals ESB. These parameters must be set in the environment file, ie. {{$PETALS_HOME/conf/env.sh|bat}}:
{code}
# JVM memory sizing
PETALS_JAVA_OPTS="$PETALS_JAVA_OPTS -Xmx1024m -XX:MaxPermSize=256m"

...
{code}

{tip}
If Petals ESB was installed using Debian packages, the environement file is defined by the property '{{petals.environment.config.file}}' of the local container configuration, ie. {{server.properties}}. The default value of the property is {{/etc/petals-esb/default-env.sh}}.
{tip}
# if not defined, the file.

By default, Petals ESB comes with the following adjustments:
* JVM heap size: 1Go,
* JVM perm size: 256Mo,
* TCP/IP v4 is used preferentially, instead of TCP/IP v6.

h2. Adapting Petals ESB to the IP Network Stack

On some machine, the network IPv4/IPv6 dual-stack is available.
It may be enabled, even if the network is configured to be an IPv4 network.

Besides, by default, the JVM uses IPv6 if it is available.
In this case, for performances reasons, the Petals ESB startup script forces the usage of the IPv4 stack.

If your network is a full IPv6 network, you must update the environnement configuratin file, ie. {{$PETALS_HOME/conf/env.sh|bat}}, and remove the option *-Djava.net.preferIPv4Stack=true* or set it to *{{false}}*.
{code}
# If TCP/IPv4 and TCP/IPv6 are available on the host, we prefer TCP/IPv4
PETALS_JAVA_OPTS="$PETALS_JAVA_OPTS -Djava.net.preferIPv4Stack=false"
{code}

{info}
More information on network properties of the JVM can be found on [Oracle's web site|http://download.oracle.com/javase/6/docs/technotes/guides/net/properties.html].
{info}