Java Doc for SimpleTcpReplicationManager.java in  » Sevlet-Container » apache-tomcat-6.0.14 » org » apache » catalina » ha » session » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Sevlet Container » apache tomcat 6.0.14 » org.apache.catalina.ha.session 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


org.apache.catalina.session.StandardManager
   org.apache.catalina.ha.session.SimpleTcpReplicationManager

SimpleTcpReplicationManager
public class SimpleTcpReplicationManager extends StandardManager implements ClusterManager(Code)
Title: Tomcat Session Replication for Tomcat 4.0
Description: A very simple straight forward implementation of session replication of servers in a cluster.
This session replication is implemented "live". By live I mean, when a session attribute is added into a session on Node A a message is broadcasted to other messages and setAttribute is called on the replicated sessions.
A full description of this implementation can be found under Filip's Tomcat Page
Copyright: See apache license Company: www.filip.net
author:
   Filip Hanik
author:
   Bela Ban (modifications for synchronous replication)
version:
   1.0 for TC 4.0
version:
   Description: The InMemoryReplicationManager is a session manager that replicated
version:
   session information in memory.
version:
  


version:
   The InMemoryReplicationManager extends the StandardManager hence it allows for us
version:
   to inherit all the basic session management features like expiration, session listeners etc
version:
  


version:
   To communicate with other nodes in the cluster, the InMemoryReplicationManager sends out 7 different type of multicast messages
version:
   all defined in the SessionMessage class.

version:
   When a session is replicated (not an attribute added/removed) the session is serialized into
version:
   a byte array using the StandardSession.readObjectData, StandardSession.writeObjectData methods.


Field Summary
protected  CatalinaClustercluster
    
protected  booleandefaultMode
    
protected  booleandistributable
    
protected  java.util.HashMapinvalidatedSessions
    
public static  org.apache.juli.logging.Loglog
    
protected  StringmChannelConfig
    
protected  booleanmChannelStarted
    
protected  booleanmExpireSessionsOnShutdown
    
protected  StringmGroupName
    
protected  booleanmManagerRunning
    
protected  booleanmPrintToScreen
    
protected  Stringname
    
protected  booleanstateTransferred
     Flag to keep track if the state has been transferred or not Assumes false.
protected  booleansynchronousReplication
     Use synchronous rather than asynchronous replication.
protected  booleanuseDirtyFlag
    

Constructor Summary
public  SimpleTcpReplicationManager()
    

Method Summary
public  ClusterManagercloneFromTemplate()
    
protected  SessioncreateSession(String sessionId, boolean notify, boolean setId)
     Creates a HTTP session.
public  SessioncreateSession(String sessionId)
     Construct and return a new session object, based on the default settings specified by this Manager's properties.
public  booleandoDomainReplication()
    
public  CatalinaClustergetCluster()
    
public  booleangetDistributable()
    
public  booleangetExpireSessionsOnShutdown()
    
public  String[]getInvalidatedSessions()
    
public  StringgetName()
    
public  ReplicationStreamgetReplicationStream(byte[] data)
    
public  ReplicationStreamgetReplicationStream(byte[] data, int offset, int length)
    
public  booleanisDefaultMode()
    
public  booleanisManagerRunning()
    
public  booleanisNotifyListenersOnReplication()
    
public  booleanisStateTransferred()
    
public  voidmessageDataReceived(ClusterMessage cmsg)
    
protected  voidmessageReceived(SessionMessage msg, Member sender)
     This method is called by the received thread when a SessionMessage has been received from one of the other nodes in the cluster.
protected  SessionreadSession(byte[] data, String sessionId)
     Reinstantiates a serialized session from the data passed in.
public  ClusterMessagerequestCompleted(String sessionId)
    
public  voidsessionInvalidated(String sessionId)
    
public  voidsetCluster(CatalinaCluster cluster)
    
public  voidsetDefaultMode(boolean defaultMode)
    
public  voidsetDistributable(boolean dist)
    
public  voidsetDomainReplication(boolean sendClusterDomainOnly)
    
public  voidsetExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)
    
public  voidsetName(String name)
    
public  voidsetNotifyListenersOnReplication(boolean notifyListenersOnReplication)
    
public  voidsetPrintToScreen(boolean printtoscreen)
    
public  voidsetSynchronousReplication(boolean flag)
    
public  voidsetUseDirtyFlag(boolean usedirtyflag)
    
public  voidstart()
     Prepare for the beginning of active use of the public methods of this component.
public  voidstop()
     Gracefully terminate the active use of the public methods of this component.
public  voidunload()
     Override persistence since they don't go hand in hand with replication for now.
protected  byte[]writeSession(Session session)
    

Field Detail
cluster
protected CatalinaCluster cluster(Code)



defaultMode
protected boolean defaultMode(Code)



distributable
protected boolean distributable(Code)



invalidatedSessions
protected java.util.HashMap invalidatedSessions(Code)



log
public static org.apache.juli.logging.Log log(Code)



mChannelConfig
protected String mChannelConfig(Code)



mChannelStarted
protected boolean mChannelStarted(Code)



mExpireSessionsOnShutdown
protected boolean mExpireSessionsOnShutdown(Code)
Set to true if we don't want the sessions to expire on shutdown



mGroupName
protected String mGroupName(Code)



mManagerRunning
protected boolean mManagerRunning(Code)



mPrintToScreen
protected boolean mPrintToScreen(Code)



name
protected String name(Code)



stateTransferred
protected boolean stateTransferred(Code)
Flag to keep track if the state has been transferred or not Assumes false.



synchronousReplication
protected boolean synchronousReplication(Code)
Use synchronous rather than asynchronous replication. Every session modification (creation, change, removal etc) will be sent to all members. The call will then wait for max milliseconds, or forever (if timeout is 0) for all responses.



useDirtyFlag
protected boolean useDirtyFlag(Code)




Constructor Detail
SimpleTcpReplicationManager
public SimpleTcpReplicationManager()(Code)
Constructor, just calls super()




Method Detail
cloneFromTemplate
public ClusterManager cloneFromTemplate()(Code)



createSession
protected Session createSession(String sessionId, boolean notify, boolean setId)(Code)
Creates a HTTP session. Most of the code in here is copied from the StandardManager. This is not pretty, yeah I know, but it was necessary since the StandardManager had hard coded the session instantiation to the a StandardSession, when we actually want to instantiate a ReplicatedSession
If the call comes from the Tomcat servlet engine, a SessionMessage goes out to the other nodes in the cluster that this session has been created.
Parameters:
  notify - - if set to true the other nodes in the cluster will be notified.This flag is needed so that we can create a session before we deserializea replicated one
See Also:   ReplicatedSession



createSession
public Session createSession(String sessionId)(Code)
Construct and return a new session object, based on the default settings specified by this Manager's properties. The session id will be assigned by this method, and available via the getId() method of the returned session. If a new session cannot be created for any reason, return null.
exception:
  IllegalStateException - if a new session cannot beinstantiated for any reason



doDomainReplication
public boolean doDomainReplication()(Code)



getCluster
public CatalinaCluster getCluster()(Code)



getDistributable
public boolean getDistributable()(Code)



getExpireSessionsOnShutdown
public boolean getExpireSessionsOnShutdown()(Code)



getInvalidatedSessions
public String[] getInvalidatedSessions()(Code)



getName
public String getName()(Code)



getReplicationStream
public ReplicationStream getReplicationStream(byte[] data) throws IOException(Code)
Open Stream and use correct ClassLoader (Container) Switch ThreadClassLoader
Parameters:
  data - The object input stream
throws:
  IOException -



getReplicationStream
public ReplicationStream getReplicationStream(byte[] data, int offset, int length) throws IOException(Code)



isDefaultMode
public boolean isDefaultMode()(Code)
Returns the defaultMode.



isManagerRunning
public boolean isManagerRunning()(Code)



isNotifyListenersOnReplication
public boolean isNotifyListenersOnReplication()(Code)



isStateTransferred
public boolean isStateTransferred()(Code)



messageDataReceived
public void messageDataReceived(ClusterMessage cmsg)(Code)



messageReceived
protected void messageReceived(SessionMessage msg, Member sender)(Code)
This method is called by the received thread when a SessionMessage has been received from one of the other nodes in the cluster.
Parameters:
  msg - - the message received
Parameters:
  sender - - the sender of the message, this is used if we receive aEVT_GET_ALL_SESSION message, so that we only reply tothe requesting node



readSession
protected Session readSession(byte[] data, String sessionId)(Code)
Reinstantiates a serialized session from the data passed in. This will first call createSession() so that we get a fresh instance with all the managers set and all the transient fields validated. Then it calls Session.readObjectData(byte[]) to deserialize the object
Parameters:
  data - - a byte array containing session data a valid Session object, null if an error occurs



requestCompleted
public ClusterMessage requestCompleted(String sessionId)(Code)



sessionInvalidated
public void sessionInvalidated(String sessionId)(Code)



setCluster
public void setCluster(CatalinaCluster cluster)(Code)



setDefaultMode
public void setDefaultMode(boolean defaultMode)(Code)

Parameters:
  defaultMode - The defaultMode to set.



setDistributable
public void setDistributable(boolean dist)(Code)



setDomainReplication
public void setDomainReplication(boolean sendClusterDomainOnly)(Code)

Parameters:
  sendClusterDomainOnly - The sendClusterDomainOnly to set.



setExpireSessionsOnShutdown
public void setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)(Code)



setName
public void setName(String name)(Code)



setNotifyListenersOnReplication
public void setNotifyListenersOnReplication(boolean notifyListenersOnReplication)(Code)



setPrintToScreen
public void setPrintToScreen(boolean printtoscreen)(Code)



setSynchronousReplication
public void setSynchronousReplication(boolean flag)(Code)



setUseDirtyFlag
public void setUseDirtyFlag(boolean usedirtyflag)(Code)



start
public void start() throws LifecycleException(Code)
Prepare for the beginning of active use of the public methods of this component. This method should be called after configure(), and before any of the public methods of the component are utilized.
Starts the cluster communication channel, this will connect with the other nodes in the cluster, and request the current session state to be transferred to this node.
exception:
  IllegalStateException - if this component has already beenstarted
exception:
  LifecycleException - if this component detects a fatal errorthat prevents this component from being used



stop
public void stop() throws LifecycleException(Code)
Gracefully terminate the active use of the public methods of this component. This method should be the last one called on a given instance of this component.
This will disconnect the cluster communication channel and stop the listener thread.
exception:
  IllegalStateException - if this component has not been started
exception:
  LifecycleException - if this component detects a fatal errorthat needs to be reported



unload
public void unload() throws IOException(Code)
Override persistence since they don't go hand in hand with replication for now.



writeSession
protected byte[] writeSession(Session session)(Code)
Serialize a session into a byte array
This method simple calls the writeObjectData method on the session and returns the byte data from that call
Parameters:
  session - - the session to be serialized a byte array containing the session data, null if the serialization failed



Fields inherited from org.apache.catalina.session.StandardManager
final protected static String info(Code)(Java Doc)
protected LifecycleSupport lifecycle(Code)(Java Doc)
protected int maxActiveSessions(Code)(Java Doc)
protected static String name(Code)(Java Doc)
protected String pathname(Code)(Java Doc)
protected long processingTime(Code)(Java Doc)
protected int rejectedSessions(Code)(Java Doc)
protected boolean started(Code)(Java Doc)

Methods inherited from org.apache.catalina.session.StandardManager
public void addLifecycleListener(LifecycleListener listener)(Code)(Java Doc)
public Session createSession(String sessionId)(Code)(Java Doc)
protected void doLoad() throws ClassNotFoundException, IOException(Code)(Java Doc)
protected void doUnload() throws IOException(Code)(Java Doc)
protected File file()(Code)(Java Doc)
public LifecycleListener[] findLifecycleListeners()(Code)(Java Doc)
public String getInfo()(Code)(Java Doc)
public int getMaxActiveSessions()(Code)(Java Doc)
public String getName()(Code)(Java Doc)
public String getPathname()(Code)(Java Doc)
public int getRejectedSessions()(Code)(Java Doc)
public void load() throws ClassNotFoundException, IOException(Code)(Java Doc)
public void propertyChange(PropertyChangeEvent event)(Code)(Java Doc)
public void removeLifecycleListener(LifecycleListener listener)(Code)(Java Doc)
public void setContainer(Container container)(Code)(Java Doc)
public void setMaxActiveSessions(int max)(Code)(Java Doc)
public void setPathname(String pathname)(Code)(Java Doc)
public void setRejectedSessions(int rejectedSessions)(Code)(Java Doc)
public void start() throws LifecycleException(Code)(Java Doc)
public void stop() throws LifecycleException(Code)(Java Doc)
public void unload() throws IOException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.