Chapter 5. Configuration

Table of Contents

Tigase XMPP Server init.properties Configuration
Startup File for tigase.sh - tigase.conf
Linux Settings for High Load Systems
fs.file-max
net.ipv4.ip_local_port_range
TCP_keepalive
/etc/sysctl.conf
nofile
su and init script
Configuration Storage Options in Tigase
Default Behavior
Storing Configuration in SQL Database
Reverting To the Old Behavior
Going Further
Message Router Implementation is Configurable Too
JVM settings and recommendations
Heap Sizing
GC settings
What to use with Machine x, y, z?
Additional resources
Session Manager
Mobile Optimizations
Thread Pool Counts

When the user tries to setup the client for the first time he comes across 2 configuration files: tigase.conf and init.properties in the /etc folder. Here is a brief explanation what all those files are about and in other sections you can learn all the details needed to configure the server.

  1. init.properties file is a simple text file with server parameters in form: key = value. When the XML configuration file is missing the Tigase server reads init.properties file and uses parameters found there as defaults for generation of the XML file. Therefore if you change the init.properties file you normally have to stop the server, remove the XML file and start the server again. All the settings from the init.properties are read and applied to the XML configuration. The properties file is easy to read and very safe to modify. At the moment this is the recommended way change the server configuration.
  2. tigase.conf is the Tigase server startup configuration. It is actually not used by the server itself. It rather contains operating system settings and environment parameters to correctly run the Java Virtual Machine. It is only useful on the unix-like systems with Bash shell. If you run the server on MS Windows systems tigase.bat and wrapper.conf files are used instead. The tigase.conf file is read and loaded by the scripts/tigase.sh shell script which also scans the operating system environment for Java VM and other tools needed.

Tigase XMPP Server init.properties Configuration

init.properties is a slightly extended version of the Java properties file with (key, value) pairs.

Comment lines will have as it’s first non-white space ASCII character either '#' or '!'.

The key starts with first non-white space ASCII character and ends on either first white space ASCII character or either of '=' or ':'. Therefore if your key contains any of '=', ':' or white space characters you have to escape them with backslash \'\': \: or \=.

All examples below specify 'vhosts' as a key and 'test-a, test-b, test-c' as a value:

vhosts=test-a, test-b, test-c
vhosts : test-a, test-b, test-c
    vhosts     =     test-a, test-b, test-c

Possible types are:

  • [S] (or nothing) - Characters string: 'abcdef'
  • [s] - String array: 'abcdef, ghaijk, lmnopq'
  • [B] - Boolean: 'true' or 'false'
  • [b] - Boolean array: 'true, true, false'
  • [L] - Long number: 1234567890
  • [l] - Long array: '12334, 45435, 45645'
  • [I] - Integer number: 123456
  • [i] - Integer array: '123, 456, 678'

There are lots of parameters which have broader meaning than just one property. Some of them affect many configuration settings or can generate whole sections in the XML file. Most of them starts with \'--' double hyphen. Please note, each property put in the init.properties file starting with \'--' becomes a JVM system property (without \'--' at the beginning).

Reference the property guide for a description of properties.

Property name: --admins

Property name: --auth-db

Property name: --auth-db-uri

Property name: --auth-domain-repo-pool

Property name: --auth-repo-pool

Property name: --auth-repo-pool-size

Property name: --bind-ext-hostnames

Property name: --bosh-close-connection

Property name: --bosh-extra-headers-file

Property name: --cl-conn-repo-class

Property name: --client-access-policy-file

Property name: --cluster-connect-all

Property name: --cluster-mode

Property name: --cluster-nodes

Property name: --cm-ht-traffic-throttling

Property name: --cm-see-other-host

Property name: --cm-traffic-throttling

Property name: --cmpname-ports

Property name: --comp-class

Property name: --comp-name

Property name: --cross-domain-policy-file

Property name: --data-repo-pool-size

Property name: --debug

Property name: --debug-packages

Property name: --domain-filter-policy

Property name: --elements-number-limit

Property name: --ext-comp

Property name: --extcomp-repo-class

Property name: --external

Property name: --hardened-mode

Property name: --max-queue-size

Property name: --monitoring

Property name: --net-buff-high-throughput

Property name: --net-buff-standard

Property name: --new-connections-throttling

Property name: --nonpriority-queue

Property name: --queue-implementation

Property name: --roster-implementation

Property name: --s2s-ejabberd-bug-workaround-active

Property name: --s2s-secret

Property name: --s2s-skip-tls-hostnames

Property name: --script-dir

Property name: --sm-cluster-strategy-class

Property name: --sm-plugins

Property name: --sm-threads-pool

Property name: --ssl-certs-location

Property name: --ssl-container-class

Property name: --ssl-def-cert-domain

Property name: --stats-history

Property name: --stringprep-processor

Property name: --test

Property name: --tigase-config-repo-class

Property name: --tigase-config-repo-uri

Property name: --tls-jdk-nss-bug-workaround-active

Property name: --trusted

Property name: --user-db

Property name: --user-db-uri

Property name: --user-domain-repo-pool

Property name: --user-repo-pool

Property name: --user-repo-pool-size

Property name: --vhost-anonymous-enabled

Property name: --vhost-max-users

Property name: --vhost-message-forward-jid

Property name: --vhost-presence-forward-jid

Property name: --vhost-register-enabled

Property name: --vhost-tls-required

Property name: --virt-hosts

Property name: --watchdog_delay

Property name: --watchdog_ping_type

Property name: --watchdog_timeout

Property name: config-type