Author: degenaro
Date: Tue Aug 20 14:11:24 2013
New Revision: 1515830

URL: http://svn.apache.org/r1515830
Log:
UIMA-3161 DUCC orchestrator (OR) should redrive JD node request forever

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1515830&r1=1515829&r2=1515830&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
 Tue Aug 20 14:11:24 2013
@@ -24,6 +24,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.uima.ducc.common.Node;
 import org.apache.uima.ducc.common.NodeIdentity;
@@ -31,6 +32,7 @@ import org.apache.uima.ducc.common.inter
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
 import org.apache.uima.ducc.common.utils.TimeStamp;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.agent.IUimaPipelineAEComponent;
@@ -652,6 +654,8 @@ public class StateManager {
                return retVal;
        }
        
+       private static AtomicBoolean refusedLogged = new AtomicBoolean(false);
+       
        /**
         * RM reconciliation
         */
@@ -736,11 +740,20 @@ public class StateManager {
                                                        break;
                                                case WaitingForResources:
                                                        
if(rmResourceState.isRefused()) {
-                                                               
duccWorkReservation.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
-                                                               
duccWorkReservation.setCompletionType(ReservationCompletionType.ResourcesUnavailable);
-                                                               
duccWorkReservation.setCompletionRationale(new Rationale("resource manager 
refused allocation: "+rmResourceState.getReason()));
-                                                               changes += 
stateChange(duccWorkReservation,ReservationState.Completed);
-                                                               
logger.warn(methodName, duccId, 
messages.fetchLabel("refused")+rmResourceState.getReason());
+                                                               String 
schedulingClass = 
duccWorkReservation.getSchedulingInfo().getSchedulingClass().trim();
+                                                               
if(schedulingClass.equals(DuccSchedulerClasses.JobDriver)) {
+                                                                       
if(!refusedLogged.get()) {
+                                                                               
logger.warn(methodName, duccId, messages.fetchLabel("refusal 
ignored")+rmResourceState.getReason());
+                                                                               
refusedLogged.set(true);
+                                                                       }
+                                                               }
+                                                               else {
+                                                                       
duccWorkReservation.getStandardInfo().setDateOfCompletion(TimeStamp.getCurrentMillis());
+                                                                       
duccWorkReservation.setCompletionType(ReservationCompletionType.ResourcesUnavailable);
+                                                                       
duccWorkReservation.setCompletionRationale(new Rationale("resource manager 
refused allocation: "+rmResourceState.getReason()));
+                                                                       changes 
+= stateChange(duccWorkReservation,ReservationState.Completed);
+                                                                       
logger.warn(methodName, duccId, 
messages.fetchLabel("refused")+rmResourceState.getReason());
+                                                               }
                                                        }
                                                        else {
                                                                
if(rmResourceState.getResources() != null) {


Reply via email to