@Bean(name="sess-man", parent=Kernel.class, active=true, exportable=true) @ConfigType(value={DefaultMode,SessionManagerMode}) @ClusterModeRequired(active=true) public class SessionManagerClustered extends SessionManager implements ClusteredComponentIfc, SessionManagerClusteredIfc
SessionManager.DefaultHandlerProc, SessionManager.ProcessorResultWriter, SessionManager.SessionCloseProc, SessionManager.SessionOpenProc, SessionManager.SMPacketWriterBasicComponent.ServerInfoVHostItemExtensionPacketWriterWithTimeout.Handler| Modifier and Type | Field and Description |
|---|---|
static String |
CLUSTER_STRATEGY_VAR |
static String |
MY_DOMAIN_NAME_PROP_KEY |
static String |
STRATEGY_CLASS_PROP_KEY |
static String |
STRATEGY_CLASS_PROP_VAL |
static String |
STRATEGY_CLASS_PROPERTY |
static int |
SYNC_MAX_BATCH_SIZE |
ADMIN_COMMAND_NODE, connectionsByFrom, 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, PACKET_DELIVERY_RETRY_COUNT_PROP_KEY, SCHEDULER_THREADS_PROP_KEY, SECONDadmins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, scriptEngineManager, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, 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_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_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, EVENTBUS_CLASS_NAME, 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, 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(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.
|
void |
everyHour()
Utility method executed precisely every hour.
|
void |
everyMinute()
Utility method executed precisely every minute.
|
void |
everySecond()
Utility method executed precisely every second.
|
boolean |
fastAddOutPacket(Packet packet) |
protected boolean |
fillRoutedUserSessionEvent(UserSessionEvent event) |
protected boolean |
fillRoutedUserSessionWithProcessorResultWriter(UserSessionEventWithProcessorResultWriter event) |
ComponentInfo |
getComponentInfo()
Allows to obtain various informations about components
|
JID[] |
getConnectionIdsForJid(BareJID jid)
Retrieve all connection IDs (CIDs) for the given user.
|
String |
getDiscoDescription()
Method returns description used for service discovery responses.
|
void |
getStatistics(StatisticsList list)
Method returns component statistics.
|
ClusteringStrategyIfc |
getStrategy()
Returns active clustering strategy object.
|
XMPPResourceConnection |
getXMPPResourceConnection(Packet p) |
ConcurrentHashMap<JID,XMPPResourceConnection> |
getXMPPResourceConnections() |
ConcurrentHashMap<BareJID,XMPPSession> |
getXMPPSessions() |
void |
handleLocalPacket(Packet packet,
XMPPResourceConnection conn) |
void |
handleLogin(BareJID userId,
XMPPResourceConnection conn) |
void |
handleLogout(BareJID userId,
XMPPResourceConnection conn) |
void |
handleResourceBind(XMPPResourceConnection conn) |
boolean |
hasCompleteJidsInfo()
Method checks whether the clustering strategy has a complete JIDs info.
|
boolean |
hasXMPPResourceConnectionForConnectionJid(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 |
onNodeConnected(JID jid) |
void |
onNodeDisconnected(JID jid) |
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) |
void |
processPresenceUpdate(XMPPSession session,
Element packet) |
protected Collection<Subscription> |
routeUserSessionEvent(UserSessionEvent event,
Collection<Subscription> subscriptions) |
void |
setClusterController(ClusterControllerIfc cl_controller)
Set's the configures the cluster controller object for cluster communication and API.
|
protected void |
xmppStreamMoved(XMPPResourceConnection conn,
JID oldConnId,
JID newConnId) |
addOutPacket, addOutPackets, addPlugin, addTrusted, closeConnection, containsJidLocally, containsJidLocally, createUserSession, delTrusted, getDiscoCategoryType, getDiscoFeatures, getDiscoInfo, getDiscoItems, getMaxQueueSize, getOpenUsersConnectionsAmount, getOutFilters, getPostProcessors, getPreProcessors, getProcessors, getResourceConnection, getSession, getXMPPResourceConnection, handleDomainChange, handlePresenceSet, handlesLocalDomains, hashCodeForPacket, initialize, isBrokenPacket, isLocalDomain, loginUserSession, nodeShutdown, processAdminsOrDomains, processCommand, register, registerNewSession, removePlugin, removePlugin, schedulerThreads, sendToAdmins, setAllPlugins, setName, setSchedulerThreads_size, setSmThreadsPool, skipPrivacy, start, stop, unregisteraddOutPacketNB, addOutPackets, addOutPacketWithTimeout, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, beanConfigurationChanged, clearRegexRoutings, getRegexRoutings, getResourceForPacketWithTimeout, isInRegexRoutings, newPacketId, processOutPacket, processPacket, release, removeRegexRouting, setCompId, setIncomingFilters, setOutogingFilters, setParentaddComponentDomain, canCallCommand, canCallCommand, checkCommandAcl, checkCommandAcl, createScriptEngineManager, getComponentId, getDefaults, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoExtensionsForm, getDiscoFeatures, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getServiceEntityCaps, getVHostItem, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setAdmins, setCommandsACL, setProperties, setScriptsBaseDir, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntityclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitnodeConnected, nodeDisconnectedgetComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setNamegetComponentId, getNodesConnectedhandleDomainChange, handlePresenceSet, isLocalDomaingetDefaults, setPropertiesgetNamegetDefHostNamepublic 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(BareJID jid)
OnlineJidsReportercontainsJid in interface OnlineJidsReportercontainsJid in class SessionManagerjid - a user's JID for whom we query information.public void everySecond()
AbstractMessageReceivereverySecond in class SessionManagerpublic void everyMinute()
AbstractMessageReceivereveryMinute in class SessionManagerpublic void everyHour()
AbstractMessageReceivereveryHour in class AbstractMessageReceiverpublic boolean fastAddOutPacket(Packet packet)
fastAddOutPacket in interface SessionManagerClusteredIfcfastAddOutPacket in class SessionManagerpublic void handleLocalPacket(Packet packet, XMPPResourceConnection conn)
handleLocalPacket in class SessionManagerpublic void handleLogin(BareJID userId, XMPPResourceConnection conn)
handleLogin in interface SessionManagerHandlerhandleLogin in class SessionManagerpublic void handleLogout(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 onNodeConnected(JID jid)
onNodeConnected in class BasicComponentpublic void onNodeDisconnected(JID jid)
onNodeDisconnected in class BasicComponentpublic 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)
processPacket in interface SessionManagerClusteredIfcprocessPacket in class SessionManagerpublic void processPresenceUpdate(XMPPSession session, Element packet)
processPresenceUpdate in interface SessionManagerClusteredIfcprocessPresenceUpdate in class SessionManagerpublic ComponentInfo getComponentInfo()
ServerComponentgetComponentInfo in interface ServerComponentgetComponentInfo in class BasicComponentpublic JID[] getConnectionIdsForJid(BareJID jid)
getConnectionIdsForJid in interface OnlineJidsReportergetConnectionIdsForJid in class SessionManagerjid - a user's JID for whom we query information.public String getDiscoDescription()
BasicComponentgetDiscoDescription in class SessionManagerpublic 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 StatisticsContainerIfcgetStatistics in class SessionManagerlist - is a StatistcsList where all statistics are stored.public ClusteringStrategyIfc getStrategy()
public XMPPResourceConnection getXMPPResourceConnection(Packet p)
getXMPPResourceConnection in interface SessionManagerClusteredIfcgetXMPPResourceConnection in class SessionManagerpublic ConcurrentHashMap<JID,XMPPResourceConnection> getXMPPResourceConnections()
getXMPPResourceConnections in interface SessionManagerClusteredIfcpublic ConcurrentHashMap<BareJID,XMPPSession> getXMPPSessions()
getXMPPSessions in interface SessionManagerClusteredIfcpublic boolean hasCompleteJidsInfo()
OnlineJidsReporterhasCompleteJidsInfo in interface OnlineJidsReporterhasCompleteJidsInfo in class SessionManagerpublic boolean hasXMPPResourceConnectionForConnectionJid(JID connJid)
SessionManagerClusteredIfchasXMPPResourceConnectionForConnectionJid in interface SessionManagerClusteredIfcpublic void setClusterController(ClusterControllerIfc cl_controller)
ClusteredComponentIfcsetClusterController in interface ClusteredComponentIfcsetClusterController in class BasicComponentcl_controller - cluster controller object used for cluster communication@FillRoutedEvent protected boolean fillRoutedUserSessionWithProcessorResultWriter(UserSessionEventWithProcessorResultWriter event)
@FillRoutedEvent protected boolean fillRoutedUserSessionEvent(UserSessionEvent event)
@RouteEvent protected Collection<Subscription> routeUserSessionEvent(UserSessionEvent event, Collection<Subscription> subscriptions)
protected 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)protected void xmppStreamMoved(XMPPResourceConnection conn, JID oldConnId, JID newConnId)
xmppStreamMoved in class SessionManagerCopyright © 2004–2020 "Tigase, Inc.". All rights reserved.