tigase.cluster
Class ClusterConnectionManager

java.lang.Object
  extended by tigase.server.BasicComponent
      extended by tigase.server.AbstractMessageReceiver
          extended by tigase.server.ConnectionManager<XMPPIOService<Object>>
              extended by tigase.cluster.ClusterConnectionManager
All Implemented Interfaces:
ClusteredComponentIfc, Configurable, RepositoryChangeListenerIfc<ClusterRepoItem>, XMPPService, IOServiceListener<XMPPIOService<Object>>, MessageReceiver, ServerComponent, StatisticsContainer, VHostListener, XMPPIOServiceListener<XMPPIOService<Object>>

public class ClusterConnectionManager
extends ConnectionManager<XMPPIOService<Object>>
implements ClusteredComponentIfc, RepositoryChangeListenerIfc<ClusterRepoItem>

Class ClusterConnectionManager Created: Tue Nov 22 07:07:11 2005

Version:
$Rev$
Author:
Artur Hefczyc

Nested Class Summary
 
Nested classes/interfaces inherited from class tigase.server.ConnectionManager
ConnectionManager.LIMIT_ACTION
 
Field Summary
static String CLCON_REPO_CLASS_PROP_KEY
          Field description
static String CLCON_REPO_CLASS_PROP_VAL
          Field description
static String CLCON_REPO_CLASS_PROPERTY
          Field description
static String CLUSTER_CONNECTIONS_PER_NODE_PAR
          Field description
static String CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY
          Field description
static int CLUSTER_CONNECTIONS_PER_NODE_VAL
          Field description
static String CLUSTER_CONTR_ID_PROP_KEY
          Field description
static String COMPRESS_STREAM_PROP_KEY
          Field description
static boolean COMPRESS_STREAM_PROP_VAL
          Field description
static String CONNECT_ALL_PAR
          Field description
static String CONNECT_ALL_PROP_KEY
          Field description
static boolean CONNECT_ALL_PROP_VAL
          Field description
static String IDENTITY_TYPE_KEY
          Field description
static String IDENTITY_TYPE_VAL
          Field description
 String[] PORT_IFC_PROP_VAL
          Field description
static String PORT_LOCAL_HOST_PROP_KEY
          Field description
static String PORT_ROUTING_TABLE_PROP_KEY
          Field description
static String RETURN_SERVICE_DISCO_KEY
          Field description
static boolean RETURN_SERVICE_DISCO_VAL
          Field description
static String SECRET_PROP_KEY
          Field description
static String XMLNS
          Field description
 
Fields inherited from class tigase.server.ConnectionManager
connectionDelay, HT_TRAFFIC_THROTTLING_PROP_KEY, HT_TRAFFIC_THROTTLING_PROP_VAL, LAST_MINUTE_BIN_LIMIT_PROP_VAL, LAST_MINUTE_PACKETS_LIMIT_PROP_VAL, MAX_INACTIVITY_TIME, MAX_RECONNECTS_PROP_KEY, net_buffer, NET_BUFFER_HT_PROP_KEY, NET_BUFFER_HT_PROP_VAL, NET_BUFFER_PROP_KEY, NET_BUFFER_ST_PROP_KEY, NET_BUFFER_ST_PROP_VAL, PORT_CLASS_PROP_KEY, PORT_IFC_PROP_KEY, PORT_KEY, PORT_REMOTE_HOST_PROP_KEY, PORT_REMOTE_HOST_PROP_VAL, PORT_SOCKET_PROP_KEY, PORT_TYPE_PROP_KEY, PORTS_PROP_KEY, PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_KEY, ST_TRAFFIC_THROTTLING_PROP_VAL, TLS_PROP_KEY, TLS_REQUIRED_PROP_KEY, TLS_REQUIRED_PROP_VAL, TLS_USE_PROP_KEY, TLS_USE_PROP_VAL, TOTAL_BIN_LIMIT_PROP_VAL, TOTAL_PACKETS_LIMIT_PROP_VAL, TRAFFIC_THROTTLING_PROP_KEY, WHITE_CHAR_ACK_PROP_KEY, WHITE_CHAR_ACK_PROP_VAL, XMPP_ACK_PROP_KEY, XMPP_ACK_PROP_VAL
 
Fields inherited from class tigase.server.AbstractMessageReceiver
HOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SCHEDULER_THREADS_PROP_KEY, SECOND
 
Fields inherited from class tigase.server.BasicComponent
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AMP_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK
 
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
 
Constructor Summary
ClusterConnectionManager()
           
 
Method Summary
 Map<String,Object> getDefaults(Map<String,Object> params)
          Method description
protected  int[] getDefPlainPorts()
          Method description
protected  String getDefTrafficThrottling()
          Method description
 String getDiscoCategoryType()
          Method description
 String getDiscoDescription()
          Method description
protected  long getMaxInactiveTime()
          Method getMaxInactiveTime returns max keep-alive time for inactive connection.
protected  Integer getMaxQueueSize(int def)
          Method description
protected  Map<String,Object> getParamsForPort(int port)
          Method description
 void getStatistics(StatisticsList list)
          Method description
protected  XMPPIOService<Object> getXMPPIOServiceInstance()
          Method description
 int hashCodeForPacket(Packet packet)
          This method can be overwritten in extending classes to get a different packets distribution to different threads.
 void initBindings(Bindings binds)
          Method description
protected  boolean isHighThroughput()
          Method description
 void itemAdded(ClusterRepoItem repoItem)
          Method description
 void itemRemoved(ClusterRepoItem item)
          Method description
 void itemUpdated(ClusterRepoItem item)
          Method description
 void nodeConnected(String node)
          Method description
 void nodeDisconnected(String node)
          Method description
 int processingInThreads()
          Method description
 int processingOutThreads()
          Method description
 void processOutPacket(Packet packet)
          Method description
 void processPacket(Packet packet)
          Method description
 Queue<Packet> processSocketData(XMPPIOService<Object> serv)
          Method description
 void reconnectionFailed(Map<String,Object> port_props)
          Method description
protected  void serviceConnected(XMPPIOService<Object> serv)
          Method description
 void serviceStarted(XMPPIOService<Object> serv)
          Method description
 boolean serviceStopped(XMPPIOService<Object> service)
          Method description
 void setClusterController(ClusterControllerIfc cl_controller)
          Method description
 void setProperties(Map<String,Object> props)
          Method description
 void tlsHandshakeCompleted(XMPPIOService<Object> service)
          Method description
 void updateConnectionDetails(Map<String,Object> port_props)
          Method description
protected  boolean writePacketToSocket(Packet p)
          Method description
 void xmppStreamClosed(XMPPIOService<Object> serv)
          Method description
 String xmppStreamOpened(XMPPIOService<Object> service, Map<String,String> attribs)
          Method description
 
Methods inherited from class tigase.server.ConnectionManager
addWaitingTask, checkHighThroughputProperty, checkTrafficLimits, countIOServices, doForAllServices, everyMinute, getDefSSLPorts, getServiceId, getServiceId, getUniqueId, getXMPPIOService, getXMPPIOService, initializationCompleted, isTlsWantClientAuthEnabled, packetsReady, release, setName, stop, writePacketsToSocket, writePacketToSocket, writePacketToSocket, writeRawData
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacket, addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processPacket, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent, start
 
Methods inherited from class tigase.server.BasicComponent
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoFeatures, getDiscoInfo, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesLocalDomains, handlesNameSubdomains, handlesNonLocalDomains, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface tigase.server.ServerComponent
getComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
 
Methods inherited from interface tigase.server.MessageReceiver
getDefHostName
 

Field Detail

CLCON_REPO_CLASS_PROP_KEY

public static final String CLCON_REPO_CLASS_PROP_KEY
Field description

See Also:
Constant Field Values

CLCON_REPO_CLASS_PROP_VAL

public static final String CLCON_REPO_CLASS_PROP_VAL
Field description

See Also:
Constant Field Values

CLCON_REPO_CLASS_PROPERTY

public static final String CLCON_REPO_CLASS_PROPERTY
Field description

See Also:
Constant Field Values

CLUSTER_CONNECTIONS_PER_NODE_PAR

public static final String CLUSTER_CONNECTIONS_PER_NODE_PAR
Field description

See Also:
Constant Field Values

CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY

public static final String CLUSTER_CONNECTIONS_PER_NODE_PROP_KEY
Field description

See Also:
Constant Field Values

CLUSTER_CONNECTIONS_PER_NODE_VAL

public static final int CLUSTER_CONNECTIONS_PER_NODE_VAL
Field description

See Also:
Constant Field Values

CLUSTER_CONTR_ID_PROP_KEY

public static final String CLUSTER_CONTR_ID_PROP_KEY
Field description

See Also:
Constant Field Values

COMPRESS_STREAM_PROP_KEY

public static final String COMPRESS_STREAM_PROP_KEY
Field description

See Also:
Constant Field Values

CONNECT_ALL_PAR

public static final String CONNECT_ALL_PAR
Field description

See Also:
Constant Field Values

CONNECT_ALL_PROP_KEY

public static final String CONNECT_ALL_PROP_KEY
Field description

See Also:
Constant Field Values

IDENTITY_TYPE_KEY

public static final String IDENTITY_TYPE_KEY
Field description

See Also:
Constant Field Values

IDENTITY_TYPE_VAL

public static final String IDENTITY_TYPE_VAL
Field description

See Also:
Constant Field Values

PORT_LOCAL_HOST_PROP_KEY

public static final String PORT_LOCAL_HOST_PROP_KEY
Field description

See Also:
Constant Field Values

PORT_ROUTING_TABLE_PROP_KEY

public static final String PORT_ROUTING_TABLE_PROP_KEY
Field description

See Also:
Constant Field Values

RETURN_SERVICE_DISCO_KEY

public static final String RETURN_SERVICE_DISCO_KEY
Field description

See Also:
Constant Field Values

SECRET_PROP_KEY

public static final String SECRET_PROP_KEY
Field description

See Also:
Constant Field Values

XMLNS

public static final String XMLNS
Field description

See Also:
Constant Field Values

RETURN_SERVICE_DISCO_VAL

public static final boolean RETURN_SERVICE_DISCO_VAL
Field description

See Also:
Constant Field Values

CONNECT_ALL_PROP_VAL

public static final boolean CONNECT_ALL_PROP_VAL
Field description

See Also:
Constant Field Values

COMPRESS_STREAM_PROP_VAL

public static final boolean COMPRESS_STREAM_PROP_VAL
Field description

See Also:
Constant Field Values

PORT_IFC_PROP_VAL

public String[] PORT_IFC_PROP_VAL
Field description

Constructor Detail

ClusterConnectionManager

public ClusterConnectionManager()
Method Detail

getDefaults

public Map<String,Object> getDefaults(Map<String,Object> params)
Method description

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class ConnectionManager<XMPPIOService<Object>>
Parameters:
params -
Returns:

getDiscoCategoryType

public String getDiscoCategoryType()
Method description

Overrides:
getDiscoCategoryType in class BasicComponent
Returns:

getDiscoDescription

public String getDiscoDescription()
Method description

Overrides:
getDiscoDescription in class BasicComponent
Returns:

getStatistics

public void getStatistics(StatisticsList list)
Method description

Specified by:
getStatistics in interface StatisticsContainer
Overrides:
getStatistics in class ConnectionManager<XMPPIOService<Object>>
Parameters:
list -

hashCodeForPacket

public int hashCodeForPacket(Packet packet)
This method can be overwritten in extending classes to get a different packets distribution to different threads. For PubSub, probably better packets distribution to different threads would be based on the sender address rather then destination address.

Overrides:
hashCodeForPacket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
packet -
Returns:

initBindings

public void initBindings(Bindings binds)
Method description

Overrides:
initBindings in class ConnectionManager<XMPPIOService<Object>>
Parameters:
binds -

nodeConnected

public void nodeConnected(String node)
Method description

Specified by:
nodeConnected in interface ClusteredComponentIfc
Parameters:
node -

nodeDisconnected

public void nodeDisconnected(String node)
Method description

Specified by:
nodeDisconnected in interface ClusteredComponentIfc
Parameters:
node -

processPacket

public void processPacket(Packet packet)
Method description

Overrides:
processPacket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
packet -

processSocketData

public Queue<Packet> processSocketData(XMPPIOService<Object> serv)
Method description

Specified by:
processSocketData in class ConnectionManager<XMPPIOService<Object>>
Parameters:
serv -
Returns:

processOutPacket

public void processOutPacket(Packet packet)
Method description

Overrides:
processOutPacket in class AbstractMessageReceiver
Parameters:
packet -

processingInThreads

public int processingInThreads()
Description copied from class: ConnectionManager
Method description

Overrides:
processingInThreads in class ConnectionManager<XMPPIOService<Object>>
Returns:

processingOutThreads

public int processingOutThreads()
Method description

Overrides:
processingOutThreads in class ConnectionManager<XMPPIOService<Object>>
Returns:

reconnectionFailed

public void reconnectionFailed(Map<String,Object> port_props)
Method description

Specified by:
reconnectionFailed in class ConnectionManager<XMPPIOService<Object>>
Parameters:
port_props -

serviceStarted

public void serviceStarted(XMPPIOService<Object> serv)
Method description

Overrides:
serviceStarted in class ConnectionManager<XMPPIOService<Object>>
Parameters:
serv -

serviceStopped

public boolean serviceStopped(XMPPIOService<Object> service)
Method description

Specified by:
serviceStopped in interface IOServiceListener<XMPPIOService<Object>>
Overrides:
serviceStopped in class ConnectionManager<XMPPIOService<Object>>
Parameters:
service -
Returns:

setClusterController

public void setClusterController(ClusterControllerIfc cl_controller)
Method description

Specified by:
setClusterController in interface ClusteredComponentIfc
Parameters:
cl_controller -

setProperties

public void setProperties(Map<String,Object> props)
Method description

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class ConnectionManager<XMPPIOService<Object>>
Parameters:
props -

tlsHandshakeCompleted

public void tlsHandshakeCompleted(XMPPIOService<Object> service)
Method description

Specified by:
tlsHandshakeCompleted in interface IOServiceListener<XMPPIOService<Object>>
Parameters:
service -

xmppStreamClosed

public void xmppStreamClosed(XMPPIOService<Object> serv)
Method description

Specified by:
xmppStreamClosed in interface XMPPIOServiceListener<XMPPIOService<Object>>
Parameters:
serv -

xmppStreamOpened

public String xmppStreamOpened(XMPPIOService<Object> service,
                               Map<String,String> attribs)
Method description

Specified by:
xmppStreamOpened in interface XMPPIOServiceListener<XMPPIOService<Object>>
Parameters:
service -
attribs -
Returns:

getDefPlainPorts

protected int[] getDefPlainPorts()
Method description

Overrides:
getDefPlainPorts in class ConnectionManager<XMPPIOService<Object>>
Returns:

getMaxInactiveTime

protected long getMaxInactiveTime()
Method getMaxInactiveTime returns max keep-alive time for inactive connection. we should not really close the connection at all, so let's say something like: 1000 days...

Specified by:
getMaxInactiveTime in class ConnectionManager<XMPPIOService<Object>>
Returns:
a long value

getMaxQueueSize

protected Integer getMaxQueueSize(int def)
Method description

Overrides:
getMaxQueueSize in class AbstractMessageReceiver
Parameters:
def -
Returns:

getParamsForPort

protected Map<String,Object> getParamsForPort(int port)
Method description

Overrides:
getParamsForPort in class ConnectionManager<XMPPIOService<Object>>
Parameters:
port -
Returns:

getXMPPIOServiceInstance

protected XMPPIOService<Object> getXMPPIOServiceInstance()
Method description

Specified by:
getXMPPIOServiceInstance in class ConnectionManager<XMPPIOService<Object>>
Returns:

isHighThroughput

protected boolean isHighThroughput()
Method description

Overrides:
isHighThroughput in class ConnectionManager<XMPPIOService<Object>>
Returns:

serviceConnected

protected void serviceConnected(XMPPIOService<Object> serv)
Method description

Parameters:
serv -

writePacketToSocket

protected boolean writePacketToSocket(Packet p)
Method description

Overrides:
writePacketToSocket in class ConnectionManager<XMPPIOService<Object>>
Parameters:
p -
Returns:

getDefTrafficThrottling

protected String getDefTrafficThrottling()
Method description

Overrides:
getDefTrafficThrottling in class ConnectionManager<XMPPIOService<Object>>
Returns:

itemAdded

public void itemAdded(ClusterRepoItem repoItem)
Method description

Specified by:
itemAdded in interface RepositoryChangeListenerIfc<ClusterRepoItem>
Parameters:
repoItem -

updateConnectionDetails

public void updateConnectionDetails(Map<String,Object> port_props)
Method description

Overrides:
updateConnectionDetails in class ConnectionManager<XMPPIOService<Object>>
Parameters:
port_props -

itemUpdated

public void itemUpdated(ClusterRepoItem item)
Method description

Specified by:
itemUpdated in interface RepositoryChangeListenerIfc<ClusterRepoItem>
Parameters:
item -

itemRemoved

public void itemRemoved(ClusterRepoItem item)
Method description

Specified by:
itemRemoved in interface RepositoryChangeListenerIfc<ClusterRepoItem>
Parameters:
item -


Copyright © 2013 Tigase. All rights reserved.