Author: degenaro
Date: Sun Nov  2 12:40:09 2014
New Revision: 1636127

URL: http://svn.apache.org/r1636127
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for 
container (system) code.

Update CAS Manager for preemption events.

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java?rev=1636127&r1=1636126&r2=1636127&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/CasManagerStats.java
 Sun Nov  2 12:40:09 2014
@@ -18,16 +18,21 @@
 */
 package org.apache.uima.ducc.container.jd;
 
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 public class CasManagerStats {
-
+       
+       public enum RetryReason { ProcessPreempt, ProcessDown, NodeDown, 
UserErrorRetry, TimeoutRetry };
+       
        private AtomicInteger crTotal = new AtomicInteger(0);
        private AtomicInteger crGets = new AtomicInteger(0);
        
        private AtomicInteger retryQueuePuts = new AtomicInteger(0);
        private AtomicInteger retryQueueGets = new AtomicInteger(0);
        
+       private ConcurrentHashMap<String,AtomicInteger> retryReasonsMap = new 
ConcurrentHashMap<String,AtomicInteger>();
+       
        public void setCrTotal(int value) {
                crTotal.set(value);
        }
@@ -59,4 +64,27 @@ public class CasManagerStats {
        public int getRetryQueueGets() {
                return retryQueueGets.get();
        }
+       
+       public void incRetryReasons(RetryReason retryReason) {
+               if(retryReason != null) {
+                       String key = retryReason.name();
+                       retryReasonsMap.putIfAbsent(key, new AtomicInteger(0));
+                       AtomicInteger value = retryReasonsMap.get(key);
+                       value.incrementAndGet();
+               }
+       }
+       
+       public ConcurrentHashMap<String,AtomicInteger> getRetryReasons() {
+               return retryReasonsMap;
+       }
+       
+       public int getNumberOfPreemptions() {
+               int retVal = 0;
+               String key = RetryReason.ProcessPreempt.name();
+               if(retryReasonsMap.containsKey(key)) {
+                       AtomicInteger value = retryReasonsMap.get(key);
+                       retVal = value.get();
+               }
+               return retVal;
+       }
 }


Reply via email to