Container Configuration

Introduction

The container configuration is divided into several parts:

  • an environment configuration to set the right options of the JVM running the Petals ESB container,
  • a container configuration to set all parameters that are internal to the container (ie. that are not used by other containers),
  • a logging configuration to configure the logging systems of the Petals ESB container
  • the topology in which the container is running, to define other containers of the topology, and some public parameters of the container.
Contributors
No contributors found for: authors on selected page(s)

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.

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.
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.

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:

myserver.host=localhost
petals.topology.url=http://${myserver.host}/petals/${petals.container.name}/topology.xml
The property petals.environment.config.file does not accept placeholder.

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.
The name of the container can also be defined through the system property 'petals.container.name'. See System configuration
Paths    
petals.data.basedir see note 1 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
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.xml2 URL of the topology definition.
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.

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.

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.

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.embedded-registry-overlay.* Petals ESB "Embedded Petals Registry Overlay"
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.