h1. Introduction
{section}
{column}
The container configuration is divided into several parts:
* an [environment configuration|#EnvironmentConfig] to set the right options of the JVM running the Petals ESB container,
* a [container configuration|#ContainerConfig] to set all parameters that are internal to the container (ie. that are not used by other containers),
* a [logging configuration|Logging in Petals] to configure the logging systems of the Petals ESB container
* the [topology|Topology Configuration] in which the container is running, to define other containers of the topology, and some public parameters of the container.
{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}
{anchor:EnvironmentConfig}
h1. Container environment configuration
The environment configuration aims to set the right options of the JVM. For example, it is in this configuration that you set the memory size of the JVM running your Petals ESB container.
Each installation archive comes with a default environment configuration:
|| Installation archive || Default environment configuration file ||
| ZIP archive | {{$PETALS_HOME/conf/env.sh}} |
| Debian package | {{/etc/petals-esb/default-env.sh}} |
For all installation, the default environment configuration file can be updated to adjust parameters to your environment. But for a Debian-based installation, it is recommended to create your own environment configuration and define it in the configuration of your Petals ESB container through the property {{petals.environment.config.file}}.
The default environment configuration comes with options to enable the SNMP agent of the JVM. Just uncomment them to enable it. This default SNMP configuration requires an ACL file. An ACL file is also provided by default.
{note}*Caution*: For a Debian-based installation, this default SNMP configuration can be used only by the system user '{{petals}}' because of the security required on the ACL file.{note}
{note}*Caution*: The environment variable JAVA_OPTS will always take precedence over the value present in {{$PETALS_HOME/conf/env.sh}} or {{/etc/petals-esb/default-env.sh}}. Nevertheless, both will be used.{note}
{anchor:ContainerConfig}
h1. Container configuration reference
The container configuration is located into the file {{server.properties}} and expressed as property (key/value).
A property value can be set using the value of another property as a variable using a placeholder mechanism, and you can add your own properties:
{code}
myserver.host=localhost
petals.topology.url=http://${myserver.host}/petals/${petals.container.name}/topology.xml
{code}
{note}
The property {{petals.environment.config.file}} does not accept placeholder.
{note}
{anchor:ContainerConfigRef}
h2. Container configuration reference
|| Parameter/Property name || Default value || Description ||
| {{petals.container.name}} | \- | Name of the container. *MUST* match a container name defined in the [topology|Topology Configuration].
\\
The name of the container can also be defined through the system property '{{petals.container.name}}'. See [System configuration|System configuration#env_sh] |
|| Paths || || ||
| {{petals.data.basedir}} | see [note 1|#default_value_data_basedir] | The root directory where the Petals ESB container will write its data |
| {{petals.repository.path}} | {{$\{petals.data.basedir}/repository}} | The absolute path of the Petals working area. |
| {{petals.work.path}} | {{$\{petals.data.basedir}/work}} | The absolute path of the Petals repository in which it holds its JBI configuration and can recover this configuration from it. |
| {{petals.container.log.config.file}} | The file '{{loggers.properties}}' located in the same path than the local container configuration, ie. {{server.properties}}. | Configuration file of the logging system. See [Logging in Petals|Logging in Petals] |
| {{petals.environment.config.file}} | {{/etc/petals-esb/default-env.sh}} | *This property is only available for Debian-based installation*. Configuration file of the environment running the Petals container. This configuration file is used to set JVM options. A relative file is accepted only for local container configuration URL (file://...), otherwise it must be an absolute path. For ZIP archive based installation, just update directly the file {{$PETALS_HOME/conf/env.sh}}. |
|| General || || ||
| {{petals.classloaders.isolated}} | {{true}} | If {{true}}, the classloaders of JBI components are fully isolated, ie. they have the system classloader parent instead of the container classloader. If {{false}}, the container classloader is the parent of the classloaders of JBI components. *Recommended value: {{true}}*.|
| {{petals.task.timeout}} | {{120000}} | The maximum duration, in milliseconds, of the processing of a life-cycle operation on a JBI
components and SAs (start, stop, ...). It prevents from hanging threads. |
| {{petals.exchange.validation}} | {{false}} | Flag to activate the control of exchange acceptance by target component when the NMR routes messages (see isExchangeWithConsumerOkay and isExchangeWithProviderOkay methods in JBI Component interface. |
|| Topology || || ||