From: Anjo K. <an...@us...> - 2008-04-16 05:37:36
|
Update of /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv7205/Sources/er/extensions Modified Files: ERXApplication.java Log Message: checkmemory now should work when kill timer is not set Index: ERXApplication.java =================================================================== RCS file: /cvsroot/wonder/Wonder/Common/Frameworks/ERExtensions/Sources/er/extensions/ERXApplication.java,v retrieving revision 1.211 retrieving revision 1.212 diff -C2 -d -r1.211 -r1.212 *** ERXApplication.java 15 Apr 2008 15:48:12 -0000 1.211 --- ERXApplication.java 16 Apr 2008 05:37:29 -0000 1.212 *************** *** 1010,1013 **** --- 1010,1015 ---- * @author ak */ + private boolean refusingByMemoryCheck = false; + protected void checkMemory() { if (memoryThreshold != null) { *************** *** 1031,1049 **** boolean shouldRefuse = (used > threshold); if (isRefusingNewSessions() != shouldRefuse) { ! // not changing anything when the kill timer is set (we ! // already refusing session by monitor) ! boolean hasKillTimerSetting = ERXProperties.intForKey("ERTimeToKill") > 0; ! if (_killTimer == null && hasKillTimerSetting) { ! // using super, so we don't interfere with the kill ! // timer, as ! // this is called when we actually have a lot of ! // sessions at the moment ! super.refuseNewSessions(shouldRefuse); ! log.error("Refuse new sessions set to: " + shouldRefuse); ! } ! else { ! if (hasKillTimerSetting) { ! log.info("Refuse new sessions should be set to " + shouldRefuse + ", but kill timer is active or not set at all via ERTimeToKill"); } } } --- 1033,1050 ---- boolean shouldRefuse = (used > threshold); if (isRefusingNewSessions() != shouldRefuse) { ! if(isRefusingNewSessions()) { ! // not changing anything when refuseNewSessions was called externally. ! if(refusingByMemoryCheck) { ! refusingByMemoryCheck = false; ! refuseNewSessions(false); ! log.error("Refuse new sessions set to: false"); ! } else { ! log.info("Refuse new sessions should be set to false, but we were refusing externally"); } + } else { + refusingByMemoryCheck = true; + refuseNewSessions(true); + resetKillTimer(false); + log.error("Refuse new sessions set to: true"); } } *************** *** 1062,1065 **** --- 1063,1074 ---- public void refuseNewSessions(boolean value) { super.refuseNewSessions(value); + resetKillTimer(isRefusingNewSessions()); + } + + /** + * Sets the kill timer. + * @param install + */ + private void resetKillTimer(boolean install) { // we assume that we changed our mind about killing the instance. if (_killTimer != null) { |