|
|
|
|
@@ -19,7 +19,6 @@ import org.springframework.batch.core.domain.StepExecution;
|
|
|
|
|
import org.springframework.batch.io.exception.BatchCriticalException;
|
|
|
|
|
import org.springframework.batch.item.ExecutionContext;
|
|
|
|
|
import org.springframework.batch.repeat.ExitStatus;
|
|
|
|
|
import org.springframework.batch.support.PropertiesConverter;
|
|
|
|
|
import org.springframework.beans.factory.InitializingBean;
|
|
|
|
|
import org.springframework.dao.DataAccessException;
|
|
|
|
|
import org.springframework.dao.OptimisticLockingFailureException;
|
|
|
|
|
@@ -63,18 +62,18 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
+ " KEY_NAME, STRING_VAL, DOUBLE_VAL, LONG_VAL, OBJECT_VAL) values(?,?,?,?,?,?,?)";
|
|
|
|
|
|
|
|
|
|
private static final String SAVE_STEP_EXECUTION = "INSERT into %PREFIX%STEP_EXECUTION(STEP_EXECUTION_ID, VERSION, STEP_NAME, JOB_EXECUTION_ID, START_TIME, "
|
|
|
|
|
+ "END_TIME, STATUS, COMMIT_COUNT, TASK_COUNT, TASK_STATISTICS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE) "
|
|
|
|
|
+ "values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
|
|
|
+ "END_TIME, STATUS, COMMIT_COUNT, TASK_COUNT, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE) "
|
|
|
|
|
+ "values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
|
|
|
|
|
|
|
|
|
private static final String UPDATE_STEP_EXECUTION_CONTEXT = "UPDATE %PREFIX%STEP_EXECUTION_CONTEXT set "
|
|
|
|
|
+ "TYPE_CD = ?, STRING_VAL = ?, DOUBLE_VAL = ?, LONG_VAL = ?, OBJECT_VAL = ? where STEP_EXECUTION_ID = ? and KEY_NAME = ?";
|
|
|
|
|
|
|
|
|
|
private static final String UPDATE_STEP_EXECUTION = "UPDATE %PREFIX%STEP_EXECUTION set START_TIME = ?, END_TIME = ?, "
|
|
|
|
|
+ "STATUS = ?, COMMIT_COUNT = ?, TASK_COUNT = ?, TASK_STATISTICS = ?, CONTINUABLE = ? , EXIT_CODE = ?, "
|
|
|
|
|
+ "STATUS = ?, COMMIT_COUNT = ?, TASK_COUNT = ?, CONTINUABLE = ? , EXIT_CODE = ?, "
|
|
|
|
|
+ "EXIT_MESSAGE = ?, VERSION = ? where STEP_EXECUTION_ID = ? and VERSION = ?";
|
|
|
|
|
|
|
|
|
|
private static final String GET_STEP_EXECUTION = "SELECT STEP_EXECUTION_ID, STEP_NAME, START_TIME, END_TIME, STATUS, COMMIT_COUNT,"
|
|
|
|
|
+ " TASK_COUNT, TASK_STATISTICS, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%STEP_EXECUTION where STEP_NAME = ? and JOB_EXECUTION_ID = ?";
|
|
|
|
|
+ " TASK_COUNT, CONTINUABLE, EXIT_CODE, EXIT_MESSAGE from %PREFIX%STEP_EXECUTION where STEP_NAME = ? and JOB_EXECUTION_ID = ?";
|
|
|
|
|
|
|
|
|
|
private static final int EXIT_MESSAGE_LENGTH = 250;
|
|
|
|
|
|
|
|
|
|
@@ -179,14 +178,13 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
stepExecution.getStepName(), stepExecution.getJobExecutionId(), stepExecution.getStartTime(),
|
|
|
|
|
stepExecution.getEndTime(), stepExecution.getStatus().toString(), stepExecution.getCommitCount(),
|
|
|
|
|
stepExecution.getTaskCount(),
|
|
|
|
|
PropertiesConverter.propertiesToString(stepExecution.getExecutionContext().getProperties()),
|
|
|
|
|
stepExecution.getExitStatus().isContinuable() ? "Y" : "N", stepExecution.getExitStatus().getExitCode(),
|
|
|
|
|
stepExecution.getExitStatus().getExitDescription() };
|
|
|
|
|
getJdbcTemplate().update(
|
|
|
|
|
getQuery(SAVE_STEP_EXECUTION),
|
|
|
|
|
parameters,
|
|
|
|
|
new int[] { Types.INTEGER, Types.INTEGER, Types.VARCHAR, Types.INTEGER, Types.TIMESTAMP,
|
|
|
|
|
Types.TIMESTAMP, Types.VARCHAR, Types.INTEGER, Types.INTEGER, Types.VARCHAR, Types.CHAR,
|
|
|
|
|
Types.TIMESTAMP, Types.VARCHAR, Types.INTEGER, Types.INTEGER, Types.CHAR,
|
|
|
|
|
Types.VARCHAR, Types.VARCHAR });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -314,7 +312,6 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
Integer version = new Integer(stepExecution.getVersion().intValue() + 1);
|
|
|
|
|
Object[] parameters = new Object[] { stepExecution.getStartTime(), stepExecution.getEndTime(),
|
|
|
|
|
stepExecution.getStatus().toString(), stepExecution.getCommitCount(), stepExecution.getTaskCount(),
|
|
|
|
|
PropertiesConverter.propertiesToString(stepExecution.getExecutionContext().getProperties()),
|
|
|
|
|
stepExecution.getExitStatus().isContinuable() ? "Y" : "N",
|
|
|
|
|
stepExecution.getExitStatus().getExitCode(), exitDescription, version, stepExecution.getId(),
|
|
|
|
|
stepExecution.getVersion() };
|
|
|
|
|
@@ -322,7 +319,7 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
getQuery(UPDATE_STEP_EXECUTION),
|
|
|
|
|
parameters,
|
|
|
|
|
new int[] { Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR, Types.INTEGER, Types.INTEGER,
|
|
|
|
|
Types.VARCHAR, Types.CHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.INTEGER,
|
|
|
|
|
Types.CHAR, Types.VARCHAR, Types.VARCHAR, Types.INTEGER, Types.INTEGER,
|
|
|
|
|
Types.INTEGER });
|
|
|
|
|
|
|
|
|
|
// Avoid concurrent modifications...
|
|
|
|
|
@@ -356,7 +353,7 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
stepExecution.setCommitCount(rs.getInt(6));
|
|
|
|
|
stepExecution.setTaskCount(rs.getInt(7));
|
|
|
|
|
stepExecution
|
|
|
|
|
.setExitStatus(new ExitStatus("Y".equals(rs.getString(9)), rs.getString(10), rs.getString(11)));
|
|
|
|
|
.setExitStatus(new ExitStatus("Y".equals(rs.getString(8)), rs.getString(9), rs.getString(10)));
|
|
|
|
|
stepExecution.setExecutionContext(findExecutionContext(stepExecution));
|
|
|
|
|
return stepExecution;
|
|
|
|
|
}
|
|
|
|
|
@@ -408,7 +405,6 @@ public class JdbcStepExecutionDao extends AbstractJdbcBatchMetadataDao implement
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public StepExecution getStepExecution(JobExecution jobExecution, Step step) {
|
|
|
|
|
List executions = getJdbcTemplate().query(getQuery(GET_STEP_EXECUTION),
|
|
|
|
|
new Object[] { step.getName(), jobExecution.getId() }, new StepExecutionRowMapper(jobExecution, step));
|
|
|
|
|
|