You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/08/20 02:25:38 UTC
svn commit: r687209 - in /ode/trunk:
bpel-runtime/src/main/java/org/apache/ode/bpel/engine/
scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/
scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/
Author: mriou
Date: Tue Aug 19 17:25:37 2008
New Revision: 687209
URL: http://svn.apache.org/viewvc?rev=687209&view=rev
Log:
Keep retrying instead of creating bad-job-XXX.ser
Modified:
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
Modified: ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=687209&r1=687208&r2=687209&view=diff
==============================================================================
--- ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java (original)
+++ ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java Tue Aug 19 17:25:37 2008
@@ -496,7 +496,7 @@
process.handleWorkEvent(jobInfo);
} catch (Exception ex) {
- throw new JobProcessorException(ex, true);
+ throw new JobProcessorException(ex, jobInfo.jobDetail.get("inmem") == null);
} finally {
_mngmtLock.readLock().unlock();
}
Modified: ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java?rev=687209&r1=687208&r2=687209&view=diff
==============================================================================
--- ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java (original)
+++ ode/trunk/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java Tue Aug 19 17:25:37 2008
@@ -313,10 +313,10 @@
try {
_jobProcessor.onScheduledJob(jobInfo);
} catch (JobProcessorException jpe) {
- if (jpe.retry) {
- __log.error("Error while processing transaction, retrying.", jpe);
- doRetry(job);
- } else __log.error("Error while processing transaction, no retry.", jpe);
+ if (jpe.retry)
+ __log.error("Error while processing transaction, retrying in " + doRetry(job) + "s");
+ else
+ __log.error("Error while processing transaction, no retry.", jpe);
}
} catch (Exception ex) {
__log.error("Error in scheduler processor.", ex);
@@ -470,15 +470,17 @@
} finally {
__log.debug("node recovery complete");
}
-
}
- private void doRetry(Job job) throws DatabaseException {
- Calendar retryTime = Calendar.getInstance();
- retryTime.add(Calendar.SECOND, 2);
- job.detail.put("retry", job.detail.get("retry") != null ? (((Integer)job.detail.get("retry")) + 1) : 1);
- Job jobRetry = new Job(retryTime.getTime().getTime(), true, job.detail);
+ private long doRetry(Job job) throws DatabaseException {
+ int retry = job.detail.get("retry") != null ? (((Integer)job.detail.get("retry")) + 1) : 0;
+ job.detail.put("retry", retry);
+ long delay = (long)(Math.pow(5, retry));
+ // Don't want to go further than a day
+ if (delay > 24*60*60) delay = 24*60*60;
+ Job jobRetry = new Job(System.currentTimeMillis() + delay*1000, true, job.detail);
_db.insertJob(jobRetry, _nodeId, false);
+ return delay;
}
private abstract class SchedulerTask extends Task implements Runnable {
Modified: ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
URL: http://svn.apache.org/viewvc/ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java?rev=687209&r1=687208&r2=687209&view=diff
==============================================================================
--- ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java (original)
+++ ode/trunk/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java Tue Aug 19 17:25:37 2008
@@ -44,7 +44,7 @@
_txm.commit();
}
- Thread.sleep(5000);
+ Thread.sleep(10000);
assertEquals(3, _tried);
}