Я пытаюсь реализовать пакет Java с помощью JBOSS EAP 7.1.Когда я пытаюсь получить идентификатор выполнения внутри пакета, он дает неправильный идентификатор / один и тот же идентификатор выполнения для нескольких заданий /.Мой XML-файл выглядит следующим образом.Я звоню своему оператору с циклом.Затем мой пакет добавляет некоторые данные в таблицу.Когда я проверяю свою таблицу, она показывает неверный идентификатор выполнения.Таблица Job_execution и пошагового выполнения содержит правильные идентификаторы данных для каждого задания.Пожалуйста, помогите мне встать на правильный путь.Заранее спасибо.Мой XML-файл выглядит следующим образом.
<?xml version="1.0" encoding="UTF-8"?>
<job id="simpleBatchLet" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/jobXML_1_0.xsd"
version="1.0">
<step id="firstStep" >
<batchlet ref="batchletOne"/>
</step>
</job>
вот мой оператор работы
public void startSeqBatch() {
try {
Long bId = com.getSeq("BAT_SEQ_TEST");
Properties jobParameters = new Properties();
jobParameters.setProperty("bId", bId.toString());
JobOperator jobOperator = BatchRuntime.getJobOperator();
Long executionId = jobOperator.start("simpleBatchLet", jobParameters);
JobExecution jobExecution = jobOperator.getJobExecution(executionId);
} catch (JobStartException ex) {
FileLogger.error(getClass(), Func.prepareException4Log(ex));
} catch (NoSuchJobException ex) {
FileLogger.error(getClass(), Func.prepareException4Log(ex));
} catch (JobSecurityException ex) {
FileLogger.error(getClass(), Func.prepareException4Log(ex));
} catch (Exception ex) {
FileLogger.error(getClass(), Func.prepareException4Log(ex));
}
}
вот мой пакет
@Named("batchletOne")
@Stateless
public class batchletOne extends AbstractBatchlet {
@PersistenceContext
EntityManager em;
CommonRemote com;
@Inject
private JobContext jobContext;
@Override
public String process() throws Exception {
try {
executeTask(1L);
} catch (Exception ex) {
FileLogger.err("1_error_new_batch_process", ex.getMessage());
return BatchStatus.FAILED.toString();
}
return BatchStatus.COMPLETED.toString();
}
public void executeTask(Long stepId) {
try {
JobOperator operator = BatchRuntime.getJobOperator();
Long execId = jobContext.getExecutionId();
Long bId = Func.toLong(operator.getParameters(execId).get("bId"));
BatSeqTest c = new BatSeqTest();
c.setId(com.getSeq("BAT_SEQ_TEST_2"));
c.setbid(bId);
c.setStepid(stepId);
c.setExecid(execId);
c.setExecuteddate(new Date());
c.setStatus(Func.toString(Thread.currentThread().getId()));
em.persist(c);
} catch (Exception ex) {
FileLogger.err("1_error_new_batch_process", ex.getMessage());
}
}
}