This mechanisms matches internal Tigase cluster nodes against the lookup table to provide matching and relevant redirection
hostname/IP. By default internal Tigase tig_cluster_nodes
table is used (and appropriate repository implementation will be used).
To enable this redirection mechanism following configuration / class should be used. Note that for global use, all connection managers must have the same class defined. You can define each connection manager individually.
bosh { seeOtherHost (class: tigase.server.xmppclient.SeeOtherHostDualIP) {} } c2s { seeOtherHost (class: tigase.server.xmppclient.SeeOtherHostDualIP) {} } ws2s { seeOtherHost (class: tigase.server.xmppclient.SeeOtherHostDualIP) {} }
It offers following configuration options:
data-source
- configuration of the source of redirection information - by default internal Tigasetig_cluster_nodes
table will be used (and appropriate repository implementation will be used); alternatively it’s possible to useeventbus
source;db-url
- a JDBC connection URI which should be used to query redirect information; if not configureduser-db-uri
will be used;get-all-data-query
- a SQL helper query which should return all redirection data from database;get-all-query-timeout
- allows to set timeout for executed queries;fallback-redirection-host
- if there is no redirection information present (i.e. secondary hostname is not configured for the particular node) redirection won’t be generated; with this it’s possible to configure fallback redirection address.
All options are configured or on per-component basis:
<connector> { 'cm-see-other-host' { 'data-source' = '<class implementing tigase.server.xmppclient.SeeOtherHostDualIP.DualIPRepository>' 'db-url' = 'jdbc:<database>://<uri>' 'fallback-redirection-host' = '<hostname>' 'get-all-data-query' = 'select * from tig_cluster_nodes' 'get-all-query-timeout' = 10 } }