本文整理汇总了Java中org.apache.catalina.ha.session.DeltaSession类的典型用法代码示例。如果您正苦于以下问题:Java DeltaSession类的具体用法?Java DeltaSession怎么用?Java DeltaSession使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
DeltaSession类属于org.apache.catalina.ha.session包,在下文中一共展示了DeltaSession类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: resetReplicationRequest
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Fix memory leak for long sessions with many changes, when no backup member exists!
* @param request current request after response is generated
* @param isCrossContext check crosscontext threadlocal
*/
protected void resetReplicationRequest(Request request, boolean isCrossContext) {
Session contextSession = request.getSessionInternal(false);
if(contextSession instanceof DeltaSession){
resetDeltaRequest(contextSession);
((DeltaSession)contextSession).setPrimarySession(true);
}
if(isCrossContext) {
List<DeltaSession> sessions = crossContextSessions.get();
if(sessions != null && sessions.size() >0) {
Iterator<DeltaSession> iter = sessions.iterator();
for(; iter.hasNext() ;) {
Session session = iter.next();
resetDeltaRequest(session);
if(session instanceof DeltaSession)
((DeltaSession)contextSession).setPrimarySession(true);
}
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:26,代码来源:ReplicationValve.java
示例2: resetReplicationRequest
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Fix memory leak for long sessions with many changes, when no backup
* member exists!
*
* @param request
* current request after response is generated
* @param isCrossContext
* check crosscontext threadlocal
*/
protected void resetReplicationRequest(Request request, boolean isCrossContext) {
Session contextSession = request.getSessionInternal(false);
if (contextSession instanceof DeltaSession) {
resetDeltaRequest(contextSession);
((DeltaSession) contextSession).setPrimarySession(true);
}
if (isCrossContext) {
List<DeltaSession> sessions = crossContextSessions.get();
if (sessions != null && sessions.size() > 0) {
Iterator<DeltaSession> iter = sessions.iterator();
for (; iter.hasNext();) {
Session session = iter.next();
resetDeltaRequest(session);
if (session instanceof DeltaSession)
((DeltaSession) contextSession).setPrimarySession(true);
}
}
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:30,代码来源:ReplicationValve.java
示例3: sendCrossContextSession
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的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
示例4: sendCrossContextSession
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的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
示例5: registerReplicationSession
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Register all cross context sessions inside endAccess.
* Use a list with contains check, that the Portlet API can include a lot of fragments from same or
* different applications with session changes.
*
* @param session cross context session
*/
public void registerReplicationSession(DeltaSession session) {
List<DeltaSession> sessions = crossContextSessions.get();
if(sessions != null) {
if(!sessions.contains(session)) {
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.registerSession",
session.getIdInternal(),
session.getManager().getContainer().getName()));
sessions.add(session);
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:20,代码来源:ReplicationValve.java
示例6: invoke
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Log the interesting request parameters, invoke the next Valve in the
* sequence, and log the interesting response parameters.
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
@Override
public void invoke(Request request, Response response)
throws IOException, ServletException
{
long totalstart = 0;
//this happens before the request
if(doStatistics()) {
totalstart = System.currentTimeMillis();
}
if (primaryIndicator) {
createPrimaryIndicator(request) ;
}
Context context = request.getContext();
boolean isCrossContext = context != null
&& context instanceof StandardContext
&& ((StandardContext) context).getCrossContext();
try {
if(isCrossContext) {
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.add"));
//FIXME add Pool of Arraylists
crossContextSessions.set(new ArrayList<DeltaSession>());
}
getNext().invoke(request, response);
if(context != null && cluster != null
&& context.getManager() instanceof ClusterManager) {
ClusterManager clusterManager = (ClusterManager) context.getManager();
// valve cluster can access manager - other cluster handle replication
// at host level - hopefully!
if(cluster.getManager(clusterManager.getName()) == null)
return ;
if(cluster.hasMembers()) {
sendReplicationMessage(request, totalstart, isCrossContext, clusterManager, cluster);
} else {
resetReplicationRequest(request,isCrossContext);
}
}
} finally {
// Array must be remove: Current master request send endAccess at recycle.
// Don't register this request session again!
if(isCrossContext) {
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.remove"));
// crossContextSessions.remove() only exist at Java 5
// register ArrayList at a pool
crossContextSessions.set(null);
}
}
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:62,代码来源:ReplicationValve.java
示例7: resetDeltaRequest
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Reset DeltaRequest from session
* @param session HttpSession from current request or cross context session
*/
protected void resetDeltaRequest(Session session) {
if(log.isDebugEnabled()) {
log.debug(sm.getString("ReplicationValve.resetDeltaRequest" ,
session.getManager().getContainer().getName() ));
}
((DeltaSession)session).resetDeltaRequest();
}
开发者ID:liaokailin,项目名称:tomcat7,代码行数:12,代码来源:ReplicationValve.java
示例8: registerReplicationSession
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Register all cross context sessions inside endAccess. Use a list with
* contains check, that the Portlet API can include a lot of fragments from
* same or different applications with session changes.
*
* @param session
* cross context session
*/
public void registerReplicationSession(DeltaSession session) {
List<DeltaSession> sessions = crossContextSessions.get();
if (sessions != null) {
if (!sessions.contains(session)) {
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.registerSession", session.getIdInternal(),
session.getManager().getContainer().getName()));
sessions.add(session);
}
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:20,代码来源:ReplicationValve.java
示例9: invoke
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Log the interesting request parameters, invoke the next Valve in the
* sequence, and log the interesting response parameters.
*
* @param request
* The servlet request to be processed
* @param response
* The servlet response to be created
*
* @exception IOException
* if an input/output error occurs
* @exception ServletException
* if a servlet error occurs
*/
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
long totalstart = 0;
// this happens before the request
if (doStatistics()) {
totalstart = System.currentTimeMillis();
}
if (primaryIndicator) {
createPrimaryIndicator(request);
}
Context context = request.getContext();
boolean isCrossContext = context != null && context instanceof StandardContext
&& ((StandardContext) context).getCrossContext();
try {
if (isCrossContext) {
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.add"));
// FIXME add Pool of Arraylists
crossContextSessions.set(new ArrayList<DeltaSession>());
}
getNext().invoke(request, response);
if (context != null && cluster != null && context.getManager() instanceof ClusterManager) {
ClusterManager clusterManager = (ClusterManager) context.getManager();
// valve cluster can access manager - other cluster handle
// replication
// at host level - hopefully!
if (cluster.getManager(clusterManager.getName()) == null)
return;
if (cluster.hasMembers()) {
sendReplicationMessage(request, totalstart, isCrossContext, clusterManager, cluster);
} else {
resetReplicationRequest(request, isCrossContext);
}
}
} finally {
// Array must be remove: Current master request send endAccess at
// recycle.
// Don't register this request session again!
if (isCrossContext) {
if (log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.remove"));
// crossContextSessions.remove() only exist at Java 5
// register ArrayList at a pool
crossContextSessions.set(null);
}
}
}
开发者ID:how2j,项目名称:lazycat,代码行数:64,代码来源:ReplicationValve.java
示例10: resetDeltaRequest
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Reset DeltaRequest from session
*
* @param session
* HttpSession from current request or cross context session
*/
protected void resetDeltaRequest(Session session) {
if (log.isDebugEnabled()) {
log.debug(
sm.getString("ReplicationValve.resetDeltaRequest", session.getManager().getContainer().getName()));
}
((DeltaSession) session).resetDeltaRequest();
}
开发者ID:how2j,项目名称:lazycat,代码行数:14,代码来源:ReplicationValve.java
示例11: invoke
import org.apache.catalina.ha.session.DeltaSession; //导入依赖的package包/类
/**
* Log the interesting request parameters, invoke the next Valve in the
* sequence, and log the interesting response parameters.
*
* @param request The servlet request to be processed
* @param response The servlet response to be created
*
* @exception IOException if an input/output error occurs
* @exception ServletException if a servlet error occurs
*/
@Override
public void invoke(Request request, Response response)
throws IOException, ServletException
{
long totalstart = 0;
//this happens before the request
if(doStatistics()) {
totalstart = System.currentTimeMillis();
}
if (primaryIndicator) {
createPrimaryIndicator(request) ;
}
Context context = request.getContext();
boolean isCrossContext = context != null
&& context instanceof StandardContext
&& ((StandardContext) context).getCrossContext();
try {
if(isCrossContext) {
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.add"));
//FIXME add Pool of Arraylists
crossContextSessions.set(new ArrayList<DeltaSession>());
}
getNext().invoke(request, response);
if(context != null) {
Manager manager = context.getManager();
if (manager != null && manager instanceof ClusterManager) {
ClusterManager clusterManager = (ClusterManager) manager;
CatalinaCluster containerCluster = (CatalinaCluster) getContainer().getCluster();
if (containerCluster == null) {
if (log.isWarnEnabled())
log.warn(sm.getString("ReplicationValve.nocluster"));
return;
}
// valve cluster can access manager - other cluster handle replication
// at host level - hopefully!
if(containerCluster.getManager(clusterManager.getName()) == null)
return ;
if(containerCluster.hasMembers()) {
sendReplicationMessage(request, totalstart, isCrossContext, clusterManager, containerCluster);
} else {
resetReplicationRequest(request,isCrossContext);
}
}
}
} finally {
// Array must be remove: Current master request send endAccess at recycle.
// Don't register this request session again!
if(isCrossContext) {
if(log.isDebugEnabled())
log.debug(sm.getString("ReplicationValve.crossContext.remove"));
// crossContextSessions.remove() only exist at Java 5
// register ArrayList at a pool
crossContextSessions.set(null);
}
}
}
开发者ID:WhiteBearSolutions,项目名称:WBSAirback,代码行数:69,代码来源:ReplicationValve.java
注:本文中的org.apache.catalina.ha.session.DeltaSession类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论