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, sessionsByNodeId
HOUR, 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, SECOND
admins, ALL_PROP_KEY, COMMAND_PROP_NODE, scriptCommands, SCRIPTS_DIR_PROP_DEF, SCRIPTS_DIR_PROP_KEY, trusted, vHostManager
SESSION_FOUND_KEY
COMMIT_HANDLER_KEY
ADMINS_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_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, 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, 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_ACK
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(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)
Method description
|
ComponentInfo |
getComponentInfo()
Allows to obtain various informations about components
|
JID[] |
getConnectionIdsForJid(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<JID,XMPPResourceConnection> |
getXMPPResourceConnections()
Method description
|
ConcurrentHashMap<BareJID,XMPPSession> |
getXMPPSessions()
Method description
|
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)
Method description
|
void |
processPresenceUpdate(XMPPSession session,
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.
|
protected void |
xmppStreamMoved(XMPPResourceConnection conn,
JID oldConnId,
JID newConnId) |
addOutPacket, addOutPackets, addPlugin, addTrusted, closeConnection, containsJidLocally, containsJidLocally, createUserSession, delTrusted, getDiscoCategoryType, getDiscoFeatures, getDiscoInfo, getMaxQueueSize, getOpenUsersConnectionsAmount, getOutFilters, getPostProcessors, getPreProcessors, getProcessors, getResourceConnection, getSession, getXMPPResourceConnection, handleDomainChange, handlePresenceSet, handlesLocalDomains, hashCodeForPacket, isBrokenPacket, isLocalDomain, loginUserSession, processAdminsOrDomains, processCommand, registerNewSession, removePlugin, sendToAdmins, setName, skipPrivacy, stop
addOutPacketNB, addOutPackets, addOutPacketWithTimeout, addPacket, addPacketNB, addPackets, addRegexRouting, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTask, addTimerTaskWithTimeout, addTimerTaskWithTimeout, clearRegexRoutings, getRegexRoutings, isInRegexRoutings, newPacketId, processingThreads, processOutPacket, processPacket, release, removeRegexRouting, schedulerThreads, setMaxQueueSize, setParent, start
addComponentDomain, canCallCommand, checkCommandAcl, getComponentId, getDefHostName, getDefVHostItem, getDiscoCategory, getDiscoFeatures, getDiscoInfo, getDiscoItems, getDiscoItems, getName, getNodesConnected, getNodesConnectedWithLocal, getScriptCommands, getScriptItems, getServiceEntity, getVHostItem, handlesNameSubdomains, handlesNonLocalDomains, initializationCompleted, isAdmin, isInitializationComplete, isLocalDomain, isLocalDomainOrComponent, isNonAdminCommands, isSubdomain, isTrusted, isTrusted, nodeConnected, nodeDisconnected, processScriptCommand, removeComponentDomain, removeServiceDiscoveryItem, setVHostManager, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceDiscoveryItem, updateServiceEntity
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
nodeConnected, nodeDisconnected
getComponentId, getName, initializationCompleted, isInitializationComplete, processPacket, release, setName
getComponentId, getNodesConnected
handleDomainChange, handlePresenceSet, isLocalDomain
getName
getDefHostName
public 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)
OnlineJidsReporter
containsJid
in interface OnlineJidsReporter
containsJid
in class SessionManager
jid
- a user's JID for whom we query information.public void everySecond()
AbstractMessageReceiver
everySecond
in class SessionManager
public void everyMinute()
AbstractMessageReceiver
everyMinute
in class SessionManager
public void everyHour()
AbstractMessageReceiver
everyHour
in class AbstractMessageReceiver
public boolean fastAddOutPacket(Packet packet)
SessionManagerClusteredIfc
fastAddOutPacket
in interface SessionManagerClusteredIfc
fastAddOutPacket
in class SessionManager
boolean
public void handleLocalPacket(Packet packet, XMPPResourceConnection conn)
handleLocalPacket
in class SessionManager
public void handleLogin(BareJID userId, XMPPResourceConnection conn)
handleLogin
in interface SessionManagerHandler
handleLogin
in class SessionManager
public void handleLogout(BareJID userId, XMPPResourceConnection conn)
handleLogout
in interface SessionManagerHandler
handleLogout
in class SessionManager
public void handleResourceBind(XMPPResourceConnection conn)
handleResourceBind
in interface SessionManagerHandler
handleResourceBind
in class SessionManager
public void initBindings(Bindings binds)
BasicComponent
initBindings
in class SessionManager
binds
- A mapping of key/value pairs, all of whose keys are Strings.public void onNodeConnected(JID jid)
onNodeConnected
in class BasicComponent
public void onNodeDisconnected(JID jid)
onNodeDisconnected
in class BasicComponent
public int processingInThreads()
AbstractMessageReceiver
processingInThreads
in class SessionManager
public int processingOutThreads()
AbstractMessageReceiver
processingOutThreads
in class SessionManager
public 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 SessionManager
packet
- to be processedpublic void processPacket(Packet packet, XMPPResourceConnection conn)
SessionManagerClusteredIfc
processPacket
in interface SessionManagerClusteredIfc
processPacket
in class SessionManager
public void processPresenceUpdate(XMPPSession session, Element packet)
SessionManagerClusteredIfc
processPresenceUpdate
in interface SessionManagerClusteredIfc
processPresenceUpdate
in class SessionManager
session
- is a XMPPSession
packet
- is a Element
public ComponentInfo getComponentInfo()
ServerComponent
getComponentInfo
in interface ServerComponent
getComponentInfo
in class BasicComponent
public JID[] getConnectionIdsForJid(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)
AbstractMessageReceiver
Map
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 Configurable
getDefaults
in class SessionManager
params
- 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()
BasicComponent
getDiscoDescription
in class SessionManager
String
public void getStatistics(StatisticsList list)
AbstractMessageReceiver
Level.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 StatisticsContainerIfc
getStatistics
in class SessionManager
list
- is a StatistcsList
where all statistics are stored.public ClusteringStrategyIfc getStrategy()
public XMPPResourceConnection getXMPPResourceConnection(Packet p)
SessionManagerClusteredIfc
getXMPPResourceConnection
in interface SessionManagerClusteredIfc
getXMPPResourceConnection
in class SessionManager
XMPPResourceConnection
public ConcurrentHashMap<JID,XMPPResourceConnection> getXMPPResourceConnections()
SessionManagerClusteredIfc
getXMPPResourceConnections
in interface SessionManagerClusteredIfc
ConcurrentHashMap<JID,XMPPResourceConnection>
public ConcurrentHashMap<BareJID,XMPPSession> getXMPPSessions()
SessionManagerClusteredIfc
getXMPPSessions
in interface SessionManagerClusteredIfc
ConcurrentHashMap<BareJID,XMPPSession>
public boolean hasCompleteJidsInfo()
OnlineJidsReporter
hasCompleteJidsInfo
in interface OnlineJidsReporter
hasCompleteJidsInfo
in class SessionManager
public boolean hasXMPPResourceConnectionForConnectionJid(JID connJid)
SessionManagerClusteredIfc
hasXMPPResourceConnectionForConnectionJid
in interface SessionManagerClusteredIfc
public void setClusterController(ClusterControllerIfc cl_controller)
ClusteredComponentIfc
setClusterController
in interface ClusteredComponentIfc
setClusterController
in class BasicComponent
cl_controller
- cluster controller object used for cluster
communicationpublic void setProperties(Map<String,Object> props) throws ConfigurationException
Configurable
setProperties
in interface Configurable
setProperties
in class SessionManager
props
- 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 SessionManager
conn
- 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 SessionManager
Copyright © 2019 "Tigase, Inc.". All rights reserved.