public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements JobExecutionDao, org.springframework.beans.factory.InitializingBean
JobExecutionDao
. Uses sequences (via Spring's
DataFieldMaxValueIncrementer
abstraction) to create all primary keys
before inserting a new row. Objects are checked to ensure all mandatory
fields to be stored are not null. If any are found to be null, an
IllegalArgumentException will be thrown. This could be left to JdbcTemplate,
however, the exception will be fairly vague, and fails to highlight which
field caused the exception.DEFAULT_EXIT_MESSAGE_LENGTH, DEFAULT_TABLE_PREFIX
Constructor and Description |
---|
JdbcJobExecutionDao() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
java.util.List<JobExecution> |
findJobExecutions(JobInstance job)
Return all
JobExecution s for given JobInstance , sorted
backwards by creation order (so the first element is the most recent). |
java.util.Set<JobExecution> |
findRunningJobExecutions(java.lang.String jobName) |
JobExecution |
getJobExecution(java.lang.Long executionId) |
protected JobParameters |
getJobParameters(java.lang.Long executionId) |
JobExecution |
getLastJobExecution(JobInstance jobInstance)
Find the last
JobExecution to have been created for a given
JobInstance . |
void |
saveJobExecution(JobExecution jobExecution)
SQL implementation using Sequences via the Spring incrementer
abstraction.
|
void |
setExitMessageLength(int exitMessageLength)
Public setter for the exit message length in database.
|
void |
setJobExecutionIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer jobExecutionIncrementer)
Setter for
DataFieldMaxValueIncrementer to be used when
generating primary keys for JobExecution instances. |
void |
synchronizeStatus(JobExecution jobExecution)
Because it may be possible that the status of a JobExecution is updated
while running, the following method will synchronize only the status and
version fields.
|
void |
updateJobExecution(JobExecution jobExecution)
Update given JobExecution using a SQL UPDATE statement.
|
getClobTypeToUse, getJdbcTemplate, getQuery, getTablePrefix, setClobTypeToUse, setJdbcTemplate, setTablePrefix
public void setExitMessageLength(int exitMessageLength)
exitMessageLength
- the exitMessageLength to setpublic void setJobExecutionIncrementer(org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer jobExecutionIncrementer)
DataFieldMaxValueIncrementer
to be used when
generating primary keys for JobExecution
instances.jobExecutionIncrementer
- the DataFieldMaxValueIncrementer
public void afterPropertiesSet() throws java.lang.Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class AbstractJdbcBatchMetadataDao
java.lang.Exception
public java.util.List<JobExecution> findJobExecutions(JobInstance job)
JobExecutionDao
JobExecution
s for given JobInstance
, sorted
backwards by creation order (so the first element is the most recent).findJobExecutions
in interface JobExecutionDao
job
- parent JobInstance
of the JobExecution
s to find.List
containing JobExecutions for the jobInstance.public void saveJobExecution(JobExecution jobExecution)
saveJobExecution
in interface JobExecutionDao
jobExecution
- JobExecution
instance to be saved.java.lang.IllegalArgumentException
- if jobExecution is null, as well as any
of it's fields to be persisted.JobExecutionDao.saveJobExecution(JobExecution)
public void updateJobExecution(JobExecution jobExecution)
updateJobExecution
in interface JobExecutionDao
jobExecution
- JobExecution
instance to be updated.JobExecutionDao.updateJobExecution(JobExecution)
@Nullable public JobExecution getLastJobExecution(JobInstance jobInstance)
JobExecutionDao
JobExecution
to have been created for a given
JobInstance
.getLastJobExecution
in interface JobExecutionDao
jobInstance
- the JobInstance
JobExecution
to execute for this instance or
null
if no job execution is found for the given job instance.@Nullable public JobExecution getJobExecution(java.lang.Long executionId)
getJobExecution
in interface JobExecutionDao
executionId
- Long
containing the id of the execution.JobExecution
for given identifier.public java.util.Set<JobExecution> findRunningJobExecutions(java.lang.String jobName)
findRunningJobExecutions
in interface JobExecutionDao
jobName
- String
containing the name of the job.JobExecution
that are still running (or indeterminate
state), i.e. having null end date, for the specified job name.public void synchronizeStatus(JobExecution jobExecution)
JobExecutionDao
synchronizeStatus
in interface JobExecutionDao
jobExecution
- to be updated.protected JobParameters getJobParameters(java.lang.Long executionId)
executionId
- Long
containing the id for the execution.