本文整理汇总了Java中org.apache.catalina.ha.CatalinaCluster类的典型用法代码示例。如果您正苦于以下问题:Java CatalinaCluster类的具体用法?Java CatalinaCluster怎么用?Java CatalinaCluster使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CatalinaCluster类属于org.apache.catalina.ha包,在下文中一共展示了CatalinaCluster类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: sendSessionReplicationMessage
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send Cluster Replication Request
* @param request current request
* @param manager session manager
* @param cluster replication cluster
*/
protected void sendSessionReplicationMessage(Request request,
ClusterManager manager, CatalinaCluster cluster) {
Session session = request.getSessionInternal(false);
if (session != null) {
String uri = request.getDecodedRequestURI();
// request without session change
if (!isRequestWithoutSessionChange(uri)) {
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.invoke.uri", uri));
sendMessage(session,manager,cluster);
} else
if(doStatistics())
nrOfFilterRequests++;
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:23,代码来源:ReplicationValve.java
示例2: sendSessionIDClusterBackup
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send the changed Sessionid to all clusternodes.
*
* @see JvmRouteSessionIDBinderListener#messageReceived(
* org.apache.catalina.ha.ClusterMessage)
* @param sessionId
* current failed sessionid
* @param newSessionID
* new session id, bind to the new cluster node
*/
protected void sendSessionIDClusterBackup(Request request, String sessionId,
String newSessionID) {
CatalinaCluster c = getCluster();
if (c != null && !(getManager(request) instanceof BackupManager)) {
SessionIDMessage msg = new SessionIDMessage();
msg.setOrignalSessionID(sessionId);
msg.setBackupSessionID(newSessionID);
Context context = request.getContext();
msg.setContextName(context.getName());
msg.setHost(context.getParent().getName());
c.send(msg);
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:24,代码来源:JvmRouteBinderValve.java
示例3: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements
* of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException if this component detects a fatal error
* that prevents this component from being used
*/
@Override
protected synchronized void startInternal() throws LifecycleException {
try {
CatalinaCluster catclust = (CatalinaCluster)this.getCluster();
if (this.context == null) this.context = new ReplApplContext(this);
if ( catclust != null ) {
ReplicatedMap<String,Object> map =
new ReplicatedMap<String,Object>(this,
catclust.getChannel(),DEFAULT_REPL_TIMEOUT,
getName(),getClassLoaders());
map.setChannelSendOptions(mapSendOptions);
((ReplApplContext)this.context).setAttributeMap(map);
if (getAltDDName() != null) context.setAttribute(Globals.ALT_DD_ATTR, getAltDDName());
}
super.startInternal();
} catch ( Exception x ) {
log.error("Unable to start ReplicatedContext",x);
throw new LifecycleException("Failed to start ReplicatedContext",x);
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:29,代码来源:ReplicatedContext.java
示例4: sendReplicationMessage
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* @param request
* @param totalstart
* @param isCrossContext
* @param clusterManager
* @param containerCluster
*/
protected void sendReplicationMessage(Request request, long totalstart, boolean isCrossContext, ClusterManager clusterManager, CatalinaCluster containerCluster) {
//this happens after the request
long start = 0;
if(doStatistics()) {
start = System.currentTimeMillis();
}
try {
// send invalid sessions
// DeltaManager returns String[0]
if (!(clusterManager instanceof DeltaManager))
sendInvalidSessions(clusterManager, containerCluster);
// send replication
sendSessionReplicationMessage(request, clusterManager, containerCluster);
if(isCrossContext)
sendCrossContextSession(containerCluster);
} catch (Exception x) {
// FIXME we have a lot of sends, but the trouble with one node stops the correct replication to other nodes!
log.error(sm.getString("ReplicationValve.send.failure"), x);
} finally {
// FIXME this stats update are not cheap!!
if(doStatistics()) {
updateStats(totalstart,start);
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:33,代码来源:ReplicationValve.java
示例5: sendCrossContextSession
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send all changed cross context sessions to backups
* @param containerCluster
*/
protected void sendCrossContextSession(CatalinaCluster containerCluster) {
List<DeltaSession> sessions = crossContextSessions.get();
if(sessions != null && sessions.size() >0) {
for(Iterator<DeltaSession> iter = sessions.iterator(); iter.hasNext() ;) {
Session session = iter.next();
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.sendDelta",
session.getManager().getContainer().getName() ));
sendMessage(session,(ClusterManager)session.getManager(),containerCluster);
if(doStatistics()) {
nrOfCrossContextSendRequests++;
}
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:20,代码来源:ReplicationValve.java
示例6: sendSessionIDClusterBackup
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send the changed Sessionid to all clusternodes.
*
* @see JvmRouteSessionIDBinderListener#messageReceived(
* org.apache.catalina.ha.ClusterMessage)
* @param sessionId
* current failed sessionid
* @param newSessionID
* new session id, bind to the new cluster node
*/
protected void sendSessionIDClusterBackup(Request request, String sessionId, String newSessionID) {
CatalinaCluster c = getCluster();
if (c != null && !(getManager(request) instanceof BackupManager)) {
SessionIDMessage msg = new SessionIDMessage();
msg.setOrignalSessionID(sessionId);
msg.setBackupSessionID(newSessionID);
Context context = request.getContext();
msg.setContextName(context.getName());
msg.setHost(context.getParent().getName());
c.send(msg);
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:23,代码来源:JvmRouteBinderValve.java
示例7: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements of
* {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException
* if this component detects a fatal error that prevents this
* component from being used
*/
@Override
protected synchronized void startInternal() throws LifecycleException {
super.startInternal();
try {
CatalinaCluster catclust = (CatalinaCluster) this.getCluster();
if (catclust != null) {
ReplicatedMap<String, Object> map = new ReplicatedMap<String, Object>(this, catclust.getChannel(),
DEFAULT_REPL_TIMEOUT, getName(), getClassLoaders());
map.setChannelSendOptions(mapSendOptions);
((ReplApplContext) this.context).setAttributeMap(map);
}
} catch (Exception x) {
log.error("Unable to start ReplicatedContext", x);
throw new LifecycleException("Failed to start ReplicatedContext", x);
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:25,代码来源:ReplicatedContext.java
示例8: sendCrossContextSession
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send all changed cross context sessions to backups
*
* @param containerCluster
*/
protected void sendCrossContextSession(CatalinaCluster containerCluster) {
List<DeltaSession> sessions = crossContextSessions.get();
if (sessions != null && sessions.size() > 0) {
for (Iterator<DeltaSession> iter = sessions.iterator(); iter.hasNext();) {
Session session = iter.next();
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.sendDelta",
session.getManager().getContainer().getName()));
sendMessage(session, (ClusterManager) session.getManager(), containerCluster);
if (doStatistics()) {
nrOfCrossContextSendRequests++;
}
}
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:21,代码来源:ReplicationValve.java
示例9: sendSessionReplicationMessage
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send Cluster Replication Request
*
* @param request
* current request
* @param manager
* session manager
* @param cluster
* replication cluster
*/
protected void sendSessionReplicationMessage(Request request, ClusterManager manager, CatalinaCluster cluster) {
Session session = request.getSessionInternal(false);
if (session != null) {
String uri = request.getDecodedRequestURI();
// request without session change
if (!isRequestWithoutSessionChange(uri)) {
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.invoke.uri", uri));
sendMessage(session, manager, cluster);
} else if (doStatistics())
nrOfFilterRequests++;
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:25,代码来源:ReplicationValve.java
示例10: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements
* of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException if this component detects a fatal error
* that prevents this component from being used
*/
@SuppressWarnings("unchecked")
@Override
protected synchronized void startInternal() throws LifecycleException {
try {
CatalinaCluster catclust = (CatalinaCluster)this.getCluster();
if (this.context == null) this.context = new ReplApplContext(this);
if ( catclust != null ) {
ReplicatedMap map = new ReplicatedMap(this,catclust.getChannel(),DEFAULT_REPL_TIMEOUT,
getName(),getClassLoaders());
map.setChannelSendOptions(mapSendOptions);
((ReplApplContext)this.context).setAttributeMap(map);
if (getAltDDName() != null) context.setAttribute(Globals.ALT_DD_ATTR, getAltDDName());
}
super.startInternal();
} catch ( Exception x ) {
log.error("Unable to start ReplicatedContext",x);
throw new LifecycleException("Failed to start ReplicatedContext",x);
}
}
开发者ID:deathspeeder,项目名称:class-guard,代码行数:28,代码来源:ReplicatedContext.java
示例11: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements
* of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException if this component detects a fatal error
* that prevents this component from being used
*/
@Override
protected synchronized void startInternal() throws LifecycleException {
try {
CatalinaCluster catclust = (CatalinaCluster)this.getCluster();
if (this.context == null) this.context = new ReplApplContext(this);
if ( catclust != null ) {
ReplicatedMap map = new ReplicatedMap(this,catclust.getChannel(),DEFAULT_REPL_TIMEOUT,
getName(),getClassLoaders());
map.setChannelSendOptions(mapSendOptions);
((ReplApplContext)this.context).setAttributeMap(map);
if (getAltDDName() != null) context.setAttribute(Globals.ALT_DD_ATTR, getAltDDName());
}
super.startInternal();
} catch ( Exception x ) {
log.error("Unable to start ReplicatedContext",x);
throw new LifecycleException("Failed to start ReplicatedContext",x);
}
}
开发者ID:WhiteBearSolutions,项目名称:WBSAirback,代码行数:27,代码来源:ReplicatedContext.java
示例12: manageCluster
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
private void manageCluster(final Cluster cluster) {
if (cluster == null || cluster instanceof SimpleTomEETcpCluster) {
return;
}
Cluster current = cluster;
if (cluster instanceof SimpleTcpCluster) {
final Container container = cluster.getContainer();
current = new SimpleTomEETcpCluster((SimpleTcpCluster) cluster);
container.setCluster(current);
}
if (current instanceof CatalinaCluster) {
final CatalinaCluster haCluster = (CatalinaCluster) current;
TomEEClusterListener listener = SystemInstance.get().getComponent(TomEEClusterListener.class);
if (listener == null) {
listener = new TomEEClusterListener();
SystemInstance.get().setComponent(TomEEClusterListener.class, listener);
}
haCluster.addClusterListener(listener); // better to be a singleton
clusters.add(haCluster);
}
}
开发者ID:apache,项目名称:tomee,代码行数:24,代码来源:TomcatWebAppBuilder.java
示例13: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
@Override
protected void startInternal() throws LifecycleException {
super.startInternal();
if (getCluster() == null) {
Cluster cluster = getContainer().getCluster();
if (cluster instanceof CatalinaCluster) {
setCluster((CatalinaCluster)cluster);
}
}
if (cluster != null) cluster.registerManager(this);
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:12,代码来源:ClusterManagerBase.java
示例14: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements
* of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException if this component detects a fatal error
* that prevents this component from being used
*/
@Override
protected synchronized void startInternal() throws LifecycleException {
// Load the cluster component, if any
try {
if(cluster == null) {
Container host = getContainer();
if(host instanceof Host) {
if(host.getCluster() instanceof CatalinaCluster) {
setCluster((CatalinaCluster) host.getCluster());
}
}
}
if (cluster == null) {
throw new LifecycleException(
"There is no Cluster for ClusterSingleSignOn");
}
ClassLoader[] cls = new ClassLoader[] { this.getClass().getClassLoader() };
ReplicatedMap<String,SingleSignOnEntry> cache =
new ReplicatedMap<String,SingleSignOnEntry>(
this, cluster.getChannel(), rpcTimeout, cluster.getClusterName() + "-SSO-cache",
cls, terminateOnStartFailure);
cache.setChannelSendOptions(mapSendOptions);
this.cache = cache;
} catch (Throwable t) {
ExceptionUtils.handleThrowable(t);
throw new LifecycleException(
"ClusterSingleSignOn exception during clusterLoad " + t);
}
super.startInternal();
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:42,代码来源:ClusterSingleSignOn.java
示例15: startInternal
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Start this component and implement the requirements
* of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
*
* @exception LifecycleException if this component detects a fatal error
* that prevents this component from being used
*/
@Override
protected synchronized void startInternal() throws LifecycleException {
if (cluster == null) {
Cluster containerCluster = getContainer().getCluster();
if (containerCluster instanceof CatalinaCluster) {
setCluster((CatalinaCluster)containerCluster);
} else {
if (log.isWarnEnabled()) {
log.warn(sm.getString("ReplicationValve.nocluster"));
}
}
}
super.startInternal();
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:22,代码来源:ReplicationValve.java
示例16: sendMessage
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* Send message delta message from request session
* @param session current session
* @param manager session manager
* @param cluster replication cluster
*/
protected void sendMessage(Session session,
ClusterManager manager, CatalinaCluster cluster) {
String id = session.getIdInternal();
if (id != null) {
send(manager, cluster, id);
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:14,代码来源:ReplicationValve.java
示例17: send
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* send manager requestCompleted message to cluster
* @param manager SessionManager
* @param cluster replication cluster
* @param sessionId sessionid from the manager
* @see DeltaManager#requestCompleted(String)
* @see SimpleTcpCluster#send(ClusterMessage)
*/
protected void send(ClusterManager manager, CatalinaCluster cluster, String sessionId) {
ClusterMessage msg = manager.requestCompleted(sessionId);
if (msg != null) {
cluster.send(msg);
if(doStatistics())
nrOfSendRequests++;
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:17,代码来源:ReplicationValve.java
示例18: sendInvalidSessions
import org.apache.catalina.ha.CatalinaCluster; //导入依赖的package包/类
/**
* check for session invalidations
* @param manager
* @param cluster
*/
protected void sendInvalidSessions(ClusterManager manager, CatalinaCluster cluster) {
String[] invalidIds=manager.getInvalidatedSessions();
if ( invalidIds.length > 0 ) {
for ( int i=0;i<invalidIds.length; i++ ) {
try {
send(manager,cluster,invalidIds[i]);
} catch ( Exception x ) {
log.error(sm.getString("ReplicationValve.send.invalid.failure",invalidIds[i]),x);
}
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:18,代码来源:ReplicationValve.java
注:本文中的org.apache.catalina.ha.CatalinaCluster类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论