tigase.cluster
Class SessionManagerClustered

java.lang.Object
  extended by tigase.server.AbstractMessageReceiver
      extended by tigase.server.xmppsession.SessionManager
          extended by tigase.cluster.SessionManagerClustered
All Implemented Interfaces:
ClusteredComponent, Configurable, XMPPService, MessageReceiver, ServerComponent, SessionManagerHandler, StatisticsContainer, OnlineJidsReporter, VHostListener

public class SessionManagerClustered
extends SessionManager
implements ClusteredComponent

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

Version:
$Rev: 1695 $
Author:
Artur Hefczyc

Field Summary
static java.lang.String STRATEGY_CLASS_PROP_KEY
           
static java.lang.String STRATEGY_CLASS_PROP_VAL
           
static java.lang.String STRATEGY_CLASS_PROPERTY
           
 
Fields inherited from class tigase.server.xmppsession.SessionManager
ADMIN_COMMAND_NODE, SESSION_PACKETS
 
Fields inherited from class tigase.server.AbstractMessageReceiver
HOUR, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxQueueSize, MINUTE, SECOND, vHostManager
 
Fields inherited from interface tigase.conf.Configurable
ADMINS_PROP_KEY, AUTH_REPO_CLASS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_URL_PROP_KEY, 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, COMPONENT_ID_PROP_KEY, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_CLASS_PROP_VAL, DRUPAL_REPO_URL_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_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, NULL_ROUTING, 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_POOL_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUS_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, STATS_CLASS_NAME, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_REPO_CLASS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL
 
Fields inherited from interface tigase.disco.XMPPService
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
 
Fields inherited from interface tigase.server.xmppsession.SessionManagerHandler
COMMIT_HANDLER_KEY
 
Constructor Summary
SessionManagerClustered()
           
 
Method Summary
protected  void closeSession(XMPPResourceConnection conn, boolean closeOnly)
           
 java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
          Returns defualt configuration settings for this object.
protected  java.lang.String getFirstClusterNode(java.lang.String userId)
           
 void handlePresenceSet(XMPPResourceConnection conn)
           
 void nodesConnected(java.util.Set<java.lang.String> node_hostnames)
           
 void nodesDisconnected(java.util.Set<java.lang.String> node_hostnames)
           
protected  void processClusterPacket(Packet packet)
           
protected  void processPacket(ClusterElement packet)
           
 void processPacket(Packet packet)
           
 void release()
           
protected  boolean sendToNextNode(ClusterElement clel, java.lang.String userId)
           
protected  boolean sendToNextNode(Packet packet)
           
 void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
          Sets all configuration properties for object.
 void start()
           
protected  void updateUserResources(XMPPResourceConnection session, java.util.Queue<Packet> results)
           
 
Methods inherited from class tigase.server.xmppsession.SessionManager
addOutPacket, addOutPackets, addTrusted, closeConnection, createUserSession, delTrusted, fastAddOutPacket, getDiscoFeatures, getDiscoInfo, getDiscoItems, getMaxQueueSize, getOnlineJids, getResourceConnection, getSession, getStatistics, getXMPPResourceConnection, getXMPPResourceConnection, handleLogin, handleLogout, handleResourceBind, handlesLocalDomains, isBrokenPacket, isLocalDomain, isTrusted, loginUserSession, processAdminsOrDomains, processCommand, processingThreads, processPacket, registerNewSession, sendAllOnHold, sendToAdmins, setName
 
Methods inherited from class tigase.server.AbstractMessageReceiver
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, clearRegexRoutings, everyMinute, everySecond, getComponentId, getDefHostName, getName, getRegexRoutings, getVHostItem, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isInRegexRoutings, isLocalDomain, isLocalDomainOrComponent, processPacket, removeRegexRouting, setMaxQueueSize, setParent, setVHostManager, stop
 
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, processPacket, setName
 
Methods inherited from interface tigase.conf.Configurable
getName
 

Field Detail

STRATEGY_CLASS_PROPERTY

public static final java.lang.String STRATEGY_CLASS_PROPERTY
See Also:
Constant Field Values

STRATEGY_CLASS_PROP_KEY

public static final java.lang.String STRATEGY_CLASS_PROP_KEY
See Also:
Constant Field Values

STRATEGY_CLASS_PROP_VAL

public static final java.lang.String STRATEGY_CLASS_PROP_VAL
See Also:
Constant Field Values
Constructor Detail

SessionManagerClustered

public SessionManagerClustered()
Method Detail

processPacket

public void processPacket(Packet packet)
Overrides:
processPacket in class SessionManager

processPacket

protected void processPacket(ClusterElement packet)

processClusterPacket

@TODO(note="Possible performance bottleneck if there are many users with multiple connections to different nodes.")
protected void processClusterPacket(Packet packet)

updateUserResources

protected void updateUserResources(XMPPResourceConnection session,
                                   java.util.Queue<Packet> results)

sendToNextNode

protected boolean sendToNextNode(ClusterElement clel,
                                 java.lang.String userId)

sendToNextNode

protected boolean sendToNextNode(Packet packet)

setProperties

public void setProperties(java.util.Map<java.lang.String,java.lang.Object> props)
Description copied from class: AbstractMessageReceiver
Sets all configuration properties for object.

Specified by:
setProperties in interface Configurable
Overrides:
setProperties in class SessionManager

getDefaults

public java.util.Map<java.lang.String,java.lang.Object> getDefaults(java.util.Map<java.lang.String,java.lang.Object> params)
Description copied from class: AbstractMessageReceiver
Returns defualt configuration settings for this object.

Specified by:
getDefaults in interface Configurable
Overrides:
getDefaults in class SessionManager
Returns:

nodesConnected

public void nodesConnected(java.util.Set<java.lang.String> node_hostnames)
Specified by:
nodesConnected in interface ClusteredComponent

nodesDisconnected

public void nodesDisconnected(java.util.Set<java.lang.String> node_hostnames)
Specified by:
nodesDisconnected in interface ClusteredComponent

getFirstClusterNode

protected java.lang.String getFirstClusterNode(java.lang.String userId)

closeSession

protected void closeSession(XMPPResourceConnection conn,
                            boolean closeOnly)
Overrides:
closeSession in class SessionManager

handlePresenceSet

public void handlePresenceSet(XMPPResourceConnection conn)
Specified by:
handlePresenceSet in interface SessionManagerHandler
Overrides:
handlePresenceSet in class SessionManager

release

public void release()
Specified by:
release in interface ServerComponent
Overrides:
release in class AbstractMessageReceiver

start

public void start()
Specified by:
start in interface MessageReceiver
Overrides:
start in class AbstractMessageReceiver


Copyright © 2009 Tigase. All Rights Reserved.