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 2014/12/27 14:10:56 UTC

svn commit: r1648053 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/ uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/ uima-ducc-container/src/main/java/org/apache/...

Author: degenaro
Date: Sat Dec 27 13:10:55 2014
New Revision: 1648053

URL: http://svn.apache.org/r1648053
Log:
UIMA-4069 DUCC Job Driver (JD) system classpath

Jd accounting anomalies.

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java   (with props)
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/ProcessStatistics.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverConfiguration.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java Sat Dec 27 13:10:55 2014
@@ -21,6 +21,11 @@ package org.apache.uima.ducc.container.c
 public class Standardize {
 
 	public enum Label {
+		status,
+		add,
+		puts,
+		gets,
+		reason,
 		enter,
 		exit,
 		dispatch,
@@ -48,6 +53,7 @@ public class Standardize {
 		tid,
 		crFetches,
 		crTotal,
+		retrys,
 		preemptions,
 		endSuccess,
 		endFailure,

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java Sat Dec 27 13:10:55 2014
@@ -38,6 +38,7 @@ public class Fsm implements IFsmBuilder
 	
 	private ConcurrentHashMap<IStateEventKey, IStateEventValue> map = new ConcurrentHashMap<IStateEventKey, IStateEventValue>();
 	
+	private IState stateInitial = null;
 	private IState stateCurrent = null;
 	private IState statePrevious = null;
 	
@@ -68,9 +69,18 @@ public class Fsm implements IFsmBuilder
 
 	@Override
 	public void initial(IState state) throws FsmException {
+		setStateInitial(state);
 		setStateCurrent(state);
 	}
 	
+	private void setStateInitial(IState value) {
+		stateInitial = value;
+	}
+
+	private IState getStateInitial() {
+		return stateInitial;
+	}
+	
 	private void setStateCurrent(IState value) {
 		stateCurrent = value;
 	}
@@ -141,5 +151,24 @@ public class Fsm implements IFsmBuilder
 			throw new FsmException(e);
 		}
 	}
-
+	
+	@Override
+	public void reset() throws FsmException {
+		String location = "reset";
+		try {
+			synchronized(map) {
+				IState _stateCurrent = getStateInitial();
+				IState _statePrevious = getStateCurrent();
+				if(!_stateCurrent.equals(_statePrevious)) {
+					MessageBuffer mb = new MessageBuffer();
+					mb.append(Standardize.Label.curr.get()+_stateCurrent.getName());
+					mb.append(Standardize.Label.prev.get()+_statePrevious.getName());
+					logger.info(location, ILogger.null_id, mb.toString());
+				}
+			}
+		}
+		catch(Exception e) {
+			throw new FsmException(e);
+		}
+	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java Sat Dec 27 13:10:55 2014
@@ -25,4 +25,5 @@ public interface IFsm {
 	public void transition(IEvent event, Object actionData) throws FsmException;
 	public IState getStateCurrent();
 	public IState getStatePrevious();
+	public void reset();
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverHelper.java Sat Dec 27 13:10:55 2014
@@ -117,13 +117,25 @@ public class JobDriverHelper {
 	}
 	
 	public IProcessStatistics getProcessStatistics(IRemotePid remotePid) {
+		String location = "getProcessStatistics";
 		JobDriver jd = JobDriver.getInstance();
 		ConcurrentHashMap<IRemotePid, IProcessStatistics> remoteprocessMap = jd.getRemoteProcessMap();
 		IProcessStatistics processStatistics = remoteprocessMap.get(remotePid);
+		boolean add = false;
 		if(processStatistics == null) {
+			add = true;
 			remoteprocessMap.putIfAbsent(remotePid, new ProcessStatistics());
 			processStatistics = remoteprocessMap.get(remotePid);
 		}
+		MessageBuffer mb = new MessageBuffer();
+		mb.append(Standardize.Label.remote.get()+remotePid.toString());
+		mb.append(Standardize.Label.add.get()+add);
+		if(add) {
+			logger.debug(location, ILogger.null_id, mb);
+		}
+		else {
+			logger.trace(location, ILogger.null_id, mb);
+		}
 		return processStatistics;
 	}
 	
@@ -169,4 +181,5 @@ public class JobDriverHelper {
 		}
 		return rwp;
 	}
+	
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java Sat Dec 27 13:10:55 2014
@@ -20,6 +20,8 @@ package org.apache.uima.ducc.container.j
 
 import java.util.concurrent.LinkedBlockingQueue;
 
+import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.Standardize;
 import org.apache.uima.ducc.container.common.logger.IComponent;
 import org.apache.uima.ducc.container.common.logger.ILogger;
 import org.apache.uima.ducc.container.common.logger.Logger;
@@ -42,7 +44,7 @@ public class CasManager {
 		initialize();
 	}
 	
-	public void initialize() throws JobDriverException {
+	private void initialize() throws JobDriverException {
 		String location = "initialize";
 		try {
 			pjdcr = new ProxyJobDriverCollectionReader();
@@ -55,11 +57,8 @@ public class CasManager {
 	}
 	
 	public IMetaCas getMetaCas() throws JobDriverException {
-		IMetaCas retVal = cacheQueue.poll();
-		if(retVal != null) {
-			casManagerStats.incRetryQueueGets();
-		}
-		else {
+		IMetaCas retVal = dequeueMetaCas();
+		if(retVal == null) {
 			retVal = pjdcr.getMetaCas();
 			if(retVal != null) {
 				casManagerStats.incCrGets();
@@ -67,11 +66,36 @@ public class CasManager {
 		}
 		return retVal;
 	}
+
+	private IMetaCas dequeueMetaCas() throws JobDriverException {
+		String location = "dequeueMetaCas";
+		IMetaCas metaCas = cacheQueue.poll();
+		if(metaCas != null) {
+			casManagerStats.incRetryQueueGets();
+			MessageBuffer mb = new MessageBuffer();
+			mb.append(Standardize.Label.seqNo.get()+metaCas.getSystemKey());
+			mb.append(Standardize.Label.puts.get()+casManagerStats.getRetryQueuePuts());
+			mb.append(Standardize.Label.gets.get()+casManagerStats.getRetryQueueGets());
+			logger.info(location, ILogger.null_id, mb);
+		}
+		return metaCas;
+	}
 	
 	public void putMetaCas(IMetaCas metaCas, RetryReason retryReason) {
+		queueMetaCas(metaCas, retryReason);
+	}
+	
+	private void queueMetaCas(IMetaCas metaCas, RetryReason retryReason) {
+		String location = "queueMetaCas";
 		cacheQueue.add(metaCas);
 		casManagerStats.incRetryQueuePuts();
 		casManagerStats.incRetryReasons(retryReason);
+		MessageBuffer mb = new MessageBuffer();
+		mb.append(Standardize.Label.seqNo.get()+metaCas.getSystemKey());
+		mb.append(Standardize.Label.puts.get()+casManagerStats.getRetryQueuePuts());
+		mb.append(Standardize.Label.gets.get()+casManagerStats.getRetryQueueGets());
+		mb.append(Standardize.Label.reason.get()+retryReason.name());
+		logger.info(location, ILogger.null_id, mb);
 	}
 	
 	public CasManagerStats getCasManagerStats() {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/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/cas/CasManagerStats.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManagerStats.java Sat Dec 27 13:10:55 2014
@@ -111,6 +111,11 @@ public class CasManagerStats {
 		return retVal;
 	}
 	
+	public int getNumberOfRetrys() {
+		int retVal = getEndRetry() - getNumberOfPreemptions();
+		return retVal;
+	}
+	
 	public void incEndSuccess() {
 		endSuccess.incrementAndGet();
 	}

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java?rev=1648053&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java Sat Dec 27 13:10:55 2014
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.Standardize;
+import org.apache.uima.ducc.container.common.logger.ILogger;
+import org.apache.uima.ducc.container.common.logger.Logger;
+import org.apache.uima.ducc.container.jd.wi.IProcessStatistics;
+import org.apache.uima.ducc.container.jd.wi.IWorkItem;
+
+public abstract class Action {
+	
+	protected void displayProcessStatistics(Logger logger, IWorkItem wi, IProcessStatistics pStats) {
+		String location = "displayProcessStatistics";
+		MessageBuffer mb = new MessageBuffer();
+		mb.append(Standardize.Label.seqNo.get()+wi.getMetaCas().getSystemKey());
+		mb.append(Standardize.Label.avg.get()+pStats.getMillisAvg());
+		mb.append(Standardize.Label.max.get()+pStats.getMillisMax());
+		mb.append(Standardize.Label.min.get()+pStats.getMillisMin());
+		logger.debug(location, ILogger.null_id, mb.toString());
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/Action.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEnd.java Sat Dec 27 13:10:55 2014
@@ -45,7 +45,7 @@ import org.apache.uima.ducc.container.ne
 import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
 import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.JdState;
 
-public class ActionEnd implements IAction {
+public class ActionEnd extends Action implements IAction {
 
 	private static Logger logger = Logger.getLogger(ActionEnd.class, IComponent.Id.JD.name());
 	
@@ -160,8 +160,8 @@ public class ActionEnd implements IActio
 			if(pjdd.isKillJob()) {
 				wisk.error(seqNo);
 				pStats.error(wi);
-				killWorkItem(cm, wi, trans, metaCas, rwt);
 				killJob(cm, wi, trans, metaCas, rwt);
+				killWorkItem(cm, wi, trans, metaCas, rwt);
 			}
 			else if(pjdd.isKillWorkItem()) {
 				wisk.error(seqNo);
@@ -181,16 +181,6 @@ public class ActionEnd implements IActio
 		}
 	}
 	
-	private void displayProcessStatistics(IWorkItem wi, IProcessStatistics pStats) {
-		String location = "displayProcessStatistics";
-		MessageBuffer mb = new MessageBuffer();
-		mb.append(Standardize.Label.seqNo.get()+wi.getMetaCas().getSystemKey());
-		mb.append(Standardize.Label.avg.get()+pStats.getMillisAvg());
-		mb.append(Standardize.Label.max.get()+pStats.getMillisMax());
-		mb.append(Standardize.Label.min.get()+pStats.getMillisMin());
-		logger.debug(location, ILogger.null_id, mb.toString());
-	}
-	
 	@Override
 	public void engage(Object objectData) {
 		String location = "engage";
@@ -218,6 +208,7 @@ public class ActionEnd implements IActio
 					mb.append("exception");
 					logger.info(location, ILogger.null_id, mb.toString());
 					handleException(actionData);
+					displayProcessStatistics(logger, wi, pStats);
 				}
 				else {
 					MessageBuffer mb = new MessageBuffer();
@@ -227,9 +218,9 @@ public class ActionEnd implements IActio
 					wisk.ended(seqNo);
 					successWorkItem(cm, wi, trans, metaCas, rwt);
 					pStats.done(wi);
-					displayProcessStatistics(wi, pStats);
+					displayProcessStatistics(logger, wi, pStats);
 				}
-				wi.resetTods();
+				wi.reset();
 			}
 			else {
 				MessageBuffer mb = new MessageBuffer();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGet.java Sat Dec 27 13:10:55 2014
@@ -82,6 +82,7 @@ public class ActionGet implements IActio
 			else {
 				metaCas = cm.getMetaCas();
 			}
+			wi.setMetaCas(metaCas);
 			trans.setMetaCas(metaCas);
 			IWorkItemStateKeeper wisk = jd.getWorkItemStateKeeper();
 			MetaCasHelper metaCasHelper = new MetaCasHelper(metaCas);
@@ -99,7 +100,6 @@ public class ActionGet implements IActio
 				wisk.queued(seqNo);
 				pStats.dispatch(wi);
 				//
-				wi.resetTods();
 				wi.setTodGet();
 				event = WiFsm.CAS_Available;
 				MessageBuffer mb = new MessageBuffer();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessFailure.java Sat Dec 27 13:10:55 2014
@@ -37,7 +37,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
 
-public class ActionProcessFailure implements IAction {
+public class ActionProcessFailure extends Action implements IAction {
 
 	private static Logger logger = Logger.getLogger(ActionProcessFailure.class, IComponent.Id.JD.name());
 	
@@ -68,7 +68,6 @@ public class ActionProcessFailure implem
 		int seqNo = metaCasHelper.getSystemKey();
 		wisk.retry(seqNo);
 		pStats.retry(wi);
-		wi.resetTods();
 	}
 	
 	private void killWorkItem(CasManager cm, IWorkItem wi, IMetaCas metaCas, IRemoteWorkerProcess rwp) {
@@ -92,6 +91,7 @@ public class ActionProcessFailure implem
 			JobDriverHelper jdh = JobDriverHelper.getInstance();
 			IRemoteWorkerProcess rwp = jdh.getRemoteWorkerProcess(wi);
 			if(rwp != null) {
+				IProcessStatistics pStats = jdh.getProcessStatistics(rwp);
 				if(metaCas != null) {
 					String serializedCas = (String) metaCas.getUserSpaceCas();
 					ProxyJobDriverErrorHandler pjdeh = jd.getProxyJobDriverErrorHandler();
@@ -115,6 +115,8 @@ public class ActionProcessFailure implem
 					else {
 						retryWorkItem(cm, wi, metaCas, rwp);
 					}
+					displayProcessStatistics(logger, wi, pStats);
+					wi.reset();
 				}
 				else {
 					MessageBuffer mb = new MessageBuffer();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionProcessPreempt.java Sat Dec 27 13:10:55 2014
@@ -35,7 +35,7 @@ import org.apache.uima.ducc.container.jd
 import org.apache.uima.ducc.container.jd.wi.IWorkItem;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
 
-public class ActionProcessPreempt implements IAction {
+public class ActionProcessPreempt extends Action implements IAction {
 
 	private static Logger logger = Logger.getLogger(ActionProcessPreempt.class, IComponent.Id.JD.name());
 	
@@ -75,7 +75,8 @@ public class ActionProcessPreempt implem
 					int seqNo = metaCasHelper.getSystemKey();
 					wisk.preempt(seqNo);
 					pStats.preempt(wi);
-					wi.resetTods();
+					displayProcessStatistics(logger, wi, pStats);
+					wi.reset();
 				}
 				else {
 					MessageBuffer mb = new MessageBuffer();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java Sat Dec 27 13:10:55 2014
@@ -20,6 +20,7 @@ package org.apache.uima.ducc.container.j
 
 import java.util.Map.Entry;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.uima.ducc.container.common.MessageBuffer;
@@ -60,6 +61,8 @@ public class MessageHandler implements I
 	private AtomicInteger gets = new AtomicInteger(0);
 	private AtomicInteger acks = new AtomicInteger(0);
 	
+	private ConcurrentLinkedQueue<IRemoteWorkerThread> legacyList = new ConcurrentLinkedQueue<IRemoteWorkerThread>();
+	
 	public MessageHandler() {
 	}
 	
@@ -98,6 +101,7 @@ public class MessageHandler implements I
 				oi.setKillJob();
 			}
 			oi.setWorkItemDispatcheds(cms.getDispatched());
+			oi.setWorkItemRetrys(cms.getNumberOfRetrys());
 			oi.setWorkItemPreemptions(cms.getNumberOfPreemptions());
 			oi.setWorkItemFinishedMillisMin(wis.getMillisMin());
 			oi.setWorkItemFinishedMillisMax(wis.getMillisMax());
@@ -115,6 +119,7 @@ public class MessageHandler implements I
 			mb.append(Standardize.Label.endSuccess.get()+oi.getWorkItemEndSuccesses());
 			mb.append(Standardize.Label.endFailure.get()+oi.getWorkItemEndFailures());
 			mb.append(Standardize.Label.killJob.get()+oi.isKillJob());
+			mb.append(Standardize.Label.retrys.get()+oi.getWorkItemRetrys());
 			mb.append(Standardize.Label.preemptions.get()+oi.getWorkItemPreemptions());
 			mb.append(Standardize.Label.finishedMillisMin.get()+oi.getWorkItemFinishedMillisMin());
 			mb.append(Standardize.Label.finishedMillisMax.get()+oi.getWorkItemFinishedMillisMax());
@@ -151,26 +156,35 @@ public class MessageHandler implements I
 			mb.append(Standardize.Label.node.get()+processInfo.getNodeName());
 			mb.append(Standardize.Label.ip.get()+processInfo.getNodeAddress());
 			mb.append(Standardize.Label.pid.get()+processInfo.getPid());
-			logger.info(location, ILogger.null_id, mb.toString());
+			logger.trace(location, ILogger.null_id, mb.toString());
 			ConcurrentHashMap<IRemoteWorkerThread, IWorkItem> map = JobDriver.getInstance().getRemoteThreadMap();
 			for(Entry<IRemoteWorkerThread, IWorkItem> entry : map.entrySet()) {
 				IRemoteWorkerThread rwt = entry.getKey();
 				if(rwt.comprises(processInfo)) {
-					MessageBuffer mb1 = new MessageBuffer();
-					mb1.append(Standardize.Label.remote.get()+rwt.toString());
-					mb1.append(Boolean.TRUE.toString());
-					logger.info(location, ILogger.null_id, mb1.toString());
-					IWorkItem wi = entry.getValue();
-					IFsm fsm = wi.getFsm();
-					IEvent event = WiFsm.Process_Failure;
-					Object actionData = new ActionData(wi, rwt, null);
-					fsm.transition(event, actionData);
+					if(legacyList.contains(rwt)) {
+						MessageBuffer mb1 = new MessageBuffer();
+						mb1.append(Standardize.Label.remote.get()+rwt.toString());
+						mb1.append(Standardize.Label.status.get()+"already kaput");
+						logger.trace(location, ILogger.null_id, mb1.toString());
+					}
+					else {
+						legacyList.add(rwt);
+						MessageBuffer mb1 = new MessageBuffer();
+						mb1.append(Standardize.Label.remote.get()+rwt.toString());
+						mb1.append(Standardize.Label.status.get()+"transition to down");
+						logger.info(location, ILogger.null_id, mb1.toString());
+						IWorkItem wi = entry.getValue();
+						IFsm fsm = wi.getFsm();
+						IEvent event = WiFsm.Process_Failure;
+						Object actionData = new ActionData(wi, rwt, null);
+						fsm.transition(event, actionData);
+					}
 				}
 				else {
-					MessageBuffer mb2 = new MessageBuffer();
-					mb2.append(Standardize.Label.remote.get()+rwt.toString());
-					mb2.append(Boolean.FALSE.toString());
-					logger.info(location, ILogger.null_id, mb2.toString());
+					MessageBuffer mb1 = new MessageBuffer();
+					mb1.append(Standardize.Label.remote.get()+rwt.toString());
+					mb1.append(Standardize.Label.status.get()+"unaffected");
+					logger.trace(location, ILogger.null_id, mb1.toString());
 				}
 			}
 		}
@@ -187,26 +201,36 @@ public class MessageHandler implements I
 			mb.append(Standardize.Label.node.get()+processInfo.getNodeName());
 			mb.append(Standardize.Label.ip.get()+processInfo.getNodeAddress());
 			mb.append(Standardize.Label.pid.get()+processInfo.getPid());
-			logger.info(location, ILogger.null_id, mb.toString());
+			logger.trace(location, ILogger.null_id, mb.toString());
 			ConcurrentHashMap<IRemoteWorkerThread, IWorkItem> map = JobDriver.getInstance().getRemoteThreadMap();
 			for(Entry<IRemoteWorkerThread, IWorkItem> entry : map.entrySet()) {
 				IRemoteWorkerThread rwt = entry.getKey();
 				if(rwt.comprises(processInfo)) {
-					MessageBuffer mb1 = new MessageBuffer();
-					mb1.append(Standardize.Label.remote.get()+rwt.toString());
-					mb1.append(Boolean.TRUE.toString());
-					logger.info(location, ILogger.null_id, mb1.toString());
-					IWorkItem wi = entry.getValue();
-					IFsm fsm = wi.getFsm();
-					IEvent event = WiFsm.Process_Preempt;
-					Object actionData = new ActionData(wi, rwt, null);
-					fsm.transition(event, actionData);
+					if(legacyList.contains(rwt)) {
+						MessageBuffer mb1 = new MessageBuffer();
+						mb1.append(Standardize.Label.remote.get()+rwt.toString());
+						mb1.append(Standardize.Label.status.get()+"already kaput");
+						logger.trace(location, ILogger.null_id, mb1.toString());
+					}
+					else {
+						legacyList.add(rwt);
+						MessageBuffer mb1 = new MessageBuffer();
+						mb1.append(Standardize.Label.remote.get()+rwt.toString());
+						mb1.append(Standardize.Label.status.get()+"transition to down");
+						logger.info(location, ILogger.null_id, mb1.toString());
+						IWorkItem wi = entry.getValue();
+						IFsm fsm = wi.getFsm();
+						IEvent event = WiFsm.Process_Preempt;
+						Object actionData = new ActionData(wi, rwt, null);
+						fsm.transition(event, actionData);
+					}
+					
 				}
 				else {
-					MessageBuffer mb2 = new MessageBuffer();
-					mb2.append(Standardize.Label.remote.get()+rwt.toString());
-					mb2.append(Boolean.FALSE.toString());
-					logger.info(location, ILogger.null_id, mb2.toString());
+					MessageBuffer mb1 = new MessageBuffer();
+					mb1.append(Standardize.Label.remote.get()+rwt.toString());
+					mb1.append(Standardize.Label.status.get()+"unaffected");
+					logger.trace(location, ILogger.null_id, mb1.toString());
 				}
 			}
 		}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java Sat Dec 27 13:10:55 2014
@@ -55,6 +55,9 @@ public interface IOperatingInfo extends
 	public void setWorkItemDispatcheds(int value);
 	public int getWorkItemDispatcheds();
 	
+	public void setWorkItemRetrys(int value);
+	public int getWorkItemRetrys();
+	
 	public void setWorkItemPreemptions(int value);
 	public int getWorkItemPreemptions();
 	

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java Sat Dec 27 13:10:55 2014
@@ -40,6 +40,7 @@ public class OperatingInfo implements IO
 	private int jpEndFailures = 0;
 	private int jpEndRetrys = 0;
 	private int jpDispatcheds = 0;
+	private int jpRetrys = 0;
 	private int jpPreemptions = 0;
 	private int jpUserProcessingTimeouts = 0;
 	private int jpUserProcessingErrorRetries = 0;
@@ -159,6 +160,16 @@ public class OperatingInfo implements IO
 	}
 	
 	@Override
+	public void setWorkItemRetrys(int value) {
+		jpRetrys = value;
+	}
+
+	@Override
+	public int getWorkItemRetrys() {
+		return jpRetrys;
+	}
+		
+	@Override
 	public void setWorkItemPreemptions(int value) {
 		jpPreemptions = value;
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/IWorkItem.java Sat Dec 27 13:10:55 2014
@@ -29,7 +29,8 @@ public interface IWorkItem {
 	public void setFsm(IFsm value);
 	public IFsm getFsm();
 	
-	public void resetTods();
+	public void reset();
+	//public void resetTods();
 	
 	public void setTodGet();
 	public void resetTodGet();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/ProcessStatistics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/ProcessStatistics.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/ProcessStatistics.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/ProcessStatistics.java Sat Dec 27 13:10:55 2014
@@ -38,9 +38,22 @@ public class ProcessStatistics implement
 	
 	private IWorkItemStatistics wis = new WorkItemStatistics();
 	
+	private void loggit(String location, IWorkItem wi) {
+		MessageBuffer mb = new MessageBuffer();
+		mb.append(Standardize.Label.seqNo.get()+wi.getMetaCas().getSystemKey());
+		mb.append(Standardize.Label.dispatch.get()+dispatch.get());
+		mb.append(Standardize.Label.done.get()+done.get());
+		mb.append(Standardize.Label.error.get()+error.get());
+		mb.append(Standardize.Label.preempt.get()+preempt.get());
+		mb.append(Standardize.Label.retry.get()+retry.get());
+		logger.debug(location, ILogger.null_id, mb.toString());
+	}
+	
 	@Override
 	public void dispatch(IWorkItem wi) {
+		String location = "dispatch";
 		dispatch.incrementAndGet();
+		loggit(location, wi);
 	}
 
 	@Override
@@ -49,30 +62,31 @@ public class ProcessStatistics implement
 		dispatch.decrementAndGet();
 		done.incrementAndGet();
 		wis.ended(wi);
-		MessageBuffer mb = new MessageBuffer();
-		mb.append(Standardize.Label.seqNo.get()+wi.getMetaCas().getSystemKey());
-		mb.append(Standardize.Label.avg.get()+getMillisAvg());
-		mb.append(Standardize.Label.max.get()+getMillisMax());
-		mb.append(Standardize.Label.min.get()+getMillisMin());
-		logger.trace(location, ILogger.null_id, mb.toString());
+		loggit(location, wi);
 	}
 
 	@Override
 	public void error(IWorkItem wi) {
+		String location = "error";
 		dispatch.decrementAndGet();
 		error.incrementAndGet();
+		loggit(location, wi);
 	}
 
 	@Override
 	public void preempt(IWorkItem wi) {
+		String location = "preempt";
 		dispatch.decrementAndGet();
 		preempt.incrementAndGet();
+		loggit(location, wi);
 	}
 
 	@Override
 	public void retry(IWorkItem wi) {
+		String location = "retry";
 		dispatch.decrementAndGet();
 		retry.incrementAndGet();
+		loggit(location, wi);
 	}
 
 	@Override

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/wi/WorkItem.java Sat Dec 27 13:10:55 2014
@@ -59,11 +59,22 @@ public class WorkItem implements IWorkIt
 	}
 
 	@Override
+	public void reset() {
+		metaCas = null;
+		fsm.reset();
+		todGet.reset();
+		todAck.reset();
+		todEnd.reset();
+	}
+	
+	/*
+	@Override
 	public void resetTods() {
 		todGet.reset();
 		todAck.reset();
 		todEnd.reset();
 	}
+	*/
 	
 	@Override
 	public void setTodGet() {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java Sat Dec 27 13:10:55 2014
@@ -338,8 +338,8 @@ public class TestMessageHandler extends
 			IOperatingInfo oi = messageHandler.handleGetOperatingInfo();
 			assertTrue(oi.getWorkItemCrFetches() == 100);
 			asExpected("CASes fetched count == 100");
-			assertTrue(oi.getWorkItemPreemptions() == expectedPremptionsTest03);
-			asExpected("CASes preempted count == "+expectedPremptionsTest03);
+			assertTrue(oi.getWorkItemPreemptions() > 0);
+			asExpected("CASes preempted count == "+oi.getWorkItemPreemptions());
 			try {
 				Thread.sleep(50);
 			}
@@ -360,8 +360,6 @@ public class TestMessageHandler extends
 	private Random randomTest03 = new Random(seedTest03);
 	private long pctTest03 = 15;
 	
-	private long expectedPremptionsTest03 = 32;
-	
 	private void randomPreemptTest03(MessageHandler messageHandler, ThreadInfo ti) {
 		int n = randomTest03.nextInt(100);
 		if(n < pctTest03) {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverConfiguration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverConfiguration.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverConfiguration.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverConfiguration.java Sat Dec 27 13:10:55 2014
@@ -246,7 +246,7 @@ import org.springframework.context.annot
 					char[] content = new char[request.getContentLength()];
 
 					request.getReader().read(content);
-					logger.info("doPost",jobid, "Http Request Body:::"+String.valueOf(content));
+					logger.debug("doPost",jobid, "Http Request Body:::"+String.valueOf(content));
 					
 					IMetaCasTransaction imt=null;
 					String t = String.valueOf(content);

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/DuccProcessWorkItemsReport.java Sat Dec 27 13:10:55 2014
@@ -67,45 +67,48 @@ public class DuccProcessWorkItemsReport
 		// retry
 		long newRetry = retry+value.getCountRetry();
 		totals.setCountRetry(newRetry);
-		// avg
-		long cnt1 = totals.getCountDone();
-		long avg1 = totals.getMillisAvg();
-		long cnt2 = value.getCountDone();
-		long avg2 = value.getMillisAvg();
-		double top = (avg1*cnt1)+(avg2*cnt2);
-		double bot = (cnt1+cnt2);
-		long avg = (long)(top/bot);
-		totals.setMillisAvg(avg);
-		// max
-		long max = totals.getMillisMax();
-		long maxCandidate = value.getMillisMax();
-		logger.trace(location, null, "max="+max+" "+"maxCandidate="+maxCandidate);
-		if(max > 0) {
-			if(maxCandidate > 0) {
-				if(maxCandidate > max) {
-					max = maxCandidate;
+		// update avg, max, min
+		if(value.getCountDone() > 0) {
+			// avg
+			long cnt1 = totals.getCountDone();
+			long avg1 = totals.getMillisAvg();
+			long cnt2 = value.getCountDone();
+			long avg2 = value.getMillisAvg();
+			double top = (avg1*cnt1)+(avg2*cnt2);
+			double bot = (cnt1+cnt2);
+			long avg = (long)(top/bot);
+			totals.setMillisAvg(avg);
+			// max
+			long max = totals.getMillisMax();
+			long maxCandidate = value.getMillisMax();
+			logger.trace(location, null, "max="+max+" "+"maxCandidate="+maxCandidate);
+			if(max > 0) {
+				if(maxCandidate > 0) {
+					if(maxCandidate > max) {
+						max = maxCandidate;
+					}
 				}
 			}
-		}
-		else {
-			max = maxCandidate;
-		}
-		totals.setMillisMax(max);
-		// min
-		long min = totals.getMillisMin();
-		long minCandidate = value.getMillisMin();
-		logger.trace(location, null, "min="+min+" "+"minCandidate="+minCandidate);
-		if(min > 0) {
-			if(minCandidate > 0) {
-				if(minCandidate < min) {
-					min = minCandidate;
+			else {
+				max = maxCandidate;
+			}
+			totals.setMillisMax(max);
+			// min
+			long min = totals.getMillisMin();
+			long minCandidate = value.getMillisMin();
+			logger.trace(location, null, "min="+min+" "+"minCandidate="+minCandidate);
+			if(min > 0) {
+				if(minCandidate > 0) {
+					if(minCandidate < min) {
+						min = minCandidate;
+					}
 				}
 			}
+			else {
+				min = minCandidate;
+			}
+			totals.setMillisMin(min);
 		}
-		else {
-			min = minCandidate;
-		}
-		totals.setMillisMin(min);
 		// process
 		map.put(key, value);
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java?rev=1648053&r1=1648052&r2=1648053&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java Sat Dec 27 13:10:55 2014
@@ -123,8 +123,9 @@ public class JobDriverReport implements
 		setWorkItemsTotal(operatingInfo.getWorkItemCrTotal());
 		setWorkItemsProcessingCompleted(operatingInfo.getWorkItemEndSuccesses());
 		setWorkItemsProcessingError(operatingInfo.getWorkItemEndFailures());
-		setWorkItemsRetry(operatingInfo.getWorkItemUserProcessingErrorRetries());
 		setWorkItemsDispatched(operatingInfo.getWorkItemDispatcheds());
+		setWorkItemsRetry(operatingInfo.getWorkItemRetrys());
+		setWorkItemsPreempt(operatingInfo.getWorkItemPreemptions());
 		// min of finished & running
 		long fMin = operatingInfo.getWorkItemFinishedMillisMin();
 		long min = fMin;
@@ -234,12 +235,16 @@ public class JobDriverReport implements
 		workItemsProcessingError = value;
 	}
 	
+	private void setWorkItemsDispatched(int value) {
+		workItemsDispatched = value;
+	}
+	
 	private void setWorkItemsRetry(int value) {
 		workItemsRetry = value;
 	}
 	
-	private void setWorkItemsDispatched(int value) {
-		workItemsDispatched = value;
+	private void setWorkItemsPreempt(int value) {
+		workItemsPreempted = value;
 	}
 	
 	private void setWiMillisMin(long value) {