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/02/07 14:42:24 UTC

svn commit: r1565648 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java

Author: degenaro
Date: Fri Feb  7 13:42:23 2014
New Revision: 1565648

URL: http://svn.apache.org/r1565648
Log:
UIMA-3600 DUCC Job Driver (JD) does not properly handle work items for down node (RM Purged)

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java?rev=1565648&r1=1565647&r2=1565648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java Fri Feb  7 13:42:23 2014
@@ -257,6 +257,7 @@ public class JobFactory {
 	
 	private void createDriver(CommonConfiguration common, JobRequestProperties jobRequestProperties,  DuccWorkJob job) {
 		String methodName = "createDriver";
+		DuccPropertiesResolver duccPropertiesResolver = DuccPropertiesResolver.getInstance();
 		// java command
 		String javaCmd = jobRequestProperties.getProperty(JobSpecificationProperties.key_jvm);
 		// broker & queue
@@ -266,18 +267,36 @@ public class JobFactory {
 		String crxml = jobRequestProperties.getProperty(JobSpecificationProperties.key_driver_descriptor_CR);
 		String crcfg = jobRequestProperties.getProperty(JobSpecificationProperties.key_driver_descriptor_CR_overrides);
 		// getMeta
-		String meta_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.default_process_get_meta_time_max);
+		String meta_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.default_process_get_meta_time_max);
 		// lost
-		String lost_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.ducc_jd_queue_timeout_minutes);
+		String lost_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_jd_queue_timeout_minutes);
 		// process_per_item_time_max
 		String wi_time = jobRequestProperties.getProperty(JobRequestProperties.key_process_per_item_time_max);
 		if(wi_time == null) {
-			wi_time = DuccPropertiesResolver.getInstance().getFileProperty(DuccPropertiesResolver.default_process_per_item_time_max);
+			wi_time = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.default_process_per_item_time_max);
 		}
 		// Exception handler
 		String processExceptionHandler = jobRequestProperties.getProperty(JobRequestProperties.key_driver_exception_handler);
+		// ProcessStatusMaxWaitMillis
+		long processStatusMaxWaitMillis = -1;
+		try {
+			String ducc_orchestrator_abbreviated_state_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_orchestrator_abbreviated_state_publish_rate);
+			String ducc_rm_state_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_rm_state_publish_rate);
+			String ducc_agent_node_metrics_publish_rate = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_agent_node_metrics_publish_rate);
+			String ducc_rm_node_stability = duccPropertiesResolver.getFileProperty(DuccPropertiesResolver.ducc_rm_node_stability);
+			long orMillisRate = Long.parseLong(ducc_orchestrator_abbreviated_state_publish_rate);
+			long rmMillisRate = Long.parseLong(ducc_rm_state_publish_rate);
+			long metricsMillisRate = Long.parseLong(ducc_agent_node_metrics_publish_rate);
+			long stabilityCount = Long.parseLong(ducc_rm_node_stability);
+			long fudgeMillis = 10 * 1000;
+			processStatusMaxWaitMillis = metricsMillisRate*stabilityCount+(orMillisRate+rmMillisRate+fudgeMillis);
+			logger.debug(methodName, job.getDuccId(), "driver:processStatusMaxWaitMillis="+processStatusMaxWaitMillis);
+		}
+		catch(Exception e) {
+			logger.error(methodName, job.getDuccId(), e);
+		}
 		// Command line
-		DuccWorkPopDriver driver = new DuccWorkPopDriver(job.getjobBroker(), job.getjobQueue(), crxml, crcfg, meta_time, lost_time, wi_time, processExceptionHandler);
+		DuccWorkPopDriver driver = new DuccWorkPopDriver(job.getjobBroker(), job.getjobQueue(), crxml, crcfg, meta_time, lost_time, wi_time, processExceptionHandler, processStatusMaxWaitMillis);
 		JavaCommandLine driverCommandLine = new JavaCommandLine(javaCmd);
 		driverCommandLine.setClassName(IDuccCommand.main);
 		driverCommandLine.addOption(IDuccCommand.arg_ducc_deploy_configruation);

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java?rev=1565648&r1=1565647&r2=1565648&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccWorkPopDriver.java Fri Feb  7 13:42:23 2014
@@ -33,18 +33,9 @@ public class DuccWorkPopDriver extends D
 		private String wiTimeout = null;
 		private String processExceptionHandler = null;
 		
-		public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout, String processExceptionHandler) {
-			this.serverUri = serverUri;
-			this.endPoint = endPoint;
-			this.cr = cr;
-			this.crConfig = crConfig;
-			this.metaTimeout = metaTimeout;
-			this.lostTimeout = lostTimeout;
-			this.wiTimeout = wiTimeout;
-			this.processExceptionHandler = processExceptionHandler;
-		}
+		private long processStatusMaxWaitMillis = (5*60*1000)+(1*1000);
 		
-		public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout) {
+		public DuccWorkPopDriver(String serverUri, String endPoint, String cr, String crConfig, String metaTimeout, String lostTimeout, String wiTimeout, String processExceptionHandler, long processStatusMaxWaitMillis) {
 			this.serverUri = serverUri;
 			this.endPoint = endPoint;
 			this.cr = cr;
@@ -52,6 +43,10 @@ public class DuccWorkPopDriver extends D
 			this.metaTimeout = metaTimeout;
 			this.lostTimeout = lostTimeout;
 			this.wiTimeout = wiTimeout;
+			this.processExceptionHandler = processExceptionHandler;
+			if(processStatusMaxWaitMillis >= 0) {
+				this.processStatusMaxWaitMillis = processStatusMaxWaitMillis;
+			}
 		}
 		
 		public String getServerUri() {
@@ -85,4 +80,8 @@ public class DuccWorkPopDriver extends D
 		public String getProcessExceptionHandler() {
 			return processExceptionHandler;
 		}
+		
+		public long getProcessStatusMaxWaitMillis() {
+			return processStatusMaxWaitMillis;
+		}
 }