Author: challngr
Date: Thu Jul 25 14:12:00 2013
New Revision: 1506979

URL: http://svn.apache.org/r1506979
Log:
UIMA-3116 Log responding node:pid:tid for uima-as get meta.

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java?rev=1506979&r1=1506978&r2=1506979&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
 Thu Jul 25 14:12:00 2013
@@ -9,8 +9,12 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.uima.UIMAFramework;
+import org.apache.uima.aae.client.UimaASProcessStatus;
+import org.apache.uima.aae.client.UimaAsBaseCallbackListener;
 import org.apache.uima.aae.client.UimaAsynchronousEngine;
 import org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngine_impl;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.collection.EntityProcessStatus;
 import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.TcpStreamHandler;
 import org.apache.uima.ducc.common.utils.DuccLogger;
@@ -40,6 +44,10 @@ public class UimaAsPing
     int[] queueSizeWindow;
     int queueCursor = 0;
 
+    String nodeIp;
+    String pid;
+    boolean gmfail = false;
+
     public UimaAsPing()
     {
         this.logger = null;
@@ -78,7 +86,7 @@ public class UimaAsPing
         
//UIMAFramework.getLogger(BaseUIMAAsynchronousEngineCommon_impl.class).setLevel(Level.OFF);
         
//UIMAFramework.getLogger(BaseUIMAAsynchronousEngine_impl.class).setLevel(Level.OFF);
         // there are a couple junky messages that slip by the above 
configurations.  turn the whole danged thing off.
-        UIMAFramework.getLogger().setLevel(Level.OFF);
+        UIMAFramework.getLogger().setLevel(Level.INFO);
 
         if ( args == null ) {
             meta_timeout = 5000;
@@ -145,6 +153,7 @@ public class UimaAsPing
                 stats.setHealthy(true);
             }
 
+            monitor.setSource(nodeIp, pid, gmfail);
             stats.setAlive(true);
             stats.setInfo(monitor.format());
         } catch ( Throwable t ) {
@@ -158,9 +167,13 @@ public class UimaAsPing
     {
         String methodName = "getStatistics";
         IServiceStatistics statistics = new ServiceStatistics(false, false, 
"<NA>");
+        nodeIp = "N/A";
+        pid = "N/A";
 
         // Instantiate Uima AS Client
         BaseUIMAAsynchronousEngine_impl uimaAsEngine = new 
BaseUIMAAsynchronousEngine_impl();
+        UimaCbListener listener = new UimaCbListener();
+        uimaAsEngine.addStatusCallbackListener(listener);
         Map<String, Object> appCtx = new HashMap<String, Object>();
         appCtx.put(UimaAsynchronousEngine.ServerUri, broker);
         appCtx.put(UimaAsynchronousEngine.Endpoint, endpoint);
@@ -172,8 +185,9 @@ public class UimaAsPing
             uimaAsEngine.initialize(appCtx);
             evaluatePing(monitor, statistics);       // if we get here, the 
get-meta worked well enough
             statistics.setAlive(true);
-
+            listener.ok();
         } catch( ResourceInitializationException e) {
+            listener.timeout();
             doLog(methodName, "Cannot issue getMeta to: " + endpoint + ":" + 
broker);
             statistics.setHealthy(false);
             statistics.setAlive(false);
@@ -188,4 +202,57 @@ public class UimaAsPing
         return statistics;
     }
 
+    class UimaCbListener extends UimaAsBaseCallbackListener 
+    {
+        public UimaCbListener()
+        {
+        }
+
+        public void ok()
+        {
+            String methodName = "UimaAsPing:get-meta";
+            logger.info(methodName, null, "Get-Meta received from ", nodeIp, 
"PID", pid);
+            gmfail = false;
+        }
+
+        public void timeout()
+        {
+            String methodName = "UimaAsPing:get-meta";
+            logger.info(methodName, null, "Get-Meta timeout from ", nodeIp, 
"PID", pid);
+            gmfail = true;
+        }
+
+        public void onBeforeMessageSend(UimaASProcessStatus status) 
+        {
+        }
+       
+//        private void onBeforeMessageSendHandler(UimaASProcessStatus status) 
+//        {
+//        }
+       
+        public void onBeforeProcessCAS(UimaASProcessStatus status, String ip, 
String p) 
+        {
+            String methodName = "UimaAsPing:onBeforeProcessCAS";
+            logger.info(methodName, null, "Get-Meta received from ", ip, p, 
"for", ep);
+            nodeIp = ip;
+            pid = p;
+        }
+       
+//        private void onBeforeProcessCASHandler(UimaASProcessStatus status, 
String nodeIP, String pid) 
+//        {
+//        }
+       
+        public void initializationComplete(EntityProcessStatus aStatus) 
+        {
+        }
+
+        public void entityProcessComplete(CAS aCas, EntityProcessStatus 
aStatus) 
+        {
+        }
+
+        public void collectionProcessComplete(EntityProcessStatus aStatus) 
+        {
+        }
+    }
+
 }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java?rev=1506979&r1=1506978&r2=1506979&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
 Thu Jul 25 14:12:00 2013
@@ -58,7 +58,10 @@ public class UimaAsServiceMonitor
     
     boolean alive = false;
     boolean healthy = false;
-
+    
+    String nodeId;
+    String pid;
+    boolean gmfail = false;
 
     public long getQueueSize()
     {
@@ -160,6 +163,13 @@ public class UimaAsServiceMonitor
                }
     }
 
+    public void setSource(String nodeId, String pid, boolean gmfail)
+    {
+        this.nodeId = nodeId;
+        this.pid = pid;
+        this.gmfail = gmfail;
+    }
+
     public IServiceStatistics getStatistics()
     {
         try {
@@ -188,6 +198,9 @@ public class UimaAsServiceMonitor
             +  "] DQ[" + dequeueCount
             +  "] NQ[" + enqueueCount
             +  "] NDisp[" + dispatchCount
+            +  "] GMNode[" + nodeId
+            +  "] GMPid[" + pid
+            +  (gmfail ? "(F)" : "")
             + "]"
             ;
 

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java?rev=1506979&r1=1506978&r2=1506979&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
 Thu Jul 25 14:12:00 2013
@@ -194,11 +194,11 @@ class PingDriver
                 logger.info(methodName, sset.getId(), "Ping ok: ", endpoint, 
stats.toString());
                 missed_pings = 0;
             } else {
-                logger.error(methodName, sset.getId(), "Missed_pings ", 
missed_pings, "endpoint", endpoint);
-                if ( ++missed_pings > meta_ping_stability ) {
+                logger.error(methodName, sset.getId(), "Missed_pings ", 
++missed_pings, "endpoint", endpoint);
+                if ( missed_pings > meta_ping_stability ) {
                     sset.setUnresponsive();
                     logger.info(methodName, sset.getId(), "Seting state to 
unresponsive, endpoint",endpoint);
-                } else {
+                } else if ( missed_pings > (meta_ping_stability / 2) ) {
                     sset.setWaiting();
                     logger.info(methodName, sset.getId(), "Seting state to 
waiting, endpoint,", endpoint);
                 }                


Reply via email to