fhanik 2004/01/14 21:29:06 Modified: modules/cluster/src/share/org/apache/catalina/cluster/session DeltaManager.java DeltaSession.java Log: small fixes Revision Changes Path 1.8 +22 -7 jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java Index: DeltaManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DeltaManager.java 15 Jan 2004 04:19:50 -0000 1.7 +++ DeltaManager.java 15 Jan 2004 05:29:05 -0000 1.8 @@ -479,6 +479,9 @@ DeltaSession session = getNewDeltaSession(); session.readObjectData(ois); session.setManager(this); + session.setValid(true); + session.setPrimarySession(false); + session.access(); sessions.put(session.getId(), session); } } catch (ClassNotFoundException e) { @@ -660,6 +663,14 @@ SessionMessage.EVT_GET_ALL_SESSIONS, null, "GET-ALL"); + //just to make sure the other server has the context started +// long timetowait = 20000-mbr.getMemberAliveTime(); +// if ( timetowait > 0 ) { +// log.info("The other server has not been around more than 20 seconds, will sleep for "+timetowait+" ms. in order to let it startup"); +// try { Thread.currentThread().sleep(timetowait); } catch ( Exception x ) {} +// }//end if + + //request session state cluster.send(msg, mbr); log.warn("Manager["+getName()+"], requesting session state from "+mbr+ ". This operation will timeout if no session state has been received within "+ @@ -712,6 +723,7 @@ // Expire all active sessions if ( this.getExpireSessionsOnShutdown() ) { + log.info("Expiring sessions upon shutdown"); Session sessions[] = findSessions(); for (int i = 0; i < sessions.length; i++) { DeltaSession session = (DeltaSession) sessions[i]; @@ -884,9 +896,12 @@ case SessionMessage.EVT_SESSION_DELTA : { byte[] delta = msg.getSession(); DeltaSession session = (DeltaSession)findSession(msg.getSessionID()); - DeltaRequest dreq = loadDeltaRequest(session,delta); - dreq.execute(session); - session.setPrimarySession(false); + if (session != null) { + DeltaRequest dreq = loadDeltaRequest(session, delta); + dreq.execute(session); + session.setPrimarySession(false); + session.access(); + } break; } 1.9 +7 -5 jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java Index: DeltaSession.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- DeltaSession.java 13 Jan 2004 05:26:59 -0000 1.8 +++ DeltaSession.java 15 Jan 2004 05:29:06 -0000 1.9 @@ -641,7 +641,9 @@ expire(true); } else if ( timeIdle >= (2*maxInactiveInterval) ) { //if the session has been idle twice as long as allowed, - //the primary session has probably crashed + //the primary session has probably crashed, and no other + //requests are coming in. that is why we do this. otherwise + //we would have a memory leak expire(true); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]