public class SessionManagerClustered extends SessionManager implements ClusteredComponentIfc, SessionManagerClusteredIfc
SessionManager.WriterQueue<E extends Packet>| Modifier and Type | Field and Description |
|---|---|
static String |
CLUSTER_STRATEGY_VAR
Field description
|
static String |
MY_DOMAIN_NAME_PROP_KEY
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
|
ADMIN_COMMAND_NODE, connectionsByFrom, packetWriterQueue, sessionsByNodeIdHOUR, INCOMING_FILTERS_PROP_KEY, INCOMING_FILTERS_PROP_VAL, MAX_QUEUE_SIZE_PROP_KEY, MAX_QUEUE_SIZE_PROP_VAL, maxInQueueSize, maxOutQueueSize, maxQueueSize, MINUTE, OUTGOING_FILTERS_PROP_KEY, OUTGOING_FILTERS_PROP_VAL, SCHEDULER_THREADS_PROP_KEY, SECONDadmins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, vHostManagerSESSION_FOUND_KEYCOMMIT_HANDLER_KEYADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_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, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACKCMD_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.
|
boolean |
fastAddOutPacket(Packet packet)
Method description
|
ComponentInfo |
getComponentInfo()
Allows to obtain various informations about components
|
tigase.xmpp.JID[] |
getConnectionIdsForJid(tigase.xmpp.BareJID jid)
Retrieve all connection IDs (CIDs) for the given user.
|
Map<String,Object> |
getDefaults(Map<String,Object> params)
Returns default configuration settings for the component as a
Map with keys as configuration property IDs and values as the
configuration property values. |
String |
getDiscoDescription()
Method description
|
void |
getStatistics(StatisticsList list)
Method returns component statistics.
|
ClusteringStrategyIfc |
getStrategy()
Returns active clustering strategy object.
|
XMPPResourceConnection |
getXMPPResourceConnection(Packet p)
Method description
|
ConcurrentHashMap<tigase.xmpp.JID,XMPPResourceConnection> |
getXMPPResourceConnections()
Method description
|
ConcurrentHashMap<tigase.xmpp.BareJID,XMPPSession> |
getXMPPSessions()
Method description
|
void |
handleLocalPacket(Packet packet,
XMPPResourceConnection conn) |
void |
handleLogin(tigase.xmpp.BareJID userId,
XMPPResourceConnection conn) |
void |
handleLogout(tigase.xmpp.BareJID userId,
XMPPResourceConnection conn) |
void |
handleResourceBind(XMPPResourceConnection conn) |
boolean |
hasCompleteJidsInfo()
Method checks whether the clustering strategy has a complete JIDs info.
|
boolean |
hasXMPPResourceConnectionForConnectionJid(tigase.xmpp.JID connJid)
Method to check if there is XMPPResourceConnection instance for
connection JID.
|
void |
initBindings(Bindings binds)
Initialize a mapping of key/value pairs which can be used in scripts
loaded by the server
|
void |
nodeConnected(String node)
Method is called on cluster node connection event.
|
void |
nodeDisconnected(String node)
Method is called on cluster node disconnection event.
|
int |
processingInThreads()
Concurrency control method.
|
int |
processingOutThreads()
Concurrency control method.
|
void |
processPacket(Packet packet)
This is the main
Packet processing method. |
void |
processPacket(Packet packet,
XMPPResourceConnection conn)
Method description
|
void |
processPresenceUpdate(XMPPSession session,
tigase.xml.Element packet)
Method description
|
void |
setClusterController(ClusterControllerIfc cl_controller)
Set's the configures the cluster controller object for cluster
communication and API.
|
void |
setProperties(Map<String,Object> props)
Sets all configuration properties for the object.
|
addOutPacket, addOutPackets, addPlugin, addTrusted, closeConnection, containsJidLocally, containsJidLocally, createUserSession, delTrusted, everyMinute, getDiscoCategoryType, getDiscoFeatures, getDiscoInfo, getMaxQueueSize, getResourceConnection, getSession, getXMPPResourceConnection, handleDomainChange, handlePresenceSet, handlesLocalDomains, isBrokenPacket, isLocalDomain, isTrusted, isTrusted, loginUserSession, processAdminsOrDomains, processCommand, registerNewSession, removePlugin, sendToAdmins, setName, skipPrivacy, stopaddOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTask, clearRegexRoutings, everyHour, everySecond, getRegexRoutings, hashCodeForPacket, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent, startaddComponentDomain, 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, updateServiceEntityclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setNamegetComponentId, handleDomainChange, handlePresenceSet, isLocalDomaingetDefHostNamepublic static final String CLUSTER_STRATEGY_VAR
public static final String MY_DOMAIN_NAME_PROP_KEY
public static final String STRATEGY_CLASS_PROP_KEY
public static final String STRATEGY_CLASS_PROP_VAL
public static final String STRATEGY_CLASS_PROPERTY
public static final int SYNC_MAX_BATCH_SIZE
public boolean containsJid(tigase.xmpp.BareJID jid)
OnlineJidsReportercontainsJid in interface OnlineJidsReportercontainsJid in class SessionManagerjid - a user's JID for whom we query information.public boolean fastAddOutPacket(Packet packet)
SessionManagerClusteredIfcfastAddOutPacket in interface SessionManagerClusteredIfcfastAddOutPacket in class SessionManagerbooleanpublic void handleLocalPacket(Packet packet, XMPPResourceConnection conn)
handleLocalPacket in class SessionManagerpublic void handleLogin(tigase.xmpp.BareJID userId,
XMPPResourceConnection conn)
handleLogin in interface SessionManagerHandlerhandleLogin in class SessionManagerpublic void handleLogout(tigase.xmpp.BareJID userId,
XMPPResourceConnection conn)
handleLogout in interface SessionManagerHandlerhandleLogout in class SessionManagerpublic void handleResourceBind(XMPPResourceConnection conn)
handleResourceBind in interface SessionManagerHandlerhandleResourceBind in class SessionManagerpublic void initBindings(Bindings binds)
BasicComponentinitBindings in class SessionManagerbinds - A mapping of key/value pairs, all of whose keys are Strings.public void nodeConnected(String node)
ClusteredComponentIfcnodeConnected in interface ClusteredComponentIfcnode - is a hostname of a cluster node generating the event.public void nodeDisconnected(String node)
ClusteredComponentIfcnodeDisconnected in interface ClusteredComponentIfcnode - is a hostname of a cluster node generating the event.public int processingInThreads()
AbstractMessageReceiverprocessingInThreads in class SessionManagerpublic int processingOutThreads()
AbstractMessageReceiverprocessingOutThreads in class SessionManagerpublic void processPacket(Packet packet)
Packet processing method. It is called
concurrently from many threads so implementing it in thread save manner is
essential. The method is called for each packet addressed to the component.
Packet instance may be processed by different
parts of the server, different components or plugins at the same time.
Therefore this is very important to tread the Packet instance
as unmodifiable object.
addOutPacket(Packet) method.
processPacket in class SessionManagerpacket - to be processedpublic void processPacket(Packet packet, XMPPResourceConnection conn)
SessionManagerClusteredIfcprocessPacket in interface SessionManagerClusteredIfcprocessPacket in class SessionManagerpublic void processPresenceUpdate(XMPPSession session, tigase.xml.Element packet)
SessionManagerClusteredIfcprocessPresenceUpdate in interface SessionManagerClusteredIfcprocessPresenceUpdate in class SessionManagersession - is a XMPPSessionpacket - is a Elementpublic ComponentInfo getComponentInfo()
ServerComponentgetComponentInfo in interface ServerComponentgetComponentInfo in class BasicComponentpublic tigase.xmpp.JID[] getConnectionIdsForJid(tigase.xmpp.BareJID jid)
getConnectionIdsForJid in interface OnlineJidsReportergetConnectionIdsForJid in class SessionManagerjid - a user's JID for whom we query information.public Map<String,Object> getDefaults(Map<String,Object> params)
AbstractMessageReceiverMap with keys as configuration property IDs and values as the
configuration property values. All the default parameters returned from
this method are later passed to the setProperties(...) method.
Some of them may have changed value if they have been overwritten in the
server configuration. The configuration property value can be of any of the
basic types: int, long, boolean,
String.getDefaults in interface ConfigurablegetDefaults in class SessionManagerparams - is a Map with some initial properties set for the
starting up server. These parameters can be used as a hints to
generate component's default configuration.Map with the component default configuration.public String getDiscoDescription()
BasicComponentgetDiscoDescription in class SessionManagerStringpublic void getStatistics(StatisticsList list)
AbstractMessageReceiverLevel.FINEST assigned and must be put inside the level guard
to prevent generating them by the system monitor. The system monitor does
not collect FINEST statistics.
if (list.checkLevel(Level.FINEST)) {
// Some CPU intensive calculations or lengthy operations
list.add(getName(), "Statistic description", stat_value, Level.FINEST);
}
This way you make sure your extensive operation is not executed every second by the
monitoring system and does not affect the server performance.getStatistics in interface StatisticsContainergetStatistics in class SessionManagerlist - is a StatistcsList
where all statistics are stored.public ClusteringStrategyIfc getStrategy()
public XMPPResourceConnection getXMPPResourceConnection(Packet p)
SessionManagerClusteredIfcgetXMPPResourceConnection in interface SessionManagerClusteredIfcgetXMPPResourceConnection in class SessionManagerXMPPResourceConnectionpublic ConcurrentHashMap<tigase.xmpp.JID,XMPPResourceConnection> getXMPPResourceConnections()
SessionManagerClusteredIfcgetXMPPResourceConnections in interface SessionManagerClusteredIfcConcurrentHashMap<JID,XMPPResourceConnection>public ConcurrentHashMap<tigase.xmpp.BareJID,XMPPSession> getXMPPSessions()
SessionManagerClusteredIfcgetXMPPSessions in interface SessionManagerClusteredIfcConcurrentHashMap<BareJID,XMPPSession>public boolean hasCompleteJidsInfo()
OnlineJidsReporterhasCompleteJidsInfo in interface OnlineJidsReporterhasCompleteJidsInfo in class SessionManagerpublic boolean hasXMPPResourceConnectionForConnectionJid(tigase.xmpp.JID connJid)
SessionManagerClusteredIfchasXMPPResourceConnectionForConnectionJid in interface SessionManagerClusteredIfcpublic void setClusterController(ClusterControllerIfc cl_controller)
ClusteredComponentIfcsetClusterController in interface ClusteredComponentIfccl_controller - cluster controller object used for cluster
communicationpublic void setProperties(Map<String,Object> props) throws ConfigurationException
ConfigurablesetProperties in interface ConfigurablesetProperties in class SessionManagerprops - Map with the configurationConfigurationException - - if setting configuration will
fail which will make it unable
to workprotected void closeSession(XMPPResourceConnection conn, boolean closeOnly)
closeSession in class SessionManagerconn - XMPPResourceConnection to be closedcloseOnly - whether to perform additional processing before closingSessionManager.closeSession(tigase.xmpp.XMPPResourceConnection, boolean)Copyright © 2016 "Tigase, Inc.". All rights reserved.