[jbpm-commits] JBoss JBPM SVN: r6926 - in jbpm3/branches/jbpm-3.2-soa/core/src/main: java/org/jbpm/job/executor and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon May 16 09:56:34 EDT 2011
Author: jcoleman at redhat.com
Date: 2011-05-16 09:56:34 -0400 (Mon, 16 May 2011)
New Revision: 6926
Modified:
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/db/JobSession.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml
Log:
Updates to the job executor fixes (revision 6918):
o increase the retry count when we unlock a job if an error has occurred.
Otherwise, we would decrease the value when we shouldn't
o remove the additional unlocking code, as the lock-monitor thread will
handle this for us
>From kconner@
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/db/JobSession.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/db/JobSession.java 2011-05-16 09:20:03 UTC (rev 6925)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/db/JobSession.java 2011-05-16 13:56:34 UTC (rev 6926)
@@ -275,14 +275,4 @@
}
return session.createCriteria(Job.class).add(Restrictions.in("id", jobs)).list();
}
-
- public void releaseLockedJobs(final String lockOwner) {
- try {
- session.getNamedQuery("JobSession.releaseLockedJobs")
- .setString("lockOwner", lockOwner)
- .executeUpdate();
- } catch (HibernateException e) {
- throw new JbpmPersistenceException("could not release locked jobs by owner '" + lockOwner + "'", e);
- }
- }
}
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2011-05-16 09:20:03 UTC (rev 6925)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutor.java 2011-05-16 13:56:34 UTC (rev 6926)
@@ -17,8 +17,6 @@
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
-import org.jbpm.db.JobSession;
import org.jbpm.job.Job;
import edu.emory.mathcs.backport.java.util.concurrent.locks.Condition;
@@ -498,37 +496,10 @@
private void activateDispatcher() {
waitingExecutorLock.lock() ;
- try {
- if (!dispatcherActive) {
- unlockOurJobs() ;
- dispatcherActive = true ;
- }
- } finally {
- waitingExecutorLock.unlock() ;
- }
+ dispatcherActive = true ;
+ waitingExecutorLock.unlock() ;
}
- private void unlockOurJobs() {
- final JbpmContext jbpmContext = getJbpmConfiguration().createJbpmContext();
- try {
- final String lockOwner = getName();
- final JobSession jobSession = jbpmContext.getJobSession();
- jobSession.releaseLockedJobs(lockOwner);
- } catch (RuntimeException e) {
- jbpmContext.setRollbackOnly();
- if (log.isDebugEnabled()) log.debug("failed to release locked jobs", e);
- } catch (Error e) {
- jbpmContext.setRollbackOnly();
- throw e;
- } finally {
- try {
- jbpmContext.close();
- } catch (RuntimeException e) {
- if (log.isDebugEnabled()) log.debug("failed to release locked jobs", e);
- }
- }
- }
-
private void deactivateDispatcher() {
waitingExecutorLock.lock() ;
try {
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2011-05-16 09:20:03 UTC (rev 6925)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/java/org/jbpm/job/executor/JobExecutorThread.java 2011-05-16 13:56:34 UTC (rev 6926)
@@ -219,6 +219,10 @@
// unlock job
job.setLockOwner(null);
job.setLockTime(null);
+ if (job.getException() != null)
+ {
+ job.setRetries(job.getRetries()+1) ;
+ }
}
catch (RuntimeException e) {
jbpmContext.setRollbackOnly();
Modified: jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml 2011-05-16 09:20:03 UTC (rev 6925)
+++ jbpm3/branches/jbpm-3.2-soa/core/src/main/resources/org/jbpm/db/hibernate.queries.hbm.xml 2011-05-16 13:56:34 UTC (rev 6926)
@@ -401,16 +401,6 @@
]]>
</query>
- <query name="JobSession.releaseLockedJobs">
- <![CDATA[
- update org.jbpm.job.Job job
- set job.lockOwner = null, job.lockTime = null
- where (job.lockOwner = :lockOwner)
- and job.retries > 0
- and job.isSuspended = false
- ]]>
- </query>
-
<!-- related to Tasks -->
<!-- ########################### -->
More information about the jbpm-commits
mailing list