You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by rr...@apache.org on 2010/04/21 18:39:25 UTC
svn commit: r936389 [1/2] - in /ode/branches/APACHE_ODE_1.X:
bpel-api/src/main/java/org/apache/ode/bpel/iapi/
bpel-epr/src/main/java/org/apache/ode/il/
bpel-runtime/src/main/java/org/apache/ode/bpel/engine/
bpel-runtime/src/main/java/org/apache/ode/bpe...
Author: rr
Date: Wed Apr 21 16:39:23 2010
New Revision: 936389
URL: http://svn.apache.org/viewvc?rev=936389&view=rev
Log:
ODE-626: Unpack details blob from ODE_JOB table
Added:
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/resources/log4j.properties (with props)
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/resources/simplesched-hsql.sql (with props)
Removed:
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/WorkEvent.java
Modified:
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-derby.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-firebird.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-hsql.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-mysql.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-oracle.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-postgres.sql
ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql
ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql
ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql
ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/Job.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/JdbcDelegateTest.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
ode/branches/APACHE_ODE_1.X/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java
Modified: ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java Wed Apr 21 16:39:23 2010
@@ -33,6 +33,7 @@ import javax.xml.namespace.QName;
import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.o.OFailureHandling;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.utils.CronExpression;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -214,7 +215,7 @@ public interface ProcessConf {
public class CronJob {
private CronExpression _cronExpression;
- private final List<Map<String,Object>> runnableDetailList = new ArrayList<Map<String,Object>>();
+ private final List<JobDetails> runnableDetailList = new ArrayList<JobDetails>();
public void setCronExpression(CronExpression _cronExpression) {
this._cronExpression = _cronExpression;
@@ -224,7 +225,7 @@ public interface ProcessConf {
return _cronExpression;
}
- public List<Map<String,Object>> getRunnableDetailList() {
+ public List<JobDetails> getRunnableDetailList() {
return runnableDetailList;
}
@@ -240,7 +241,7 @@ public interface ProcessConf {
}
}
- public class CleanupInfo {
+ public class CleanupInfo implements java.io.Serializable {
private List<String> _filters = new ArrayList<String>();
private final Set<CLEANUP_CATEGORY> _categories = EnumSet.noneOf(CLEANUP_CATEGORY.class);
Modified: ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java Wed Apr 21 16:39:23 2010
@@ -26,6 +26,10 @@ import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.common.CorrelationKeySet;
+
/**
* The BPEL scheduler.
*/
@@ -42,7 +46,7 @@ public interface Scheduler {
* @param when when the job should run (<code>null</code> means now)
* @return unique job identifier
*/
- String schedulePersistedJob(Map<String,Object>jobDetail,Date when)
+ String schedulePersistedJob(JobDetails jobDetail,Date when)
throws ContextException ;
@@ -66,13 +70,13 @@ public interface Scheduler {
* @param when does the job should be executed?
* @return unique (as far as the scheduler is concerned) job identifier
*/
- String scheduleVolatileJob(boolean transacted, Map<String,Object> jobDetail, Date when) throws ContextException;
+ String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date when) throws ContextException;
/**
* Schedule a volatile job for right now
* @see #scheduleVolatileJob(boolean, java.util.Map, java.util.Date)
*/
- String scheduleVolatileJob(boolean transacted, Map<String,Object> jobDetail) throws ContextException;
+ String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws ContextException;
/**
* Make a good effort to cancel the job. If its already running no big
@@ -166,6 +170,105 @@ public interface Scheduler {
void onScheduledJob(JobInfo jobInfo) throws JobProcessorException;
}
+ public enum JobType {
+ TIMER,
+ RESUME,
+ INVOKE_INTERNAL,
+ INVOKE_RESPONSE,
+ MATCHER,
+ INVOKE_CHECK
+ }
+
+ public static class JobDetails {
+ public Long instanceId;
+ public String mexId;
+ public String processId;
+ public String type;
+ public String channel;
+ public String correlatorId;
+ public String correlationKeySet;
+ public Integer retryCount;
+ public Boolean inMem;
+ public Map<String, Object> detailsExt = new HashMap<String, Object>();
+
+ public Boolean getInMem() {
+ return inMem == null ? false : inMem;
+ }
+ public void setInMem(Boolean inMem) {
+ this.inMem = inMem;
+ }
+ public String getMexId() {
+ return mexId;
+ }
+ public void setMexId(String mexId) {
+ this.mexId = mexId;
+ }
+ public QName getProcessId() {
+ return processId == null ? null : QName.valueOf(processId);
+ }
+ public void setProcessId(QName processId) {
+ this.processId = "" + processId;
+ }
+ public JobType getType() {
+ return JobType.valueOf(type);
+ }
+ public void setType(JobType type) {
+ this.type = type.toString();
+ }
+ public String getChannel() {
+ return channel;
+ }
+ public void setChannel(String channel) {
+ this.channel = channel;
+ }
+ public String getCorrelatorId() {
+ return correlatorId;
+ }
+ public void setCorrelatorId(String correlatorId) {
+ this.correlatorId = correlatorId;
+ }
+ public CorrelationKeySet getCorrelationKeySet() {
+ return new CorrelationKeySet(correlationKeySet);
+ }
+ public void setCorrelationKeySet(CorrelationKeySet correlationKeySet) {
+ this.correlationKeySet = correlationKeySet == null ? null : correlationKeySet.toCanonicalString();
+ }
+ public Integer getRetryCount() {
+ return retryCount == null ? 0 : retryCount;
+ }
+ public void setRetryCount(Integer retryCount) {
+ this.retryCount = retryCount;
+ }
+ public Long getInstanceId() {
+ return instanceId;
+ }
+ public void setInstanceId(Long instanceId) {
+ this.instanceId = instanceId;
+ }
+ public Map<String, Object> getDetailsExt() {
+ return detailsExt;
+ }
+ public void setDetailsExt(Map<String, Object> detailsExt) {
+ this.detailsExt = detailsExt;
+ }
+
+ @Override
+ public String toString() {
+ return "JobDetails("
+ + " instanceId: " + instanceId
+ + " mexId: " + mexId
+ + " processId: " + processId
+ + " type: " + type
+ + " channel: " + channel
+ + " correlatorId: " + correlatorId
+ + " correlationKeySet: " + correlationKeySet
+ + " retryCount: " + retryCount
+ + " inMem: " + inMem
+ + " detailsExt: " + detailsExt
+ + ")";
+ }
+ }
+
/**
* Wrapper containing information about a scheduled job.
* @author mszefler
@@ -174,17 +277,16 @@ public interface Scheduler {
private static final long serialVersionUID = 1L;
public final String jobName;
public final int retryCount;
- public final Map<String,Object> jobDetail;
+ public final JobDetails jobDetail;
- public JobInfo(String jobName, Map<String,Object>jobDetail, int retryCount) {
+ public JobInfo(String jobName, JobDetails jobDetail, int retryCount) {
this.jobName = jobName;
this.jobDetail = jobDetail;
this.retryCount = retryCount;
}
public String toString() {
- // Wrap in hashmap in case the underlying object has no toString method.
- return jobName + "["+retryCount +"]: " + new HashMap<Object, Object>(jobDetail);
+ return jobName + "["+retryCount +"]: " + jobDetail;
}
}
@@ -208,7 +310,7 @@ public interface Scheduler {
}
public interface MapSerializableRunnable extends Runnable, Serializable {
- void storeToDetailsMap(Map<String, Object> details);
- void restoreFromDetailsMap(Map<String, Object> details);
+ void storeToDetails(JobDetails details);
+ void restoreFromDetails(JobDetails details);
}
}
\ No newline at end of file
Modified: ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java Wed Apr 21 16:39:23 2010
@@ -69,7 +69,7 @@ public class MockScheduler implements Sc
}
};
- public String schedulePersistedJob(final Map<String, Object> detail, final Date date) throws ContextException {
+ public String schedulePersistedJob(final JobDetails detail, final Date date) throws ContextException {
if (date != null) {
return scheduleVolatileJob(true, detail, date);
} else {
@@ -77,11 +77,11 @@ public class MockScheduler implements Sc
}
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object> jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws ContextException {
return scheduleVolatileJob(transacted, jobDetail, null);
}
- public String scheduleVolatileJob(final boolean transacted, final Map<String, Object> detail, final Date date) throws ContextException {
+ public String scheduleVolatileJob(final boolean transacted, final JobDetails detail, final Date date) throws ContextException {
if (date != null) {
registerSynchronizer(new Synchronizer() {
public void afterCompletion(boolean success) {
@@ -113,7 +113,7 @@ public class MockScheduler implements Sc
}
}
- private void exec(boolean transacted, final Map<String, Object> detail) {
+ private void exec(boolean transacted, final JobDetails detail) {
try {
if (transacted) {
@@ -148,7 +148,7 @@ public class MockScheduler implements Sc
});
return null;
} else {
- return scheduleVolatileJob(true, new HashMap<String, Object>());
+ return scheduleVolatileJob(true, new JobDetails());
}
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java Wed Apr 21 16:39:23 2010
@@ -52,7 +52,9 @@ import org.apache.ode.bpel.iapi.MessageE
import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange.CorrelationStatus;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.JobInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
import org.apache.ode.bpel.intercept.ProcessCountThrottler;
@@ -372,18 +374,18 @@ public class BpelEngineImpl implements B
}
public void onScheduledJob(Scheduler.JobInfo jobInfo) throws Scheduler.JobProcessorException {
- final WorkEvent we = new WorkEvent(jobInfo.jobDetail);
+ final JobDetails we = jobInfo.jobDetail;
- if( __log.isTraceEnabled() ) __log.trace("[JOB] onScheduledJob " + jobInfo + "" + we.getIID());
+ if( __log.isTraceEnabled() ) __log.trace("[JOB] onScheduledJob " + jobInfo + "" + we.getInstanceId());
// We lock the instance to prevent concurrent transactions and prevent unnecessary rollbacks,
// Note that we don't want to wait too long here to get our lock, since we are likely holding
// on to scheduler's locks of various sorts.
try {
- _instanceLockManager.lock(we.getIID(), 1, TimeUnit.MICROSECONDS);
+ _instanceLockManager.lock(we.getInstanceId(), 1, TimeUnit.MICROSECONDS);
_contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
public void afterCompletion(boolean success) {
- _instanceLockManager.unlock(we.getIID());
+ _instanceLockManager.unlock(we.getInstanceId());
}
public void beforeCompletion() { }
});
@@ -392,7 +394,7 @@ public class BpelEngineImpl implements B
__log.debug("Thread interrupted, job will be rescheduled: " + jobInfo);
throw new Scheduler.JobProcessorException(true);
} catch (org.apache.ode.bpel.engine.InstanceLockManager.TimeoutException e) {
- __log.debug("Instance " + we.getIID() + " is busy, rescheduling job.");
+ __log.debug("Instance " + we.getInstanceId() + " is busy, rescheduling job.");
throw new Scheduler.JobProcessorException(true);
}
// DONT PUT CODE HERE-need this method real tight in a try/catch block, we need to handle
@@ -405,11 +407,11 @@ public class BpelEngineImpl implements B
process = _activeProcesses.get(we.getProcessId());
} else {
ProcessInstanceDAO instance;
- if (we.isInMem()) instance = _contexts.inMemDao.getConnection().getInstance(we.getIID());
- else instance = _contexts.dao.getConnection().getInstance(we.getIID());
+ if (we.getInMem()) instance = _contexts.inMemDao.getConnection().getInstance(we.getInstanceId());
+ else instance = _contexts.dao.getConnection().getInstance(we.getInstanceId());
if (instance == null) {
- __log.debug(__msgs.msgScheduledJobReferencesUnknownInstance(we.getIID()));
+ __log.debug(__msgs.msgScheduledJobReferencesUnknownInstance(we.getInstanceId()));
// nothing we can do, this instance is not in the database, it will always fail, not
// exactly an error since can occur in normal course of events.
return;
@@ -427,13 +429,13 @@ public class BpelEngineImpl implements B
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(process._classLoader);
- if (we.getType().equals(WorkEvent.Type.INVOKE_CHECK)) {
- if (__log.isDebugEnabled()) __log.debug("handleWorkEvent: InvokeCheck event for mexid " + we.getMexId());
+ if (we.getType().equals(JobType.INVOKE_CHECK)) {
+ if (__log.isDebugEnabled()) __log.debug("handleJobDetails: InvokeCheck event for mexid " + we.getMexId());
sendPartnerRoleFailure(we, MessageExchange.FailureType.COMMUNICATION_ERROR);
return;
- } else if (we.getType().equals(WorkEvent.Type.INVOKE_INTERNAL)) {
- if (__log.isDebugEnabled()) __log.debug("handleWorkEvent: InvokeInternal event for mexid " + we.getMexId());
+ } else if (we.getType().equals(JobType.INVOKE_INTERNAL)) {
+ if (__log.isDebugEnabled()) __log.debug("handleJobDetails: InvokeInternal event for mexid " + we.getMexId());
setMessageExchangeProcess(we.getMexId(), process.getProcessDAO());
MyRoleMessageExchangeImpl mex = (MyRoleMessageExchangeImpl) getMessageExchange(we.getMexId());
@@ -450,33 +452,33 @@ public class BpelEngineImpl implements B
}
}
}
- process.handleWorkEvent(jobInfo.jobDetail);
+ process.handleJobDetails(jobInfo.jobDetail);
debuggingDelay();
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
} catch (BpelEngineException bee) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), bee);
+ __log.error(__msgs.msgScheduledJobFailed(we), bee);
throw new Scheduler.JobProcessorException(bee, checkRetry(we));
} catch (ContextException ce) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), ce);
+ __log.error(__msgs.msgScheduledJobFailed(we), ce);
throw new Scheduler.JobProcessorException(ce, checkRetry(we));
} catch (InvalidProcessException ipe) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), ipe);
+ __log.error(__msgs.msgScheduledJobFailed(we), ipe);
sendMyRoleFault(process, we, ipe.getCauseCode());
} catch (RuntimeException rte) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), rte);
+ __log.error(__msgs.msgScheduledJobFailed(we), rte);
throw new Scheduler.JobProcessorException(rte, checkRetry(we));
} catch (Throwable t) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), t);
+ __log.error(__msgs.msgScheduledJobFailed(we), t);
throw new Scheduler.JobProcessorException(t, checkRetry(we));
}
}
- private boolean checkRetry(WorkEvent we) {
+ private boolean checkRetry(JobDetails we) {
// Only retry if the job is NOT in memory. Not that this does not guaranty that a retry will be scheduled.
// Actually events are not retried if not persisted and the scheduler might choose to discard the event if it has been retried too many times.
- return !we.isInMem();
+ return !we.getInMem();
}
/**
@@ -684,7 +686,7 @@ public class BpelEngineImpl implements B
return false;
}
- public void sendMyRoleFault(BpelProcess process, WorkEvent we, int causeCode) {
+ public void sendMyRoleFault(BpelProcess process, JobDetails we, int causeCode) {
MessageExchange mex = (MessageExchange) getMessageExchange(we.getMexId());
if (!(mex instanceof MyRoleMessageExchange)) {
return;
@@ -717,7 +719,7 @@ public class BpelEngineImpl implements B
&& activeProcess.getConf().getType().equals(process.getConf().getType())) {
we.setProcessId(activeProcess._pid);
((MyRoleMessageExchangeImpl) mex)._process = activeProcess;
- process.handleWorkEvent(we.getDetail());
+ process.handleJobDetails(we);
return;
}
}
@@ -733,7 +735,7 @@ public class BpelEngineImpl implements B
}
}
- private void sendPartnerRoleFailure(WorkEvent we, FailureType failureType) {
+ private void sendPartnerRoleFailure(JobDetails we, FailureType failureType) {
MessageExchange mex = (MessageExchange) getMessageExchange(we.getMexId());
if (mex instanceof PartnerRoleMessageExchange) {
if (mex.getStatus() == MessageExchange.Status.ASYNC || mex.getStatus() == MessageExchange.Status.REQUEST) {
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java Wed Apr 21 16:39:23 2010
@@ -55,6 +55,8 @@ import org.apache.ode.bpel.iapi.PartnerR
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InstanceCountThrottler;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
@@ -402,20 +404,20 @@ public class BpelProcess {
}
/**
- * @see org.apache.ode.bpel.engine.BpelProcess#handleWorkEvent(java.util.Map<java.lang.String,java.lang.Object>)
+ * @see org.apache.ode.bpel.engine.BpelProcess#handleJobDetails(java.util.Map<java.lang.String,java.lang.Object>)
*/
- public void handleWorkEvent(Map<String, Object> jobData) {
+ public void handleJobDetails(JobDetails jobData) {
try {
_hydrationLatch.latch(1);
markused();
if (__log.isDebugEnabled()) {
- __log.debug(ObjectPrinter.stringifyMethodEnter("handleWorkEvent", new Object[] { "jobData", jobData }));
+ __log.debug(ObjectPrinter.stringifyMethodEnter("handleJobDetails", new Object[] { "jobData", jobData }));
}
- WorkEvent we = new WorkEvent(jobData);
+ JobDetails we = jobData;
// Process level events
- if (we.getType().equals(WorkEvent.Type.INVOKE_INTERNAL)) {
+ if (we.getType().equals(JobType.INVOKE_INTERNAL)) {
if (__log.isDebugEnabled()) {
__log.debug("InvokeInternal event for mexid " + we.getMexId());
}
@@ -423,10 +425,10 @@ public class BpelProcess {
invokeProcess(mex);
} else {
// Instance level events
- ProcessInstanceDAO procInstance = getProcessDAO().getInstance(we.getIID());
+ ProcessInstanceDAO procInstance = getProcessDAO().getInstance(we.getInstanceId());
if (procInstance == null) {
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: no ProcessInstance found with iid " + we.getIID() + "; ignoring.");
+ __log.debug("handleJobDetails: no ProcessInstance found with iid " + we.getInstanceId() + "; ignoring.");
}
return;
}
@@ -435,26 +437,26 @@ public class BpelProcess {
switch (we.getType()) {
case TIMER:
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: TimerWork event for process instance " + processInstance);
+ __log.debug("handleJobDetails: TimerWork event for process instance " + processInstance);
}
processInstance.timerEvent(we.getChannel());
break;
case RESUME:
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: ResumeWork event for iid " + we.getIID());
+ __log.debug("handleJobDetails: ResumeWork event for iid " + we.getInstanceId());
}
processInstance.execute();
break;
case INVOKE_RESPONSE:
if (__log.isDebugEnabled()) {
- __log.debug("InvokeResponse event for iid " + we.getIID());
+ __log.debug("InvokeResponse event for iid " + we.getInstanceId());
}
processInstance.invocationResponse(we.getMexId(), we.getChannel());
processInstance.execute();
break;
case MATCHER:
if (__log.isDebugEnabled()) {
- __log.debug("Matcher event for iid " + we.getIID());
+ __log.debug("Matcher event for iid " + we.getInstanceId());
}
if( procInstance.getState() == ProcessState.STATE_COMPLETED_OK
|| procInstance.getState() == ProcessState.STATE_COMPLETED_WITH_FAULT ) {
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java Wed Apr 21 16:39:23 2010
@@ -76,6 +76,8 @@ import org.apache.ode.bpel.iapi.MessageE
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.memdao.ProcessInstanceDaoImpl;
import org.apache.ode.bpel.o.OFailureHandling;
@@ -702,29 +704,29 @@ public class BpelRuntimeContextImpl impl
}
public void registerTimer(TimerResponseChannel timerChannel, Date timeToFire) {
- WorkEvent we = new WorkEvent();
- we.setIID(_dao.getInstanceId());
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_dao.getInstanceId());
we.setChannel(timerChannel.export());
- we.setType(WorkEvent.Type.TIMER);
+ we.setType(JobType.TIMER);
we.setInMem(_bpelProcess.isInMemory());
if(_bpelProcess.isInMemory()){
- _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail(), timeToFire);
+ _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we, timeToFire);
}else{
- _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), timeToFire);
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we, timeToFire);
}
}
private void scheduleCorrelatorMatcher(String correlatorId, CorrelationKeySet keySet) {
- WorkEvent we = new WorkEvent();
- we.setIID(_dao.getInstanceId());
- we.setType(WorkEvent.Type.MATCHER);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_dao.getInstanceId());
+ we.setType(JobType.MATCHER);
we.setCorrelatorId(correlatorId);
we.setCorrelationKeySet(keySet);
we.setInMem(_bpelProcess.isInMemory());
if(_bpelProcess.isInMemory()){
- _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+ _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we);
}else{
- _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we, null);
}
}
@@ -915,16 +917,16 @@ public class BpelRuntimeContextImpl impl
boolean isTwoWay = mex.getMessageExchangePattern() ==
org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern.REQUEST_RESPONSE;
if (!_bpelProcess.isInMemory() && isTwoWay) {
- WorkEvent event = new WorkEvent();
+ JobDetails event = new JobDetails();
event.setMexId(mex.getMessageExchangeId());
event.setProcessId(_bpelProcess.getPID());
event.setInMem(false);
- event.setType(WorkEvent.Type.INVOKE_CHECK);
+ event.setType(JobType.INVOKE_CHECK);
// use a greater timeout to make sure the check job does not get executed while the service invocation is still waiting for a response
long timeout = getBpelProcess().getTimeout(partnerLink, p2p);
if (__log.isDebugEnabled()) __log.debug("Creating invocation check event in "+timeout+"ms for mexid " + mex.getMessageExchangeId());
Date future = new Date(System.currentTimeMillis() + timeout);
- String jobId = _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(event.getDetail(), future);
+ String jobId = _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(event, future);
mex.setProperty("invokeCheckJobId", jobId);
}
}
@@ -981,14 +983,14 @@ public class BpelRuntimeContextImpl impl
if (__log.isDebugEnabled())
__log.debug("MaxTime exceeded for instance # " + _iid);
try {
- WorkEvent we = new WorkEvent();
- we.setIID(_iid);
- we.setType(WorkEvent.Type.RESUME);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_iid);
+ we.setType(JobType.RESUME);
we.setInMem(_bpelProcess.isInMemory());
if (_bpelProcess.isInMemory())
- _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+ _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
- _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), new Date());
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we, new Date());
} catch (ContextException e) {
__log.error("Failed to schedule resume task.", e);
throw new BpelEngineException(e);
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java Wed Apr 21 16:39:23 2010
@@ -619,7 +619,7 @@ public class BpelServerImpl implements B
}
if( statusOfPriorTry == JOB_STATUS.COMPLETED ) {
resultsByJobId.remove(jobInfo.jobName);
- jobInfo.jobDetail.put("runnable_status", JOB_STATUS.COMPLETED);
+ jobInfo.jobDetail.getDetailsExt().put("runnable_status", JOB_STATUS.COMPLETED);
return;
}
if( statusOfPriorTry == JOB_STATUS.PENDING || statusOfPriorTry == JOB_STATUS.FAILED ) {
@@ -633,8 +633,8 @@ public class BpelServerImpl implements B
_polledRunnableExec.submit(new Runnable() {
public void run() {
try {
- MapSerializableRunnable runnable = (MapSerializableRunnable)jobInfo.jobDetail.get("runnable");
- runnable.restoreFromDetailsMap(jobInfo.jobDetail);
+ MapSerializableRunnable runnable = (MapSerializableRunnable)jobInfo.jobDetail.getDetailsExt().get("runnable");
+ runnable.restoreFromDetails(jobInfo.jobDetail);
if( runnable instanceof ContextsAware ) {
((ContextsAware)runnable).setContexts(_contexts);
}
@@ -653,7 +653,7 @@ public class BpelServerImpl implements B
});
}
- jobInfo.jobDetail.put("runnable_status", JOB_STATUS.IN_PROGRESS);
+ jobInfo.jobDetail.getDetailsExt().put("runnable_status", JOB_STATUS.IN_PROGRESS);
if( exceptionThrownOnPriorTry != null ) {
throw new Scheduler.JobProcessorException(exceptionThrownOnPriorTry, true);
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java Wed Apr 21 16:39:23 2010
@@ -21,6 +21,8 @@ package org.apache.ode.bpel.engine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.iapi.DebuggerContext;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.bdi.breaks.Breakpoint;
import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.BpelDAOConnection;
@@ -173,10 +175,10 @@ public class DebuggerSupport implements
__log.debug("step(" + iid + ") adding step indicator to table.");
_step.add(iid);
- WorkEvent we = new WorkEvent();
- we.setIID(iid);
- we.setType(WorkEvent.Type.RESUME);
- _process._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(iid);
+ we.setType(JobType.RESUME);
+ _process._engine._contexts.scheduler.schedulePersistedJob(we, null);
return true;
}
@@ -297,10 +299,10 @@ public class DebuggerSupport implements
_process.saveEvent(evt, instance);
onEvent(evt);
- WorkEvent we = new WorkEvent();
- we.setType(WorkEvent.Type.RESUME);
- we.setIID(iid);
- _process._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ JobDetails we = new JobDetails();
+ we.setType(JobType.RESUME);
+ we.setInstanceId(iid);
+ _process._engine._contexts.scheduler.schedulePersistedJob(we, null);
return true;
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java Wed Apr 21 16:39:23 2010
@@ -18,6 +18,7 @@
*/
package org.apache.ode.bpel.engine;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.utils.msg.MessageBundle;
import javax.xml.namespace.QName;
@@ -186,7 +187,7 @@ public class Messages extends MessageBun
return format("Error registering expression language \"" + expressionLanguageUri + "\" with properties " + properties);
}
- public String msgScheduledJobFailed(Map<String, Object> jobDetail) {
+ public String msgScheduledJobFailed(JobDetails jobDetail) {
return format("Scheduled job failed; jobDetail={0}", jobDetail);
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java Wed Apr 21 16:39:23 2010
@@ -40,6 +40,8 @@ import org.apache.ode.bpel.iapi.MessageE
import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.AbortMessageExchangeException;
import org.apache.ode.bpel.intercept.FaultMessageExchangeException;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
@@ -132,8 +134,8 @@ public class MyRoleMessageExchangeImpl e
return null;
} else {
// Schedule a new job for invocation
- WorkEvent we = new WorkEvent();
- we.setType(WorkEvent.Type.INVOKE_INTERNAL);
+ JobDetails we = new JobDetails();
+ we.setType(JobType.INVOKE_INTERNAL);
we.setInMem(target.isInMemory());
we.setProcessId(target.getPID());
we.setMexId(getDAO().getMessageExchangeId());
@@ -147,11 +149,11 @@ public class MyRoleMessageExchangeImpl e
Replayer replayer = Replayer.replayer.get();
if (replayer == null) {
if (target.isInMemory())
- _engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+ _engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
- _engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ _engine._contexts.scheduler.schedulePersistedJob(we, null);
} else {
- replayer.scheduler.schedulePersistedJob(we.getDetail(), null);
+ replayer.scheduler.schedulePersistedJob(we, null);
}
return new ResponseFuture(getClientId());
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java Wed Apr 21 16:39:23 2010
@@ -22,13 +22,14 @@ package org.apache.ode.bpel.engine;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
-import org.apache.ode.bpel.engine.WorkEvent.Type;
import org.apache.ode.bpel.engine.replayer.Replayer;
import org.apache.ode.bpel.iapi.BpelEngineException;
import org.apache.ode.bpel.iapi.EndpointReference;
import org.apache.ode.bpel.iapi.Message;
import org.apache.ode.bpel.iapi.PartnerRoleChannel;
import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.utils.DOMUtils;
import org.w3c.dom.Element;
@@ -132,20 +133,20 @@ public class PartnerRoleMessageExchangeI
if (LOG.isDebugEnabled()) {
LOG.debug("create work event for mex=" + getMessageExchangeId());
}
- WorkEvent we = new WorkEvent();
- we.setIID(getDAO().getInstance().getInstanceId());
- we.setType(Type.INVOKE_RESPONSE);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(getDAO().getInstance().getInstanceId());
+ we.setType(JobType.INVOKE_RESPONSE);
we.setInMem(_engine._activeProcesses.get(getDAO().getProcess().getProcessId()).isInMemory());
we.setChannel(getDAO().getChannel());
we.setMexId(getDAO().getMessageExchangeId());
Replayer replayer = Replayer.replayer.get();
if (replayer == null) {
- if (we.isInMem())
- _engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+ if (we.getInMem())
+ _engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
- _engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ _engine._contexts.scheduler.schedulePersistedJob(we, null);
} else {
- replayer.scheduler.schedulePersistedJob(we.getDetail(), null);
+ replayer.scheduler.schedulePersistedJob(we, null);
}
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java Wed Apr 21 16:39:23 2010
@@ -4,11 +4,14 @@ import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.Callable;
+import javax.xml.namespace.QName;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.dao.DeferredProcessInstanceCleanable;
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
public class ProcessCleanUpRunnable implements MapSerializableRunnable, ContextsAware {
@@ -28,12 +31,12 @@ public class ProcessCleanUpRunnable impl
_pid = pid;
}
- public void storeToDetailsMap(Map<String, Object> details) {
- details.put("pid", _pid);
+ public void storeToDetails(JobDetails details) {
+ details.getDetailsExt().put("pid", _pid);
}
- public void restoreFromDetailsMap(Map<String, Object> details) {
- _pid = (Serializable)details.get("pid");
+ public void restoreFromDetails(JobDetails details) {
+ _pid = (Serializable) details.getDetailsExt().get("pid");
}
public void setContexts(Contexts contexts) {
@@ -65,4 +68,4 @@ public class ProcessCleanUpRunnable impl
}
if(__log.isInfoEnabled()) __log.info("Deleted runtime data for old process: " + _pid + ".");
}
-}
\ No newline at end of file
+}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java Wed Apr 21 16:39:23 2010
@@ -20,6 +20,7 @@ import org.apache.ode.bpel.engine.BpelSe
import org.apache.ode.bpel.iapi.ClusterAware;
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.ProcessConf.CronJob;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
import org.apache.ode.utils.CronExpression;
@@ -112,11 +113,11 @@ public class CronScheduler {
Runnable runnable = new Runnable() {
public void run() {
if( __log.isDebugEnabled() ) __log.debug("Running cron cleanup with details list size: " + job.getRunnableDetailList().size());
- for( Map<String, Object> details : job.getRunnableDetailList() ) {
+ for( JobDetails details : job.getRunnableDetailList() ) {
try {
// for each clean up for the scheduled time
RuntimeDataCleanupRunnable cleanup = new RuntimeDataCleanupRunnable();
- cleanup.restoreFromDetailsMap(details);
+ cleanup.restoreFromDetails(details);
cleanup.setContexts(_contexts);
cleanup.run();
if( __log.isDebugEnabled() ) __log.debug("Finished running runtime data cleanup from a PROCESS CRON job: " + cleanup);
@@ -168,17 +169,17 @@ public class CronScheduler {
// for each different scheduled time
Runnable runnable = new Runnable() {
public void run() {
- for( Map<String, Object> details : job.getRunnableDetailList() ) {
+ for( JobDetails details : job.getRunnableDetailList() ) {
try {
// for now, we have only runtime data cleanup cron job defined
// for each clean up for the scheduled time
RuntimeDataCleanupRunnable cleanup = new RuntimeDataCleanupRunnable();
synchronized( _terminationListenersByPid ) {
if( !_terminationListenersByPid.isEmpty() ) {
- details.put("pidsToExclude", _terminationListenersByPid.keySet());
+ details.getDetailsExt().put("pidsToExclude", _terminationListenersByPid.keySet());
}
}
- cleanup.restoreFromDetailsMap(details);
+ cleanup.restoreFromDetails(details);
cleanup.setContexts(_contexts);
cleanup.run();
if( __log.isDebugEnabled() ) __log.debug("Finished running runtime data cleanup from a SYSTEM CRON job:" + cleanup);
@@ -197,7 +198,7 @@ public class CronScheduler {
}
public TerminationListener schedule(final CronExpression cronExpression,
- final Runnable runnable, final Map<String, Object> runnableDetails,
+ final Runnable runnable, final JobDetails runnableDetails,
TerminationListener terminationListener) {
if( _shuttingDown ) {
__log.info("CRON Scheduler is being shut down. This new scheduling request is ignored.");
@@ -250,12 +251,12 @@ public class CronScheduler {
private volatile boolean terminated = false;
private Date nextScheduleTime;
private Runnable runnable;
- private Map<String, Object> runnableDetails;
+ private JobDetails runnableDetails;
private CronExpression cronExpression;
private TerminationListener terminationListener;
public CronScheduledJob(Date nextScheduleTime,
- Runnable runnable, Map<String, Object> runnableDetails,
+ Runnable runnable, JobDetails runnableDetails,
CronExpression cronExpression, TerminationListener terminationListener) {
this.nextScheduleTime = nextScheduleTime;
this.runnable = runnable;
@@ -277,7 +278,7 @@ public class CronScheduler {
nextScheduleTime.getTime() < System.currentTimeMillis() + TOLERABLE_SCHEDULE_DELAY) {
if( runnableDetails != null &&
runnable instanceof MapSerializableRunnable ) {
- ((MapSerializableRunnable)runnable).restoreFromDetailsMap(runnableDetails);
+ ((MapSerializableRunnable)runnable).restoreFromDetails(runnableDetails);
}
if (runnable instanceof ContextsAware) {
((ContextsAware) runnable).setContexts(_contexts);
@@ -306,4 +307,4 @@ public class CronScheduler {
return terminationListener;
}
}
-}
\ No newline at end of file
+}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java Wed Apr 21 16:39:23 2010
@@ -1,5 +1,6 @@
package org.apache.ode.bpel.engine.cron;
+import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -15,6 +16,7 @@ import org.apache.ode.bpel.engine.Contex
import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
public class RuntimeDataCleanupRunnable implements MapSerializableRunnable, ContextsAware {
@@ -33,14 +35,14 @@ public class RuntimeDataCleanupRunnable
}
@SuppressWarnings("unchecked")
- public void restoreFromDetailsMap(Map<String, Object> details) {
- _cleanupInfo = (CleanupInfo)details.get("cleanupInfo");
- _transactionSize = (Integer)details.get("transactionSize");
- _pid = (QName)details.get("pid");
- _pidsToExclude = (Set<QName>)details.get("pidsToExclude");
+ public void restoreFromDetails(JobDetails details) {
+ _cleanupInfo = (CleanupInfo)details.getDetailsExt().get("cleanupInfo");
+ _transactionSize = (Integer)details.getDetailsExt().get("transactionSize");
+ _pid = (QName) details.getDetailsExt().get("pid");
+ _pidsToExclude = (Set<QName>)details.getDetailsExt().get("pidsToExclude");
}
- public void storeToDetailsMap(Map<String, Object> details) {
+ public void storeToDetails(JobDetails details) {
// we don't serialize
}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java Wed Apr 21 16:39:23 2010
@@ -15,6 +15,7 @@ import org.apache.ode.bpel.dd.TCleanup;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
import org.apache.ode.bpel.iapi.ProcessConf.CronJob;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.store.ProcessCleanupConfImpl;
import org.apache.ode.utils.CronExpression;
import org.apache.xmlbeans.XmlOptions;
@@ -64,9 +65,10 @@ public class SystemSchedulesConfig {
cleanupInfo.setFilters(aCleanup.getFilterList());
ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(), aCleanup.getCategoryList());
- Map<String, Object> runnableDetails = new HashMap<String, Object>();
- runnableDetails.put("cleanupInfo", cleanupInfo);
- runnableDetails.put("transactionSize", 10);
+ JobDetails runnableDetails = new JobDetails();
+
+ runnableDetails.getDetailsExt().put("cleanupInfo", cleanupInfo);
+ runnableDetails.getDetailsExt().put("transactionSize", 10);
job.getRunnableDetailList().add(runnableDetails);
__log.info("SYSTEM CRON configuration added a runtime data cleanup: " + runnableDetails);
}
@@ -100,4 +102,4 @@ public class SystemSchedulesConfig {
return sd;
}
-}
\ No newline at end of file
+}
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java Wed Apr 21 16:39:23 2010
@@ -40,13 +40,14 @@ import org.apache.ode.bpel.engine.BpelEn
import org.apache.ode.bpel.engine.BpelProcess;
import org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl;
import org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl;
-import org.apache.ode.bpel.engine.WorkEvent;
import org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.RoutingInfo;
import org.apache.ode.bpel.evt.CorrelationMatchEvent;
import org.apache.ode.bpel.iapi.BpelEngine;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.pmapi.CommunicationType;
import org.apache.ode.bpel.pmapi.ExchangeType;
import org.apache.ode.bpel.pmapi.FaultType;
@@ -222,10 +223,10 @@ public class Replayer {
return null;
}
- public void handleWorkEvent(Map<String, Object> jobDetail, final Date when) {
- WorkEvent we = new WorkEvent(jobDetail);
- __log.debug("handleWorkEvent " + jobDetail + " " + when);
- if (we.getType() == WorkEvent.Type.INVOKE_INTERNAL) {
+ public void handleJobDetails(JobDetails jobDetail, final Date when) {
+ JobDetails we = jobDetail;
+ __log.debug("handleJobDetails " + jobDetail + " " + when);
+ if (we.getType() == JobType.INVOKE_INTERNAL) {
final BpelProcess p = engine._activeProcesses.get(we.getProcessId());
final ProcessDAO processDAO = p.getProcessDAO();
final MyRoleMessageExchangeImpl mex = (MyRoleMessageExchangeImpl) engine.getMessageExchange(we.getMexId());
@@ -270,9 +271,9 @@ public class Replayer {
return false;
}
});
- } else if (we.getType() == WorkEvent.Type.INVOKE_RESPONSE) {
+ } else if (we.getType() == JobType.INVOKE_RESPONSE) {
__log.debug("reply for live communication");
- ReplayerContext ctx = findReplayedInstance(we.getIID());
+ ReplayerContext ctx = findReplayedInstance(we.getInstanceId());
assert ctx != null;
ctx.runtimeContext.invocationResponse(we.getMexId(), we.getChannel());
ctx.runtimeContext.execute();
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java Wed Apr 21 16:39:23 2010
@@ -129,12 +129,12 @@ public class ReplayerScheduler implement
return null;
}
- public String schedulePersistedJob(final Map<String, Object> jobDetail, final Date when1) throws ContextException {
+ public String schedulePersistedJob(final JobDetails jobDetail, final Date when1) throws ContextException {
final Date when = when1 == null ? currentTaskElement.get().when : when1;
__log.debug("schedulePersistedJob " + jobDetail + " " + when, new Exception());
scheduleReplayerJob(new Callable<Void>() {
public Void call() throws Exception {
- replayer.handleWorkEvent(jobDetail, when);
+ replayer.handleJobDetails(jobDetail, when);
return null;
}
}, when, null);
@@ -145,13 +145,13 @@ public class ReplayerScheduler implement
public void setPolledRunnableProcesser(JobProcessor polledRunnableProcessor) {
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object> jobDetail, Date when) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date when) throws ContextException {
// TODO Auto-generated method stub
__log.debug("scheduleVolatileJob");
return null;
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object> jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws ContextException {
// TODO Auto-generated method stub
__log.debug("scheduleVolatileJob");
return null;
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java Wed Apr 21 16:39:23 2010
@@ -17,6 +17,7 @@ import org.apache.ode.bpel.engine.cron.R
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.daohib.bpel.BpelDAOConnectionImpl;
import org.apache.ode.utils.CronExpression;
import org.jmock.Mock;
@@ -71,14 +72,14 @@ public class CronSchedulerTest extends M
CronExpression cronExpr = new CronExpression("* * * * * ?");
RuntimeDataCleanupRunnable runnable = new RuntimeDataCleanupRunnable();
- Map<String, Object> details = new HashMap<String, Object>();
- details.put("pid", new QName("test"));
- details.put("transactionSize", 10);
+ JobDetails details = new JobDetails();
+ details.setProcessId(new QName("test"));
+ details.getDetailsExt().put("transactionSize", 10);
CleanupInfo cleanupInfo = new CleanupInfo();
cleanupInfo.getFilters().add("a=b");
cleanupInfo.getCategories().add(CLEANUP_CATEGORY.CORRELATIONS);
- details.put("cleanupInfo", cleanupInfo);
- runnable.restoreFromDetailsMap(details);
+ details.getDetailsExt().put("cleanupInfo", cleanupInfo);
+ runnable.restoreFromDetails(details);
runnable.setContexts(contexts);
NotifyingTerminationListener listener = new NotifyingTerminationListener();
Modified: ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java Wed Apr 21 16:39:23 2010
@@ -342,10 +342,10 @@ class MockBpelServer {
_scheduler.setJobProcessor(server);
}
- public String schedulePersistedJob(Map<String,Object>jobDetail,Date when) throws ContextException {
+ public String schedulePersistedJob(JobDetails jobDetail,Date when) throws ContextException {
String jobId = _scheduler.schedulePersistedJob(jobDetail, when);
// Invocation checks get scheduled much later, we don't want (or need) to wait for them
- if (!"INVOKE_CHECK".equals(jobDetail.get("type")))
+ if (jobDetail.getType() != JobType.INVOKE_CHECK)
_nextSchedule = when == null ? System.currentTimeMillis() : when.getTime();
return jobId;
}
@@ -355,11 +355,11 @@ class MockBpelServer {
return new GUID().toString();
}
- public String scheduleVolatileJob(boolean transacted, Map<String,Object> jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws ContextException {
return scheduleVolatileJob(transacted, jobDetail, null);
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object> jobDetail, Date when) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date when) throws ContextException {
String jobId = _scheduler.scheduleVolatileJob(transacted, jobDetail, when);
_nextSchedule = System.currentTimeMillis();
return jobId;
Modified: ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java Wed Apr 21 16:39:23 2010
@@ -19,14 +19,23 @@
package org.apache.ode.store;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.io.FileFilter;
import java.net.URI;
import java.text.ParseException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import javax.wsdl.Definition;
import javax.xml.namespace.QName;
@@ -46,18 +55,18 @@ import org.apache.ode.bpel.dd.TService;
import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.Endpoint;
+import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.bpel.iapi.EndpointReferenceContext;
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.ProcessState;
-import org.apache.ode.bpel.iapi.EndpointReferenceContext;
-import org.apache.ode.bpel.iapi.EndpointReference;
-import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.o.OFailureHandling;
import org.apache.ode.store.DeploymentUnitDir.CBPInfo;
+import org.apache.ode.utils.CollectionUtils;
import org.apache.ode.utils.CronExpression;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.HierarchicalProperties;
import org.apache.ode.utils.WatchDog;
-import org.apache.ode.utils.CollectionUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -538,10 +547,10 @@ public class ProcessConfImpl implements
cleanupInfo.setFilters(aCleanup.getFilterList());
ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(), aCleanup.getCategoryList());
- Map<String, Object> runnableDetails = new HashMap<String, Object>();
- runnableDetails.put("cleanupInfo", cleanupInfo);
- runnableDetails.put("pid", _pid);
- runnableDetails.put("transactionSize", 10);
+ JobDetails runnableDetails = new JobDetails();
+ runnableDetails.getDetailsExt().put("cleanupInfo", cleanupInfo);
+ runnableDetails.getDetailsExt().put("pid", _pid);
+ runnableDetails.getDetailsExt().put("transactionSize", 10);
job.getRunnableDetailList().add(runnableDetails);
}
jobs.add(job);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-derby.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-derby.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-derby.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-derby.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-firebird.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-firebird.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-firebird.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-firebird.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-hsql.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-hsql.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-hsql.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-hsql.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt binary(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-mysql.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-mysql.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-mysql.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-mysql.sql Wed Apr 21 16:39:23 2010
@@ -11,7 +11,18 @@ CREATE TABLE ODE_JOB (
nodeid char(64) NULL,
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096) NULL,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid),
INDEX IDX_ODE_JOB_TS(ts),
INDEX IDX_ODE_JOB_NODEID(nodeid)
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-oracle.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-oracle.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-oracle.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-oracle.sql Wed Apr 21 16:39:23 2010
@@ -4,13 +4,26 @@
--
--
+DROP TABLE ode_job;
+
CREATE TABLE ode_job (
- jobid CHAR(64) NOT NULL DEFAULT '',
- ts BIGINT NOT NULL DEFAULT 0,
- nodeid char(64),
- scheduled int NOT NULL DEFAULT 0,
- transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+ jobid VARCHAR(64) NOT NULL,
+ ts number(37) NOT NULL,
+ nodeid varchar(64),
+ scheduled int NOT NULL,
+ transacted int NOT NULL,
+
+ instanceId number(37),
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob,
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-postgres.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-postgres.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-postgres.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-postgres.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql Wed Apr 21 16:39:23 2010
@@ -10,7 +10,18 @@ CREATE TABLE ode_job (
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql Wed Apr 21 16:39:23 2010
@@ -11,7 +11,18 @@ CREATE TABLE ODE_JOB (
nodeid char(64) NULL,
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096) NULL,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid),
INDEX IDX_ODE_JOB_TS(ts),
INDEX IDX_ODE_JOB_NODEID(nodeid)
Modified: ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql (original)
+++ ode/branches/APACHE_ODE_1.X/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql Wed Apr 21 16:39:23 2010
@@ -1,4 +1,30 @@
-CREATE TABLE ODE_JOB (jobid varchar2(64 char) DEFAULT '' NOT NULL, ts number(19,0) DEFAULT 0 NOT NULL, nodeid varchar2(64 char) NULL, scheduled number(12,0) DEFAULT 0 NOT NULL, transacted number(12,0) DEFAULT 0 NOT NULL, details BLOB, PRIMARY KEY(jobid));
+-- Apache ODE - SimpleScheduler Database Schema
+--
+-- Apache Derby scripts by Maciej Szefler.
+--
+--
+
+DROP TABLE ode_job;
+
+CREATE TABLE ode_job (
+ jobid VARCHAR(64) NOT NULL,
+ ts number(37) NOT NULL,
+ nodeid varchar(64),
+ scheduled int NOT NULL,
+ transacted int NOT NULL,
+
+ instanceId number(37),
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob,
+
+ PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
CREATE INDEX IDX_ODE_JOB_NODEID ON ode_job(nodeid);
Modified: ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java?rev=936389&r1=936388&r2=936389&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java (original)
+++ ode/branches/APACHE_ODE_1.X/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java Wed Apr 21 16:39:23 2010
@@ -38,7 +38,7 @@ public interface DatabaseDelegate {
boolean insertJob(Job job, String nodeId, boolean loaded) throws DatabaseException ;
/**
- * Update the job in the database (only updates timestamp and details)
+ * Update the job in the database (only updates timestamp and retryCount)
*
* @param job the job
* @throws DatabaseException in case of error