Java Doc for JvmRouteBinderValve.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) 


java.lang.Object
   org.apache.catalina.valves.ValveBase
      org.apache.catalina.ha.session.JvmRouteBinderValve

JvmRouteBinderValve
public class JvmRouteBinderValve extends ValveBase implements ClusterValve,Lifecycle(Code)
Valve to handle Tomcat jvmRoute takeover using mod_jk module after node failure. After a node crashed the next request going to other cluster node. Now the answering from apache is slower ( make some error handshaking. Very bad with apache at my windows.). We rewrite now the cookie jsessionid information to the backup cluster node. After the next response all client request goes direct to the backup node. The change sessionid send also to all other cluster nodes. Well, now the session stickyness work directly to the backup node and traffic don't go back too restarted cluster nodes! At all cluster node you must configure the as ClusterListener since 5.5.10 org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener JvmRouteSessionIDBinderListener or before with org.apache.catalina.ha.session.JvmRouteSessionIDBinderListenerLifecycle. Add this Valve to your host definition at conf/server.xml . Since 5.5.10 as direct cluster valve:
 <Cluster>
 <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve" />  
 </Cluster>
 

Before 5.5.10 as Host element:
 <Hostr>
 <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve" />  
 </Hostr>
 
Trick:
You can enable this mod_jk turnover mode via JMX before you drop a node to all backup nodes! Set enable true on all JvmRouteBinderValve backups, disable worker at mod_jk and then drop node and restart it! Then enable mod_jk Worker and disable JvmRouteBinderValves again. This use case means that only requested session are migrated.
author:
   Peter Rossbach
version:
   $Revision: 467222 $ $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $


Field Summary
protected  CatalinaClustercluster
    
protected  booleanenabled
    
final protected static  Stringinfo
     The descriptive information about this implementation.
protected  LifecycleSupportlifecycle
     The lifecycle event support for this component.
public static  org.apache.juli.logging.Loglog
    
protected  longnumberOfSessions
    
protected  StringsessionIdAttribute
    
protected  StringManagersm
     The string manager for this package.
protected  booleanstarted
    


Method Summary
public  voidaddLifecycleListener(LifecycleListener listener)
     Add a lifecycle event listener to this component.
protected  voidchangeSessionID(Request request, Response response, String sessionId, String newSessionID, Session catalinaSession)
    
public  LifecycleListener[]findLifecycleListeners()
     Get the lifecycle listeners associated with this lifecycle.
public  CatalinaClustergetCluster()
    
public  booleangetEnabled()
    
public  StringgetInfo()
     Return descriptive information about this implementation.
protected  StringgetLocalJvmRoute(Request request)
    
protected  ManagergetManager(Request request)
    
public  longgetNumberOfSessions()
    
public  StringgetSessionIdAttribute()
     set session id attribute to failed node for request.
protected  voidhandleJvmRoute(Request request, Response response, String sessionId, String localJvmRoute)
     Handle jvmRoute stickyness after tomcat instance failed.
protected  voidhandlePossibleTurnover(Request request, Response response)
     handle possible session turn over.
public  voidinvoke(Request request, Response response)
     Detect possible the JVMRoute change at cluster backup node..
public  voidremoveLifecycleListener(LifecycleListener listener)
     Remove a lifecycle event listener from this component.
protected  voidsendSessionIDClusterBackup(ClusterManager manager, Request request, String sessionId, String newSessionID)
     Send the changed Sessionid to all clusternodes.
public  voidsetCluster(CatalinaCluster cluster)
    
public  voidsetEnabled(boolean enabled)
    
protected  voidsetNewSessionCookie(Request request, Response response, String sessionId)
    
public  voidsetSessionIdAttribute(String sessionIdAttribute)
    
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.

Field Detail
cluster
protected CatalinaCluster cluster(Code)
the cluster



enabled
protected boolean enabled(Code)
enabled this component



info
final protected static String info(Code)
The descriptive information about this implementation.



lifecycle
protected LifecycleSupport lifecycle(Code)
The lifecycle event support for this component.



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



numberOfSessions
protected long numberOfSessions(Code)
number of session that no at this tomcat instanz hosted



sessionIdAttribute
protected String sessionIdAttribute(Code)



sm
protected StringManager sm(Code)
The string manager for this package.



started
protected boolean started(Code)
Has this component been started yet?





Method Detail
addLifecycleListener
public void addLifecycleListener(LifecycleListener listener)(Code)
Add a lifecycle event listener to this component.
Parameters:
  listener - The listener to add



changeSessionID
protected void changeSessionID(Request request, Response response, String sessionId, String newSessionID, Session catalinaSession)(Code)
change session id and send to all cluster nodes
Parameters:
  request - current request
Parameters:
  response - current response
Parameters:
  sessionId - original session id
Parameters:
  newSessionID - new session id for node migration
Parameters:
  catalinaSession - current session with original session id



findLifecycleListeners
public LifecycleListener[] findLifecycleListeners()(Code)
Get the lifecycle listeners associated with this lifecycle. If this Lifecycle has no listeners registered, a zero-length array is returned.



getCluster
public CatalinaCluster getCluster()(Code)
Returns the cluster.



getEnabled
public boolean getEnabled()(Code)
Returns the enabled.



getInfo
public String getInfo()(Code)
Return descriptive information about this implementation.



getLocalJvmRoute
protected String getLocalJvmRoute(Request request)(Code)
get jvmroute from engine
Parameters:
  request - current request return jvmRoute from ManagerBase or null



getManager
protected Manager getManager(Request request)(Code)
get Cluster DeltaManager
Parameters:
  request - current request manager or null



getNumberOfSessions
public long getNumberOfSessions()(Code)
Returns the number of migrated sessions.



getSessionIdAttribute
public String getSessionIdAttribute()(Code)
set session id attribute to failed node for request. Returns the sessionIdAttribute.



handleJvmRoute
protected void handleJvmRoute(Request request, Response response, String sessionId, String localJvmRoute)(Code)
Handle jvmRoute stickyness after tomcat instance failed. After this correction a new Cookie send to client with new jvmRoute and the SessionID change propage to the other cluster nodes.
Parameters:
  request - current request
Parameters:
  response - Tomcat Response
Parameters:
  sessionId - request SessionID from Cookie
Parameters:
  localJvmRoute - local jvmRoute



handlePossibleTurnover
protected void handlePossibleTurnover(Request request, Response response)(Code)
handle possible session turn over.
See Also:   JvmRouteBinderValve.handleJvmRoute(RequestResponseStringString)
Parameters:
  request - current request
Parameters:
  response - current response



invoke
public void invoke(Request request, Response response) throws IOException, ServletException(Code)
Detect possible the JVMRoute change at cluster backup node..
Parameters:
  request - tomcat request being processed
Parameters:
  response - tomcat response being processed
exception:
  IOException - if an input/output error has occurred
exception:
  ServletException - if a servlet error has occurred



removeLifecycleListener
public void removeLifecycleListener(LifecycleListener listener)(Code)
Remove a lifecycle event listener from this component.
Parameters:
  listener - The listener to add



sendSessionIDClusterBackup
protected void sendSessionIDClusterBackup(ClusterManager manager, Request request, String sessionId, String newSessionID)(Code)
Send the changed Sessionid to all clusternodes.
See Also:   JvmRouteSessionIDBinderListener.messageReceived(ClusterMessage)
Parameters:
  manager - ClusterManager
Parameters:
  sessionId - current failed sessionid
Parameters:
  newSessionID - new session id, bind to the new cluster node



setCluster
public void setCluster(CatalinaCluster cluster)(Code)

Parameters:
  cluster - The cluster to set.



setEnabled
public void setEnabled(boolean enabled)(Code)

Parameters:
  enabled - The enabled to set.



setNewSessionCookie
protected void setNewSessionCookie(Request request, Response response, String sessionId)(Code)
Sets a new cookie for the given session id and response and see org.apache.catalina.connector.Request.configureSessionCookie(javax.servlet.http.Cookie)
Parameters:
  request - current request
Parameters:
  response - Tomcat Response
Parameters:
  sessionId - The session id



setSessionIdAttribute
public void setSessionIdAttribute(String sessionIdAttribute)(Code)
get name of failed reqeust session attribute
Parameters:
  sessionIdAttribute - The sessionIdAttribute to set.



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.
exception:
  LifecycleException - if this component detects a fatal error that prevents thiscomponent 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.
exception:
  LifecycleException - if this component detects a fatal error that needs to bereported



Fields inherited from org.apache.catalina.valves.ValveBase
protected Container container(Code)(Java Doc)
protected Log containerLog(Code)(Java Doc)
protected ObjectName controller(Code)(Java Doc)
protected String domain(Code)(Java Doc)
protected static String info(Code)(Java Doc)
protected MBeanServer mserver(Code)(Java Doc)
protected Valve next(Code)(Java Doc)
protected ObjectName oname(Code)(Java Doc)
final protected static StringManager sm(Code)(Java Doc)

Methods inherited from org.apache.catalina.valves.ValveBase
public void backgroundProcess()(Code)(Java Doc)
public ObjectName createObjectName(String domain, ObjectName parent) throws MalformedObjectNameException(Code)(Java Doc)
public void event(Request request, Response response, CometEvent event) throws IOException, ServletException(Code)(Java Doc)
public Container getContainer()(Code)(Java Doc)
public ObjectName getContainerName()(Code)(Java Doc)
public ObjectName getController()(Code)(Java Doc)
public String getDomain()(Code)(Java Doc)
public String getInfo()(Code)(Java Doc)
public Valve getNext()(Code)(Java Doc)
public ObjectName getObjectName()(Code)(Java Doc)
public ObjectName getParentName(ObjectName valveName)(Code)(Java Doc)
abstract public void invoke(Request request, Response response) throws IOException, ServletException(Code)(Java Doc)
public void postDeregister()(Code)(Java Doc)
public void postRegister(Boolean registrationDone)(Code)(Java Doc)
public void preDeregister() throws Exception(Code)(Java Doc)
public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception(Code)(Java Doc)
public void setContainer(Container container)(Code)(Java Doc)
public void setController(ObjectName controller)(Code)(Java Doc)
public void setNext(Valve valve)(Code)(Java Doc)
public void setObjectName(ObjectName oname)(Code)(Java Doc)
public String toString()(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(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.