JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.
Tigase Administration Guide
JVM settings and recommendations
Sidebar
Prev
|
Up
|
Next
Additional resources
Sizing the Generations
About Java, parallel garbage collection and processor sets
GC Threads
GCViewer readme
Java HotSpot™ Virtual Machine Performance Enhancements
Java Garbage Collection handbook
Useful JVM Flags
Part 1 - JVM Types and Compiler Modes
Part 2 - Flag Categories and JIT Compiler Diagnostics)
Part 3 - Printing all XX Flags and their Values
Part 4 - Heap Tuning
Part 5 - Young Generation Garbage Collection
Part 6 - Throughput Collector
Part 7 - CMS Collector
Part 8 - GC Logging
Contents
Search
Tigase v7.1.2
New Minor Features & Behavior Changes
Input Buffer algorithm changed
TLS Buffer size reduced
Fixes
Tigase v7.1.1
AMP plugin has had some updates
Tigase v7.1.0
Major Changes
HTTP Component renamed
New JDK v8 required
Changes to Database Schemas
Presence Plugin Split
New Features & Components
New HTTP API
New Admin HTTP interface
Added support for XEP-0334
Kernel Bean Configurator has been Improved
Support for XEP-0352
One Certificate for multiple Vhosts
Maximum users setting for MUC
HTTP Rest API Support
Empty Nicknames
Offline Message Limits
Offline Message Sink
Adding Components to trusted list
Tigase Mailer Extension now Included
EventBus implemented
XEP-0191 Blocking Command Support added
Stream management now has new settings available for stream timeout
JVM Default configuration updated
Java Garbage Collection Settings have been improved
New Rest API added to obtain a JID login time
New init.properties properties
Connection Watchdog
Web Installer Setup Page now has restricted access
Offline Message Receipts Storage now Configurable
Account Registration Limits
Enable Silent Ignore on Packets Delivered to Unavailable Resources
Cluster Connections Improved
Cluster Connections Testing Implemented
Cluster Map implemented
New Licensing Procedures
Message Archive expanded to include non-body elements
New Ability to Purge Data from Unified Archive
Server Statistics Expanded
Force Redirection
Dual IP installtions
Error counting
New Database Disconnections Counter
New Known Cluster Statistic
New Documentation Structure
Full XML of last available presence may be saved to repository
Setting available to enable automatic subscriptions
Stacktrace on Shutdown
New logic handling re-delivery of packets
About Tigase XMPP Server
Robust and reliable
Security
Flexibility
Extensibility
Ease of Use
Quick Start Guide
Minimum Requirements
Contents
Installation Using GUI Installer
Prerequisites
Download the Installer
Run the jar File
Starting the Installation
JDK Selection
Installation Type Selection
Introduction To the Server
Choice of Base Directory
Packages selection
Basic Server Configuration
Verification of Database Connection and Performing DB Tasks
Finishing Installation
Running the Server
Installation as a Service
How to Check if the Server is Running
Installation Using Web Installer
Download and Extract
Start the Server
Verify Tigase is Running
Connect to the Web Installer
Step Through the Installation Process
Restart the Server
Windows Instructions for using Web Installer
Installing Using Console Installer
Installation Using the text-mode Installer
Requirements and Important Notice
Download the Installer
Run the jar File
Installation Steps
Initial Screen
JDK Selection
Actions Selection
Installer Info
Server Info
Server License
Server Location Selection
Selection of Packs to be Installed
Installation
Basic Configuration
Advanced Configuration
Database Configuration
Database Checking and Preparation
Installation Complete
Running the Sever
How to Check if the Server is Running
Manual Installation in Console Mode
Get the Binary Package
Unpack the Package
Prepare Configuration
Prepare Database
Start the Server
Check if it is Working
Windows Installation
MySQL Database Installation
Tigase Server Network Instructions
A Records
SRV Records
Tigase and Vhosts
Checking setup
Ports description
Tigase Script Selection
Configuration: For All Linux Distributions
Gentoo
Mandriva
Redhat
Debian
Running Tigase as a system service
Shutting Down Tigase
Shutdown statistics
Shutdown StackTrace Dump
Tigase Server Binary Updates
Configuration
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
Generations
Minor, Major and Full GC - optimizing
Settings for XMPP
GC settings worth considering
What to use with Machine x, y, z?
Server class machine (non-VM), > 16GB, >= 8 core CPU
VM machine, 8GB of RAM, 4 core CPU equivalent
VM machine with 4GB or less of RAM, and less than 4 core CPU equivalent
Additional resources
Session Manager
Mobile Optimizations
MobileV1
MobileV2
MobileV3
Disabling CSI
A note about Mobile Plugins
Thread Pool Counts
Security
XEP-0191 Support
Server Certificates
Creating and Loading the Server Certificate in pem Files
Server Certificates
Generating your Own Certificates
Installing/Loading Certificate To the Tigase Server
Certificate From Other Providers
Using one certificate for multiple domains
Tigase Server Configuration for 5.1.0 and older
Installing LetsEncrypt Certificates in Your Linux System
Including letsencrypt cert.pem
Custom Authentication Connectors
Tigase Auth Connector
Tigase Custom Auth Connector
Drupal Authentication
LDAP Authentication Connector
Configuration of SASL EXTERNAL
Packet Filtering
Domain Based Packet Filtering
Introduction
Configuration
Administration, Rules Management
Implementation
Access Control Lists in Tigase
Database Management
Recommended database versions
Database Preparation
dbSchemaLoader Utility
Operation & Variables
-Query function
Prepare the MySQL Database for the Tigase Server
Basic Setup
Configuring from MySQL command line tool
Configuring From the Linux Shell Command Line
Configuring MySQL for UTF-8 Support
Other MySQL Settings Worth Considering
Prepare the Derby Database for the Tigase Server
Basic Setup
General Approach
Connecting Tigase to database
Prepare the MS SQL Server Database for the Tigase Server
Basic Setup
Preparing MS SQL Server Instance
Configuration using MS SQL Server Management Studio
Using Wizards
Using Queries
Import Schema
Configuring from command line tool
Tigase configuration - init.properties
JDBC: jTDS vs MS JDBC driver
Prepare the PostgreSQL Database for the Tigase Server
Basic Setup
Configuring from PostgreSQL Command Line Tool
Configuring From the Linux Shell Command Line
Preparing Tigase for MongoDB
Dependencies
Configuration
Configuration of user repository for Tigase XMPP Server
Configuration for MUC
Configuration for PubSub
Configuration for Message Archiving
Schema Description
Tigase XMPP Server Schema
Hashed User Passwords in Database
Shortcut
Full Route
Create a Test User Account
Test User Authentication
Password Encoding Check
Password Encoding Change
Tigase Server and Multiple Databases
Importing User Data
Importing Existing Data
Connecting the Tigase Server to MySQL Database
Integrating Tigase Server with Drupal
Connecting to Drupal Database
Integrating Tigase Server With LibreSource
Short Introduction
How to set Tigase up
Migration From an old Tigase Installation to LibreSource
Data Migration
MySQL Database Use
MySQL Database Preparation
Server Configuration
User Data Import
PostgreSQL Database Use
PostgreSQL Database Preparation
Server Configuration
Schema Updates
Tigase Server Schema v7.1 Updates
FOR ALL USERS UPGRADING TO v7.1.0 FROM A v7.0.2 INSTALLATION
Tigase Schema Change for v7.1
Changes to Pubsub Schema
Tigase 5.1 Database Schema Upgrade
Derby Database Schema Upgrade for Tigase 5.1
MySQL Database Schema Upgrade for Tigase 5.1
PostgreSQL Database Schema Upgrade for Tigase 5.1
Tigase Database Minor but Useful Schema Change in Version 5.1.0
Tigase Server Version 4.x
MySQL Database Schema Upgrade for Tigase 4.0
Configuring the Tigase Server to Load a Component
StanzaSender
How it Works
FileTask
JDBCTask
Configuration
General StanzaSender parameters:
Tigase HTTP API
Requirements
Setup & Configuration
Advanced Configuration
Component Properties
Modules
Rest Module
DNS Webservice Module
Use of the HTTP API
Browser interface walk-through
Chat
Discovery
Management
Statistics
HTTP API Scripting
Properties
Properties Containing Closures
REST API & HTTP Guide
Setup & Configuration
Component Properties
Modules
Rest Module
dns-webservice
Usage Examples
Retrieving list of available ad-hoc commands
Executing ad-hoc commands
Sending any XMPP Stanza
Handling of request
Sending XMPP message with from set to HTTP API component a full JID
Sending XMPP message with from set to HTTP API component with a bare JID
Sending XMPP message with from set to a specified JID to a full JID
Sending messages through REST
Usage
Send XMPP stanza with from set to HTTP API component to bare JID
Send XMPP stanza with from set to HTTP API component to full JID
Send XMPP stanza with from set to specified JID
Avatar retrieval requests
Setting HTTP API Privacy Rules
New Rest API added to obtain a JID login time
Configuration
Usage
Scripting
Properties
Properties containing closures
Example Script
REST API & PubSub
Create a Node
Delete a node
Subscribe to a node
Unsubscribe from a node
Publish an item to a node
List Available Nodes
List Published Items on Node
Retrieve Published Item on Node
Other Example REST Commands and Documentation
Admin UI Guide
A Note about REST
Configuration
Example Scripts
Notifications
Other
Activate log tracker for a user
Add SSL certificate
Add listener script
Add Monitor Task
Add Monitor Timer Task
Add New Item - ext
Add New Item - Vhost
Change user inter-domain communication permission
Connections Time
Create Node
DNS Query
Default config - Pubsub
Default room config
Delete Monitor Task
Delete Node
Deleting ALL Nodes
Fix User’s Roster
Fix User’s Roster on Tigase Cluster
Get User Roster
Get any file
Get Configuration File
Get init.properties File
Get list available commands
Load test
Load Errors
New command script
OAuth Credentials
Pre-Bind BOSH user session
Publish item to node
Read ALL nodes
Rebuild database
Reload component repository
Remove an item
Remove command script
Remove listener script
Remove room
Retrieve items
S2S Bad State Connections
S2S Reset Bad State Connections
S2S Get CID Connection State
Subscribe to a node
Unsubscribe from node
Update item configuration
basic-conf
vhost-man
Update user roster entry
Update user roster entry extended version
Scripts
New Command Script
Remove Command Script
Statistics
Get User Statistics
Get Active User List
Get list of idle users
Get list of online users
Get number of active users
Get number of idle users
Get top active users
Users
Add User
Change User Password
Delete User
End user session
Get User Info
Get registered user list
Modify User
Tigase Web Client
Chat
Discovery
Management
Configuration
List server/component configuration
Manage active server components
Manage active server plugins
Notifications
Other
Activate log tracker for a user
Add SSL certificate
Add Monitor Task
Add Monitor Timer Task
Add New Item - ext
Add New Item - Vhost
Change user inter-domain communication permission
Connections Time
DNS Query
Default room config
Delete Monitor Task
Fix User’s Roster
Fix User’s Roster on Tigase Cluster
Get User Roster
Get any file
Get Configuration File
Get init.properties File
Load Errors
New command script - Monitor
New command script - MUC
OAUth credentials
Pre-Bind BOSH user session
Reload component repository
Scripts
Statistics
Get User Statistics
Get Active User List
Get list of idle users
Get list of online users
Get number of active users
Get number of idle users
Get top active users
Users
Add New User
Change user password
Delete user
Get User Info
Get registered user list
Modify User
Message Archiving Component
Installation
Download
Compile
Configuration
Saving Options
Usage
XEP-0136 Field Values
Manual Activation
Automatic Activation of MUC messages
Configuration
Searching for Messages
Example queries
Message Tagging Support
Activating Tagging
Usage
Tag Searching
Purging Information from Message Archive
Configuration of number of days in VHost
Advanced Message Processing - AMP XEP-0079
First of all: plugins:
Secondly: component:
Optional parameters:
PubSub Component
Configuration
Pubsub naming
Configure Roster Maxmimum size
AdHoc Commands
Create a Node
Delete a Node
Subscribe to a Node
Unsubscribe to a Node
Publish an item to a Node
PubSub Node Presence Protocol
Log out from PubSub Node
Retrieving list of all Node Subscribers
Store Full XML of Last Presence
Requirements
Offline Message Sink
Description
Configuration
Create node
Add sess-man as publisher
init.properties configuration
Usage
Managing Subscriptions
Add new Subscriber
Remove Subscriber
PubSub Schema Changes
PubSub 3.2.0 Changes
PubSub 3.1.0 Changes
PubSub v3.0.0 Changes
Prepare Old Database for Upgrade
Update Tigase PubSub Component
Load New Schema
Execute Migration Utility
Finish
Server Monitoring
Setting Up Remote Monitoring in the Server
What You Need
Activation
Security
JMX
SNMP
HTTP
Retrieving statistics from the server
Retrieving statistics using XMPP
Psi XMPP Client
Retrieving statistics using JMX
JConsole
StatsDumper.groovy
Statistics description
Statistics common to components
add-script last {interval}
Average processing time on last 100 runs [ms]
Bytes received
Bytes sent
del-script last {interval}
Last {interval} packets
list-commands last {interval}
{IN|OUT|Total} queue overflow
{in|out} queue wait: {priority}
{IN|OUT}_QUEUE processed {type}
max queue size
Open Connections
Packets received
Packets sent
Processed packets thread: {in|out}
processing threads
Socket overflow
Total {in|out} queues wait
Total queues overflow
Waiting to send
Watchdog runs
Watchdog stopped
Watchdog tests
AMP
bosh
Bosh sessions
pre-bind-session last {interval}
c2s
cl-comp
adhoc-command/cluster-nodes-list last {interval}
adhoc-command/force-stop-service last {interval}
adhoc-command/service-keys last {interval}
adhoc-command/sim-serv-stopped {interval}
Average compression ratio
Average decompression ratio
Known cluster nodes
Last {interval} disconnects
Service connected time-outs
Total disconnects
eventbus
message-archive
Removal time of expired messages (avg)
message-router
CPUs no
CPU usage
Free Heap
Free NonHeap
HEAP usage [%]
Local hostname
Load average
Max Heap mem
Max NonHeap mem
NONHEAP usage [%]
Threads count
Uptime
Used Heap
Used NonHeap
monitor
adhoc-command/load-errors last {interval}
muc
adhoc-command/remove-room last {interval}
adhoc-command/default-room-config last {interval}
proxy
Average transfer size in KB
KBytes transferred
Open streams
Transfers completed
pubsub
Added new nodes
adhoc-command/delete-item last {interval}
adhoc-command/delete-node last {interval}
adhoc-command/list-items last {interval}
adhoc-command/list-nodes last {interval}
adhoc-command/publish-item last {interval}
adhoc-command/retrieve-item last {interval}
AdHocConfigCommandModule last {interval}
Affiliations count (in cache)
Average DB write time [ms]
cache/hits last {interval}
cache/hit-miss ratio per {interval}
cache/requests last {interval}
Cached nodes
CapsModule
db/GetNodeItems requests last {interval}
DefaultConfigModule last {interval}
DiscoverInfoModule last {interval}
DiscoverItemsModule last {interval}
JabberVersionModule last {interval}
ManageAffiiationsModule last {interval}
ManageSubscriptionModule last {interval}
NodeConfigModule last {interval}
NodeCreateModule last {interval}
NodeDeleteModule last {interval}
PresenceCollectorModule last {interval}
PendingSubscriptionModule last {interval}
PresenceNotifierModule last {interval}
PublishItemModule last {interval}
PurgeItemsModule last {interval}
Repository writes
RetractItemModule last {interval}
RetrieveAffiliationsModule last {interval}
RetrieveItemsModule last {interval}
RetrieveSubscriptionsModule last {interval}
SubscribeNodeModule last {interval}
Subscription count (in cache)
Total writing time
UnsubscribeNodeModule last {interval}
Update subscription calls
XmppPingModule last {interval}
repo-factory
repo-factory/Number of data repositories
repo-factory/repository {jdbclocation} connections count
repo-factory/repository {jdbclocation} reconnections
repo-factory/repository {jdbclocation} failed reconnections
rest
s2s
adhoc-command/get-cid-connection last {interval}
adhoc-command/s2s-bad-state-conns last {interval}
adhoc-command/reset-bad-state-conns last {interval}
CIDs number
Total DB keys
Total {incoming|outgoing}
Total {incoming|outgoing} TLS
Total outgoing handshaking
Total control waiting
Total waiting
sess-man
Active user connections
adhoc-command/connection-time last {interval}
adhoc-command/http://jabber.org/protocol/admin#add-user last {interval}
adhoc-command/http://jabber.org/protocol/admin#add-user-tracker last {interval}
adhoc-command/http://jabber.org/protocol/admin#announce last {interval}
adhoc-command/http://jabber.org/protocol/admin#change-user-password last {interval}
adhoc-command/http://jabber.org/protocol/admin#delete-user last {interval}
adhoc-command/http://jabber.org/protocol/admin#end-user-session last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-active-users last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-active-user-num last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-idle-users last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-idle-users-num last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-online-users-list last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-top-active-users last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-registered-users-list last {interval}
adhoc-command/http://jabber.org/protocol/admin#get-user-roster last {interval}
adhoc-command/http://jabber.org/protocol/admin#remove-user last {interval}
adhoc-command/http://jabber.org/protocol/admin#user-stats last {interval}
adhoc-command/get-user-info last {interval}
adhoc-command/modify-user last {interval}
adhoc-command/oauth-credentials last {interval}
adhoc-command/roster-fixer last {interval}
adhoc-command/roster-fixer-cluster last {interval}
adhoc-command/user-domain-perm last {interval}
adhoc-command/user-roster-management last {interval}
adhoc-command/user-roster-management-ext last {interval}
Authentication timeouts
Closed user connections
default-handler/Invalid registrations
default-handler/Registered users
Maximum user connections
Maximum user sessions {today|yesterday}
Registered accounts
Open user connections
Open user sessions
Total user connections
Total user sessions
presence/Users status changes
sess-man/Processor
vhost-man
Checks is anonymous domain
Checks: is local domain
Get components for local domain
Get components for non-local domain
Number of Vhosts
ws2s
Eventbus
Setup
How it Works
Available Tasks
Configuration
init.properties
Subscription Limitations
Configuration via XMPP
Getting the Message
XMPP notification
Sample notification from Eventbus
Mailer Extension
Server to Server Protocol Settings
Number of Concurrent Connections
Connection Throughput
Maximum Packet Waiting Time and Connection Inactivity Time
Custom Plugin: Selecting s2s Connection
Tigase MUC Component
Configuration Options
History Providers Parameters
Public log
Modules
Room Configuration options
Tigase Load Balancing
Available Implementations
Configuration Options
SeeOtherHostDB
SeeOtherHostDualIP
EventBus as a source of information
Auxiliary setup options
Enforcing redirection
Configuring hostnames
External Component Configuration
Basic Configuration Options (External Component)
Simple Case
More External Components/Domains
More TCP/IP Ports
Outgoing Connections
Specifying Protocol
Load Balancer Plugin
Tigase as an External Component
A Simple Case - MUC as an External Component
More Components
Load Balancing External Components in Cluster Mode
Load Balancing External Component
External Component and Cluster
Client to Server Communication
Configuration
Resumption timeout
Packet Redelivery
Socks 5 Component
Installation
Database Preparation
Edit Existing Database
Create New Database
Configuration
verifier-class
LimitsVerifier
DummyVerifier
socks5-repo-cls
repo-url
verifier-params
remote-addresses
Port settings
Database usage for specific settings
Example init.properties block
Virtual Hosts in Tigase Server
Specification for ad-hoc Commands Used to Manage Virtual Domains
Reloading the Domains List from the Database
Adding a New Domain or Updating Existing One
Removing a Virtual Domain From the Server
Virtual Components for the Cluster Mode
Using Tigase - Applies to All Tigase Server Versions
Tigase Log Guide
install.log
derby.log
config-dump.properties
tigase.log.#
statistics.log.#
tigase.pid
tigase-console.log
Log File Location
Debuging Tigase
The easy way - init.properties file
The more difficult but more powerful - tigase.xml file (only applicable to versions before 5.0.0)
Basic System Checks
Add and Manage Domains
Adding a New Domain
Adding a New User
SSL Certificate Management
Presence Forwarding
Register Your Own XMPP Domain
Tigase and PyMSN-t Transport
PyMSN-t - /etc/jabber/pymsn-t.xml file
PyMSN-t - run command
PyMSN-t - expected output
Tigase - etc/tigase.conf file
Tigase - run command
Tigase - expected output
Two or More SessionManagers
Watchdog
Setup
Watchdog Configuration
Logic
Testing
Tips and Tricks
Tigase Tip: Checking the Runtime Environment
Best Practices for Connecting to Tigase XMPP server From Web Browser
BOSH
Tip #1 - BOSH in Cluster Mode Without Load Balancer
WebSocket
Tip #1 - Encrypted WebSocket Connection
Tip #2 - Encrypted WebSocket Connection - Dealing With Multiple VHosts
Command Line Admin Tools
Configuration Management Tool
Scripting support in Tigase
Scripting Introduction - Hello World!
Loading Script at Run Time
Executing Script
Interaction in Scripts
Automatic Scripts Loading at Startup Time
Tigase Scripting Version 4.4.x Update for Administrators
Tigase and Python
Installation
Writing Python Scripts
Configuration Wizards
Offline Messages
Offline Message Limits
User Limit
Handling of Offline Messages Exceeding Limits
Setting of Limits by User
Example of Setting Limit of Stored Offline Messages to 10
Example of Disabling Offline Message Limit
Storing offline messages without body content
Filtering of offline storage
Disabling Offline Messages
Licensing
Registering for a License
Automatic Registration
Web Portal
Generating Installation ID
Obtaining a Server Code
Obtaining license file
What happens if I do not use a license file or it is expired?
Demo mode
Statistics Sent
Unauthorized use
Manual mode
Tigase Advanced Options
Enabling Support for storing offline messages without body content
Enabling Empty Nicknames
Account Registration Limits
Enable Silent Ignore on Packets Delivered to Unavailable Resources
Mechanism to count errors within Tigase
Including stream errors
Stream resumption default & max-timeout
Tigase Clustering
Configuration
Custom Ports
Custom Port Configuration
Multi-node configuration
Traffic Control
cm-ht-traffic-throttling
cm-see-other-host
Old configuration method
Specifying Specific nodes
Password and Port configuration
Checking Cluster Connections
Established connections
Cluster nodes connected (using XMPP)
Psi XMPP Client
Anonymous Users & Authentication
Anonymous Authentication
Anonymous User Features
Reconnection on Anonymous
Search Highlighter (On/Off)