View Source

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 || || ||
| {{petals.topology.url}} | {{topology.xml}}^[2|#default_value_topology_xml]^ | URL of the [topology definition|Topology Configuration]. |
| {{petals.topology.passphrase}} | {{-}} | Pass-phrase used as security to get sensible information of other Petals nodes of the topology as JMX credentials from this node. |
| {{petals.topology.dynamic.lock.wait.time}} | {{30}} | Waiting time, in seconds, to acquire the dynamic topology lock distributed over all Petals nodes of the domain. |
| {{petals.topology.pinger.start-delay}} | {{2000}} | Waiting time, in milliseconds, before to start the topology pinger that checks if remote containers are reachable. |
| {{petals.topology.pinger.period-delay}} | {{5000}} | Delay, in milliseconds, between two runs of the topology pinger that checks if remote containers are reachable. |
|| Router || || ||
| {{petals.router.strategy}} | {{highest,3,2,1}} | The strategy of the router. |
| {{petals.router.send.attempt}} | {{2}} | Defines the number of attempt to send a message to an endpoint. Several attempts can be done when there is transport failure during the convey of a message. |
| {{petals.router.send.delay}} | {{1000}} | The delay, in milliseconds, between the send attempts. |
|| Transporter || || ||
| {{petals.transport.queue.max-size}} | {{10000}} | Queue size, in message number, of the message exchange transporter. If the queue is full, new message exchange can rejected. |
| {{petals.transport.queue.offering.timeout}} | {{2500}} | How long to wait, in milliseconds, to put the message exchange in the queue before to reject it. |
|| Remote Transporter || || ||
| {{petals.transport.tcp.receivers.listening.interface}} | {{0.0.0.0}} | The network interface Petals will listen to to receive exchange with the remote transporter. To listen on all network interfaces available on the host, use the value '{{0.0.0.0}}' |
| {{petals.transport.tcp.receivers}} | {{10}} | The number of messages that can be received by the remote transporter at the same time. |
| {{petals.transport.tcp.senders}} | {{10}} | The number of messages that can be sent by the remote transporter at the same time, per remote container. |
| {{petals.transport.tcp.connection.timeout}} | {{5000}} | The timeout, in milliseconds, to establish a connection to a remote Petals node, for a sender. |
| {{petals.transport.tcp.send.timeout}} | {{5000}} | The timeout, in milliseconds, to send a TCP packet to a remote Petals node, for a sender. |
| {{petals.transport.tcp.send.evictor.delay}} | {{60000}} | The delay, in milliseconds, before running the eviction thread removing unused message exchange senders. |
| {{petals.transport.tcp.send.evictable.delay}} | {{60000}} | The delay, in milliseconds, before an idle 'message exchange sender' is set evictable. |
|| Persistence Service || || ||
| {{petals.persistence.duration}} | {{3600000}} | The duration, in milliseconds, of temporary persisted data, such as Message Exchange. |
| {{petals.persistence.fetch-size}} | {{10}} | The persistence SQL request fetch size, in rows. |
| {{petals.persistence.db.driver}} | {{org.hsqldb.jdbcDriver}} | The JDBC driver of the persistence service. |
| {{petals.persistence.db.url}} | {{jdbc:hsqldb:file:${{petals.work.path}/persistenceService;shutdown=true}} | The JDBC URL of the persistence service. |
| {{petals.persistence.db.user}} | {{sa}} | The JDBC username of the persistence service. |
| {{petals.persistence.db.password}} | {{<empty>}} | The JDBC password of the persistence service. |
|| System Recovery Service || || ||
| {{petals.recovery.corepoolsize}} | {{5}} | The core size of the thread pool used to recover JBI artifacts of the current container. |
| {{petals.recovery.keepalivetime}} | {{60}} | The keep alive time, in seconds, of the thread pool used to recover JBI artifacts of the current container. Note: the system recovery service is stopped (and thread pool shutdown) when the system recovery is finished. |

{anchor:default_value_data_basedir}+Note 1:+ If the container configuration, ie. {{server.properties}}, is defined by a file-based URL, the default value is the directory '{{data}}' contained in the parent directory of the directory containing the file 'server.properties'. Otherwise, no default value is defined and a value *MUST* be provided.

{anchor:default_value_topology_xml}+Note 2:+ If the container configuration, ie. {{server.properties}}, is defined by a file-based URL, the default value is {{topology.xml}} in the same directory than the container configuration. Otherwise, no default value is defined and a value *MUST* be provided.

h2. Extensions configuration

Other parameters associated to Petals ESB extensions can be found in the file {{server.properties}}:
|| Property name pattern || Extension ||
| {{petals.autoloader.*}} | [Petals ESB "Autoloader"|Petals ESB "Autoloader"#Configuration] |
| {{petals.embedded-registry-overlay.*}} | [Petals ESB "Embedded Petals Registry Overlay"|Petals ESB "Embedded Petals Registry Overlay"#Configuration]|