|
Apache Tomcat 7.0.28 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.catalina.util.LifecycleBase org.apache.catalina.util.LifecycleMBeanBase org.apache.catalina.valves.ValveBase org.apache.catalina.ha.tcp.ReplicationValve
public class ReplicationValve
Implementation of a Valve that logs interesting contents from the specified Request (before processing) and the corresponding Response (after processing). It is especially useful in debugging problems related to headers and cookies.
This Valve may be attached to any Container, depending on the granularity of the logging you wish to perform.
primaryIndicator=true, then the request attribute org.apache.catalina.ha.tcp.isPrimarySession. is set true, when request processing is at sessions primary node.
Field Summary | |
---|---|
protected ThreadLocal<ArrayList<DeltaSession>> |
crossContextSessions
crossContext session container |
protected boolean |
doProcessingStats
doProcessingStats (default = off) |
protected Pattern |
filter
Filter expression |
protected long |
lastSendTime
|
protected long |
nrOfCrossContextSendRequests
|
protected long |
nrOfFilterRequests
|
protected long |
nrOfRequests
|
protected long |
nrOfSendRequests
|
protected boolean |
primaryIndicator
must primary change indicator set |
protected String |
primaryIndicatorName
Name of primary change indicator as request attribute |
protected static StringManager |
sm
The StringManager for this package. |
protected long |
totalRequestTime
|
protected long |
totalSendTime
|
Fields inherited from class org.apache.catalina.valves.ValveBase |
---|
asyncSupported, container, containerLog, next |
Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase |
---|
mserver |
Fields inherited from interface org.apache.catalina.Lifecycle |
---|
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT |
Constructor Summary | |
---|---|
ReplicationValve()
|
Method Summary | |
---|---|
protected void |
createPrimaryIndicator(Request request)
Mark Request that processed at primary node with attribute primaryIndicatorName |
boolean |
doStatistics()
Calc processing stats |
CatalinaCluster |
getCluster()
Returns the cluster the cluster deployer is associated with |
String |
getFilter()
|
String |
getInfo()
Return descriptive information about this Valve implementation. |
long |
getLastSendTime()
|
long |
getNrOfCrossContextSendRequests()
|
long |
getNrOfFilterRequests()
|
long |
getNrOfRequests()
|
long |
getNrOfSendRequests()
|
String |
getPrimaryIndicatorName()
|
long |
getTotalRequestTime()
|
long |
getTotalSendTime()
|
void |
invoke(Request request,
Response response)
Log the interesting request parameters, invoke the next Valve in the sequence, and log the interesting response parameters. |
boolean |
isPrimaryIndicator()
|
protected boolean |
isRequestWithoutSessionChange(String uri)
is request without possible session change |
void |
registerReplicationSession(DeltaSession session)
Register all cross context sessions inside endAccess. |
protected void |
resetDeltaRequest(Session session)
Reset DeltaRequest from session |
protected void |
resetReplicationRequest(Request request,
boolean isCrossContext)
Fix memory leak for long sessions with many changes, when no backup member exists! |
void |
resetStatistics()
reset the active statistics |
protected void |
send(ClusterManager manager,
CatalinaCluster cluster,
String sessionId)
send manager requestCompleted message to cluster |
protected void |
sendCrossContextSession(CatalinaCluster containerCluster)
Send all changed cross context sessions to backups |
protected void |
sendInvalidSessions(ClusterManager manager,
CatalinaCluster cluster)
check for session invalidations |
protected void |
sendMessage(Session session,
ClusterManager manager,
CatalinaCluster cluster)
Send message delta message from request session |
protected void |
sendReplicationMessage(Request request,
long totalstart,
boolean isCrossContext,
ClusterManager clusterManager,
CatalinaCluster containerCluster)
|
protected void |
sendSessionReplicationMessage(Request request,
ClusterManager manager,
CatalinaCluster cluster)
Send Cluster Replication Request |
void |
setCluster(CatalinaCluster cluster)
Associates the cluster deployer with a cluster |
void |
setFilter(String filter)
compile filter string to regular expression |
void |
setPrimaryIndicator(boolean primaryIndicator)
|
void |
setPrimaryIndicatorName(String primaryIndicatorName)
|
void |
setStatistics(boolean doProcessingStats)
Set Calc processing stats |
protected void |
updateStats(long requestTime,
long clusterTime)
Protocol cluster replications stats |
Methods inherited from class org.apache.catalina.valves.ValveBase |
---|
backgroundProcess, event, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setContainer, setNext, startInternal, stopInternal, toString |
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase |
---|
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister |
Methods inherited from class org.apache.catalina.util.LifecycleBase |
---|
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, init, removeLifecycleListener, setState, setState, start, stop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.apache.catalina.Valve |
---|
backgroundProcess, event, getNext, isAsyncSupported, setNext |
Field Detail |
---|
protected static final StringManager sm
protected Pattern filter
protected ThreadLocal<ArrayList<DeltaSession>> crossContextSessions
protected boolean doProcessingStats
protected long totalRequestTime
protected long totalSendTime
protected long nrOfRequests
protected long lastSendTime
protected long nrOfFilterRequests
protected long nrOfSendRequests
protected long nrOfCrossContextSendRequests
protected boolean primaryIndicator
protected String primaryIndicatorName
Constructor Detail |
---|
public ReplicationValve()
Method Detail |
---|
public String getInfo()
getInfo
in interface Valve
getInfo
in class ValveBase
public CatalinaCluster getCluster()
ClusterValve
getCluster
in interface ClusterValve
public void setCluster(CatalinaCluster cluster)
ClusterValve
setCluster
in interface ClusterValve
cluster
- The cluster to set.public String getFilter()
public void setFilter(String filter)
filter
- The filter to set.Pattern.compile(java.lang.String)
public boolean isPrimaryIndicator()
public void setPrimaryIndicator(boolean primaryIndicator)
primaryIndicator
- The primaryIndicator to set.public String getPrimaryIndicatorName()
public void setPrimaryIndicatorName(String primaryIndicatorName)
primaryIndicatorName
- The primaryIndicatorName to set.public boolean doStatistics()
public void setStatistics(boolean doProcessingStats)
resetStatistics()
public long getLastSendTime()
public long getNrOfRequests()
public long getNrOfFilterRequests()
public long getNrOfCrossContextSendRequests()
public long getNrOfSendRequests()
public long getTotalRequestTime()
public long getTotalSendTime()
public void registerReplicationSession(DeltaSession session)
session
- cross context sessionpublic void invoke(Request request, Response response) throws IOException, ServletException
invoke
in interface Valve
invoke
in class ValveBase
request
- The servlet request to be processedresponse
- The servlet response to be created
IOException
- if an input/output error occurs
ServletException
- if a servlet error occurspublic void resetStatistics()
protected void sendReplicationMessage(Request request, long totalstart, boolean isCrossContext, ClusterManager clusterManager, CatalinaCluster containerCluster)
request
- totalstart
- isCrossContext
- clusterManager
- containerCluster
- protected void sendCrossContextSession(CatalinaCluster containerCluster)
containerCluster
- protected void resetReplicationRequest(Request request, boolean isCrossContext)
request
- current request after response is generatedisCrossContext
- check crosscontext threadlocalprotected void resetDeltaRequest(Session session)
session
- HttpSession from current request or cross context sessionprotected void sendSessionReplicationMessage(Request request, ClusterManager manager, CatalinaCluster cluster)
request
- current requestmanager
- session managercluster
- replication clusterprotected void sendMessage(Session session, ClusterManager manager, CatalinaCluster cluster)
session
- current sessionmanager
- session managercluster
- replication clusterprotected void send(ClusterManager manager, CatalinaCluster cluster, String sessionId)
manager
- SessionManagercluster
- replication clustersessionId
- sessionid from the managerDeltaManager.requestCompleted(String)
,
SimpleTcpCluster.send(ClusterMessage)
protected void sendInvalidSessions(ClusterManager manager, CatalinaCluster cluster)
manager
- cluster
- protected boolean isRequestWithoutSessionChange(String uri)
uri
- The request uri
protected void updateStats(long requestTime, long clusterTime)
requestTime
- clusterTime
- protected void createPrimaryIndicator(Request request) throws IOException
request
-
IOException
|
Apache Tomcat 7.0.28 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |