You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2017/09/12 13:26:17 UTC

svn commit: r1808113 - /uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java

Author: degenaro
Date: Tue Sep 12 13:26:17 2017
New Revision: 1808113

URL: http://svn.apache.org/viewvc?rev=1808113&view=rev
Log:
UIMA-5561 DUCC Web Server (WS) queries DB too often

Modified:
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java?rev=1808113&r1=1808112&r2=1808113&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/db/DbQuery.java Tue Sep 12 13:26:17 2017
@@ -43,11 +43,15 @@ public class DbQuery {
 	
 	private static boolean enabled = true;
 	
+	private static String component = IDuccLoggerComponents.abbrv_webServer;
+	
 	private IRmPersistence persistence = null;
 	
 	private IHistoryPersistenceManager history = null;
 	
-	private static String component = IDuccLoggerComponents.abbrv_webServer;
+	private boolean db_status = false; // false == down, true == up
+	private long db_status_age_limit = 1000*60;
+	private long db_status_tod = System.currentTimeMillis()-(db_status_age_limit+1);
 	
 	static {
 		synchronized(DbQuery.class) {
@@ -78,7 +82,7 @@ public class DbQuery {
 		return enabled;
 	}
 	
-	public Pair<DuccWorkMap, Map<DuccId, DuccId>> getCkpt() {
+	private Pair<DuccWorkMap, Map<DuccId, DuccId>> getCkpt() {
 		String location = "getCkpt";
 		Pair<DuccWorkMap, Map<DuccId, DuccId>> retVal = new Pair<DuccWorkMap, Map<DuccId, DuccId>>();
 		try {
@@ -91,17 +95,26 @@ public class DbQuery {
     }
 	
 	public boolean isUp() {
-		boolean status = false;
+		String location = "isUp";
 		/*
 		if(getMapMachines().size() > 0) {
 			status = true;
 		}
 		else 
 		*/
-			if(getCkpt().first() != null) {
-			status = true;
-		}
-		return status;
+			long now = System.currentTimeMillis();
+			long elapsed = now - db_status_tod;
+			if(elapsed > db_status_age_limit) {
+				db_status_tod = now;
+				if(getCkpt().first() != null) {
+					db_status = true;
+				}
+				else {
+					db_status = false;
+				}
+				logger.debug(location, jobid, db_status);
+			}
+		return db_status;
 	}
 	
 	public static void dumpMap(Map<String, IDbMachine> dbMachineMap) {