From 0336480a3ecfa38f6ea35d37224eebd8f2f48507 Mon Sep 17 00:00:00 2001
From: karlchenofhell
Date: Fri, 5 Jan 2007 08:00:05 +0000
Subject: [PATCH] - the maxMemory-fix for the Sun JVM 1.4.2 wrongly also
applied to 1.6, thx to NN - added logging of reducing word-cache (log-level
fine) - disabled memprereq field in PerformanceQueues_p.html, because it is
now set by the collections db - minor changes to ConfigSkins / -Language
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3165 6c8d7289-2bf4-0310-a012-ef5d649a1542
---
htroot/ConfigLanguage_p.html | 10 ++++++----
htroot/ConfigSkins_p.html | 12 +++++++-----
htroot/PerformanceQueues_p.html | 2 +-
htroot/PerformanceQueues_p.java | 3 ++-
source/de/anomic/server/serverAbstractThread.java | 6 ++++--
source/de/anomic/server/serverMemory.java | 4 ++--
6 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/htroot/ConfigLanguage_p.html b/htroot/ConfigLanguage_p.html
index 702fcf0be..5ed5b4e6e 100644
--- a/htroot/ConfigLanguage_p.html
+++ b/htroot/ConfigLanguage_p.html
@@ -13,7 +13,7 @@
@@ -47,8 +49,8 @@
+
-
#(status)#
diff --git a/htroot/ConfigSkins_p.html b/htroot/ConfigSkins_p.html
index 229807698..47521b4e0 100644
--- a/htroot/ConfigSkins_p.html
+++ b/htroot/ConfigSkins_p.html
@@ -14,19 +14,21 @@
@@ -38,8 +40,8 @@
Use this skin
+
-
#(status)#
diff --git a/htroot/PerformanceQueues_p.html b/htroot/PerformanceQueues_p.html
index 748904521..65d73bb1b 100644
--- a/htroot/PerformanceQueues_p.html
+++ b/htroot/PerformanceQueues_p.html
@@ -51,7 +51,7 @@
#[memusepercycle]#
milliseconds
milliseconds
- kbytes
+ kbytes
#[longdescr]#
#{/table}#
diff --git a/htroot/PerformanceQueues_p.java b/htroot/PerformanceQueues_p.java
index 32155dc8d..6e6af7db7 100644
--- a/htroot/PerformanceQueues_p.java
+++ b/htroot/PerformanceQueues_p.java
@@ -165,7 +165,8 @@ public class PerformanceQueues_p {
prop.put("table_" + c + "_idlesleep", idlesleep);
prop.put("table_" + c + "_busysleep", busysleep);
prop.put("table_" + c + "_memprereq", memprereq / 1024);
-
+ // disallow setting of memprereq for indexer to prevent db from throwing OOMs
+ prop.put("table_" + c + "_disabled", (threadName.contains("_indexing")) ? 1 : 0);
c++;
}
prop.put("table", c);
diff --git a/source/de/anomic/server/serverAbstractThread.java b/source/de/anomic/server/serverAbstractThread.java
index 3183d4cad..589b6953b 100644
--- a/source/de/anomic/server/serverAbstractThread.java
+++ b/source/de/anomic/server/serverAbstractThread.java
@@ -248,7 +248,7 @@ public abstract class serverAbstractThread extends Thread implements serverThrea
logSystem("thread '" + this.getName() + "' deployed, " + ((this.busyPause < 0) ? "starting job." : "starting loop."));
}
long timestamp;
- long memstamp0, memstamp1;
+ long memstamp0, memstamp1, memnow;
boolean isBusy;
//Runtime rt = Runtime.getRuntime();
@@ -271,7 +271,7 @@ public abstract class serverAbstractThread extends Thread implements serverThrea
timestamp = System.currentTimeMillis();
ratz(this.idlePause);
idletime += System.currentTimeMillis() - timestamp;
- } else if (serverMemory.available() > memprereq) try {
+ } else if ((memnow = serverMemory.available()) > memprereq) try {
// do job
timestamp = System.currentTimeMillis();
memstamp0 = serverMemory.used();
@@ -304,6 +304,8 @@ public abstract class serverAbstractThread extends Thread implements serverThrea
this.jobExceptionHandler(e);
busyCycles++;
} else {
+ log.logFine("Thread '" + this.getName() + "' runs short memory cycle. Free mem: " +
+ (memnow / 1024) + " KB, needed: " + (memprereq / 1024) + " KB");
// omit job, not enough memory
// process scheduled pause
timestamp = System.currentTimeMillis();
diff --git a/source/de/anomic/server/serverMemory.java b/source/de/anomic/server/serverMemory.java
index 4238159a3..18ba02c04 100644
--- a/source/de/anomic/server/serverMemory.java
+++ b/source/de/anomic/server/serverMemory.java
@@ -49,8 +49,8 @@ import java.text.DecimalFormat;
public class serverMemory {
- public static boolean vm15 = System.getProperty("java.vm.version").startsWith("1.5");
- public static final long max = (vm15) ? Runtime.getRuntime().maxMemory() : computedMaxMemory(); // patch for maxMemory bug in Java 1.4.2
+ public static boolean vm14 = System.getProperty("java.vm.version").startsWith("1.4");
+ public static final long max = (vm14) ? computedMaxMemory() : Runtime.getRuntime().maxMemory() ; // patch for maxMemory bug in Java 1.4.2
private static final Runtime runtime = Runtime.getRuntime();
public static long free() {