tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Drake" <...@pobox.com>
Subject [PATCH] JvmRoute changes w/attachments
Date Mon, 14 Jan 2002 14:32:36 GMT
Costin:

I noticed that my patch email got line-wrapped. So, I'm sending them as an
attachment.

Tom
----- Original Message -----
From: "Tom Drake" <rtd@pobox.com>
To: "Tomcat Developers List" <tomcat-dev@jakarta.apache.org>
Cc: <costinm@covalent.net>
Sent: Monday, January 14, 2002 6:19 AM
Subject: [PATCH] JvmRoute changes


| Costin:
|
| Sorry for the late response, but here are the patches you requested for
| JvmRoute.
| This tests out using the session example servlet.
|
| After inclusion of these patches, adding the following attribute to the
| <Engine>
| tag in server.xml
|
|     jvmRoute="fubar"
|
| Causes ".fubar" to be appended to the end of all session id's (generated
| by ManagerBase) as follows:
|
|     70AB699891C12D3748248D026012F815.fubar
|
| Tom
|
| P.S. Having never submitted a patch before, I wasn't sure whether you
wanted
| them all strung together like I've done here, or as attachments.
|
|
| Index: Engine.java
| ===================================================================
| RCS file:
|
/home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/En
| gine.java,v
| retrieving revision 1.7
| diff -u -r1.7 Engine.java
| --- Engine.java 16 Oct 2001 23:14:13 -0000 1.7
| +++ Engine.java 14 Jan 2002 13:48:07 -0000
| @@ -132,6 +132,18 @@
|       */
|      public void addDefaultContext(DefaultContext defaultContext);
|
| +    /**
| +     * Set the JvmRouteId for this engine.
| +     *
| +     * @param jvmRouteId the (new) JVM Route ID. Each Engine within a
| cluster
| +     *        must have the same JVM Route ID.
| +     */
| +    public void setJvmRoute(String jvmRouteId);
| +
| +    /**
| +     * Retrieve the JvmRouteId for this engine.
| +     */
| +    public String getJvmRoute();
|
|      // --------------------------------------------------------- Public
| Methods
|
|
|
| Index: StandardEngine.java
| ===================================================================
| RCS file:
|
/home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/co
| re/StandardEngine.java,v
| retrieving revision 1.12
| diff -u -r1.12 StandardEngine.java
| --- StandardEngine.java 21 Dec 2001 21:15:45 -0000 1.12
| +++ StandardEngine.java 14 Jan 2002 13:55:03 -0000
| @@ -143,6 +143,11 @@
|       */
|      private DefaultContext defaultContext;
|
| +    /**
| +     * The JVM Route ID for this Tomcat instance. All Route ID's must be
| unique
| +     * across the cluster.
| +     */
| +    private String jvmRouteId;
|
|      // -------------------------------------------------------------
| Properties
|
| @@ -278,6 +283,24 @@
|
|      }
|
| +    /**
| +     * Set the cluster-wide unique identifier for this Engine.
| +     * This value is only useful in a load-balancing scenario.
| +     * <p>
| +     * This property should not be changed once it is set.
| +     */
| +    public void setJvmRoute(String routeId) {
| +      this.log("StandardEngine.setJvmRoute="+routeId);
| +      jvmRouteId = routeId;
| +    }
| +
| +    /**
| +     * Retrieve the cluster-wide unique identifier for this Engine.
| +     * This value is only useful in a load-balancing scenario.
| +     */
| +    public String getJvmRoute() {
| +      return jvmRouteId;
| +    }
|
|      /**
|       * Disallow any attempt to set a parent for this Container, since an
|
| Index: ManagerBase.java
| ===================================================================
| RCS file:
|
/home/cvspublic/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/se
| ssion/ManagerBase.java,v
| retrieving revision 1.10
| diff -u -r1.10 ManagerBase.java
| --- ManagerBase.java 10 Dec 2001 01:24:41 -0000 1.10
| +++ ManagerBase.java 14 Jan 2002 14:06:45 -0000
| @@ -74,6 +74,7 @@
|  import java.util.HashMap;
|  import java.util.Random;
|  import org.apache.catalina.Container;
| +import org.apache.catalina.Engine;
|  import org.apache.catalina.Logger;
|  import org.apache.catalina.Manager;
|  import org.apache.catalina.Session;
| @@ -516,6 +517,30 @@
|
|
|      /**
| +     * Retrieve the enclosing Engine for this Manager.
| +     *
| +     * @return an Engine object (or null).
| +     */
| +    public Engine getEngine() {
| +      Engine e = null;
| +      for (Container c=getContainer(); e == null && c != null ;c =
| c.getParent()) {
| +        if (c != null && c instanceof Engine) {
| +          e = (Engine)c;
| +        }
| +      }
| +      return e;
| +    }
| +
| +    /**
| +     * Retrieve the JvmRoute for the enclosing Engine.
| +     * @return the JvmRoute or null.
| +     */
| +    public String getJvmRoute() {
| +      Engine e = getEngine();
| +      return e == null ? null : e.getJvmRoute();
| +    }
| +
| +    /**
|       * 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()
| @@ -547,6 +572,12 @@
|          session.setCreationTime(System.currentTimeMillis());
|          session.setMaxInactiveInterval(this.maxInactiveInterval);
|          String sessionId = generateSessionId();
| +        String jvmRoute = getJvmRoute();
| +        // @todo Move appending of jvmRoute generateSessionId()???
| +        if (jvmRoute != null) {
| +          sessionId += '.' + jvmRoute;
| +          session.setId(sessionId);
| +        }
|          /*
|          synchronized (sessions) {
|              while (sessions.get(sessionId) != null)        // Guarantee
| uniqueness
|
|
|
|
| ----- Original Message -----
| From: <costinm@covalent.net>
| To: "Tomcat Developers List" <tomcat-dev@jakarta.apache.org>
| Sent: Thursday, January 10, 2002 8:44 AM
| Subject: Re: Todo list for 4.0.2 b2
|
|
| | On Thu, 10 Jan 2002, Tom Drake wrote:
| |
| | > FYI:
| | >
| | > Based on previous discussions on this list, I've added
| setJvmRoute/JvmRoute
| | > to Engine
| | > (and StandardEngine) as part of the work I've been doing for
distributed
| | > sessions.
| |
| | Can you send the patch for this one ?
| |
| | There are just 2 changes that are needed - the methods in Engine and
| | about 2 lines of code in the session manager ( to check if vmRoute is
set
| | and if so add it to the session id ).
| |
| |
| |
| | Costin
| |
| |
| |
| | --
| | To unsubscribe, e-mail:
| <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
| | For additional commands, e-mail:
| <mailto:tomcat-dev-help@jakarta.apache.org>
| |
| |
| |
|

Mime
View raw message