tigase.cluster
public class SessionManagerClustered extends SessionManager implements ClusteredComponentIfc
Modifier and Type | Field and Description |
---|---|
static String |
CLUSTER_STRATEGY_VAR |
static String |
CONNECTION_ID
Field description
|
static String |
MY_DOMAIN_NAME_PROP_KEY
Field description
|
static String |
RESOURCE
Field description
|
static String |
SM_ID
Field description
|
static String |
STRATEGY_CLASS_PROP_KEY
Field description
|
static String |
STRATEGY_CLASS_PROP_VAL
Field description
|
static String |
STRATEGY_CLASS_PROPERTY
Field description
|
static int |
SYNC_MAX_BATCH_SIZE
Field description
|
static String |
USER_ID
Field description
|
static String |
XMPP_SESSION_ID
Field description
|
ADMIN_COMMAND_NODE, connectionsByFrom
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
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManager
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
COMMIT_HANDLER_KEY
CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS
Constructor and Description |
---|
SessionManagerClustered() |
Modifier and Type | Method and Description |
---|---|
protected void |
closeSession(XMPPResourceConnection conn,
boolean closeOnly)
The method intercept user's disconnect event.
|
boolean |
containsJid(tigase.xmpp.BareJID jid)
The method checks whether the given JID is known to the installation,
either user connected to local machine or any of the cluster nodes.
|
tigase.xmpp.JID[] |
getConnectionIdsForJid(tigase.xmpp.BareJID jid)
If the installation knows about user's JID, that he is connected to the
system, then this method returns all user's connection IDs.
|
protected ConnectionRecord |
getConnectionRecord(tigase.xmpp.JID node,
Map<String,String> data)
Method takes the data received from other cluster node and creates a
ConnectionRecord with all essential connection information.
|
Map<String,Object> |
getDefaults(Map<String,Object> params)
Loads the component's default configuration to the configuration management
subsystem.
|
void |
getStatistics(StatisticsList list)
Method generates and returns component's statistics.
|
ClusteringStrategyIfc |
getStrategy()
Returns active clustering strategy object.
|
void |
handlePresenceSet(XMPPResourceConnection conn)
Method intercepts presence set event generated by presence status received
from a user connected to this node.
|
void |
handleResourceBind(XMPPResourceConnection conn)
Method intercepts resource bind event generated for on user's connection.
|
boolean |
hasCompleteJidsInfo()
Method checks whether the clustering strategy has a complete JIDs info.
|
void |
initBindings(Bindings binds)
Method description
|
void |
nodeConnected(String node)
The method is called on cluster node connection event.
|
void |
nodeDisconnected(String node)
Method is called on cluster node disconnection event.
|
protected Map<String,String> |
prepareConnectionParams(XMPPResourceConnection conn)
A utility method used to prepare a Map of data with user session data
before it can be sent over to another cluster node.
|
int |
processingInThreads()
Concurrency control method.
|
int |
processingOutThreads()
Concurrency control method.
|
void |
processPacket(Packet packet)
This is a standard component method for processing packets.
|
protected void |
requestSync(tigase.xmpp.JID node)
Send synchronization request to a given cluster node.
|
protected boolean |
sendToNextNode(tigase.xmpp.JID fromNode,
Set<tigase.xmpp.JID> visitedNodes,
Map<String,String> data,
Packet packet)
Method attempts to send the packet to the next cluster node.
|
void |
setClusterController(ClusterControllerIfc cl_controller)
Set's the configures the cluster controller object for cluster
communication and API.
|
void |
setProperties(Map<String,Object> props)
Standard component's configuration method.
|
addOutPacket, addOutPackets, addPlugin, addTrusted, closeConnection, createUserSession, delTrusted, fastAddOutPacket, getDiscoCategoryType, getDiscoDescription, getDiscoFeatures, getDiscoInfo, getMaxQueueSize, getResourceConnection, getSession, getXMPPResourceConnection, getXMPPResourceConnection, handleLocalPacket, handleLogin, handleLogout, handlesLocalDomains, isBrokenPacket, isLocalDomain, isTrusted, isTrusted, loginUserSession, processAdminsOrDomains, processCommand, processPacket, registerNewSession, removePlugin, sendToAdmins, setName, skipPrivacy
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everyMinute, everySecond, getRegexRoutings, hashCodeForPacket, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent, start, stop
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
getComponentId
getDefHostName
public static final String CLUSTER_STRATEGY_VAR
public static final String CONNECTION_ID
public static final String MY_DOMAIN_NAME_PROP_KEY
public static final String RESOURCE
public static final String SM_ID
public static final String STRATEGY_CLASS_PROPERTY
public static final String STRATEGY_CLASS_PROP_KEY
public static final String STRATEGY_CLASS_PROP_VAL
public static final int SYNC_MAX_BATCH_SIZE
public static final String USER_ID
public static final String XMPP_SESSION_ID
public boolean containsJid(tigase.xmpp.BareJID jid)
containsJid
in interface OnlineJidsReporter
containsJid
in class SessionManager
jid
- a user's JID for whom we query information.public tigase.xmpp.JID[] getConnectionIdsForJid(tigase.xmpp.BareJID jid)
getConnectionIdsForJid
in interface OnlineJidsReporter
getConnectionIdsForJid
in class SessionManager
jid
- a user's JID for whom we query information.public Map<String,Object> getDefaults(Map<String,Object> params)
getDefaults
in interface Configurable
getDefaults
in class SessionManager
params
- is a Map with system-wide default settings found in
init.properties file or similar location.public void getStatistics(StatisticsList list)
getStatistics
in interface StatisticsContainer
getStatistics
in class SessionManager
list
- is a collection with statistics to which this component can add
own metrics.public ClusteringStrategyIfc getStrategy()
public void initBindings(Bindings binds)
SessionManager
initBindings
in class SessionManager
public void handlePresenceSet(XMPPResourceConnection conn)
handlePresenceSet
in interface SessionManagerHandler
handlePresenceSet
in class SessionManager
conn
- a user's XMPPResourceConnection on which the event occurred.public void handleResourceBind(XMPPResourceConnection conn)
handleResourceBind
in interface SessionManagerHandler
handleResourceBind
in class SessionManager
conn
- a user's XMPPResourceConnection on which the event occurred.public boolean hasCompleteJidsInfo()
hasCompleteJidsInfo
in interface OnlineJidsReporter
hasCompleteJidsInfo
in class SessionManager
public void nodeConnected(String node)
nodeConnected
in interface ClusteredComponentIfc
node
- is a hostname of a new cluster node connected to the system.public void nodeDisconnected(String node)
nodeDisconnected
in interface ClusteredComponentIfc
node
- is a hostname of a cluster node generating the event.protected Map<String,String> prepareConnectionParams(XMPPResourceConnection conn) throws NotAuthorizedException, NoConnectionIdException
conn
- is user's XMPPResourceConnection for which Map structure is
prepare.NoConnectionIdException
NotAuthorizedException
public void processPacket(Packet packet)
processPacket
in class SessionManager
packet
- protected boolean sendToNextNode(tigase.xmpp.JID fromNode, Set<tigase.xmpp.JID> visitedNodes, Map<String,String> data, Packet packet)
packet
- to be sent to a next cluster nodevisitedNodes
- a list of nodes already visited by the packet.public int processingInThreads()
processingInThreads
in class SessionManager
public int processingOutThreads()
processingOutThreads
in class SessionManager
public void setClusterController(ClusterControllerIfc cl_controller)
setClusterController
in interface ClusteredComponentIfc
cl_controller
- public void setProperties(Map<String,Object> props)
setProperties
in interface Configurable
setProperties
in class SessionManager
props
- protected void closeSession(XMPPResourceConnection conn, boolean closeOnly)
closeSession
in class SessionManager
tigase.server.xmppsession.SessionManager#closeSession(tigase.xmpp.
XMPPResourceConnection, boolean)
protected ConnectionRecord getConnectionRecord(tigase.xmpp.JID node, Map<String,String> data)
node
- data
- protected void requestSync(tigase.xmpp.JID node)
node
- is a JID of the target cluster node.Copyright © 2013 Tigase. All rights reserved.