assertEquals(javax.batch.runtime.BatchStatus.STARTED, jsrStepExecution.getBatchStatus()); assertEquals(new Date(0), jsrStepExecution.getStartTime()); assertEquals(new Date(10000000), jsrStepExecution.getEndTime()); assertEquals("customExitStatus", jsrStepExecution.getExitStatus()); assertEquals("persisted data", jsrStepExecution.getPersistentUserData());
@Override public void execute() throws MojoExecutionException, MojoFailureException { final List<StepExecution> executions = getOrCreateOperator().getStepExecutions(executionId); getLog().info("Step executions for job execution #" + executionId + ":"); for (final StepExecution exec : executions) { getLog().info(" - id = " + exec.getStepExecutionId()); getLog().info(" + step = " + exec.getStepName()); getLog().info(" + batch status = " + exec.getBatchStatus()); getLog().info(" + exit status = " + exec.getExitStatus()); getLog().info(" + start time = " + exec.getStartTime()); getLog().info(" + end time = " + exec.getEndTime()); getLog().info(" + metrics"); if (exec.getMetrics() != null) { for (final Metric m : exec.getMetrics()) { getLog().info(" > " + m.getType().name().replace("COUNT", "").replace("_", " ").toLowerCase(Locale.ENGLISH) + " = " + m.getValue()); } } } } }
/** * After the job is done, generate a report */ @Override public void afterJob() throws Exception { //TODO add notifications to job failure? if (jobContext.getExitStatus() != null && jobContext.getExitStatus().equals("FAILED")) { getJobLogger().log(Level.SEVERE, "Job Failed. See Log for more information."); closeJobLoggerHandlers(); return; } // run reporting and notifications doReport(); // report any unused checksums HashMap checksumHashMap = (HashMap<String, String>) jobContext.getTransientUserData(); for (Object key : checksumHashMap.keySet()) { getJobLogger().log(Level.SEVERE, "File listed in checksum manifest not found: " + key); } // job step info JobOperator jobOperator = BatchRuntime.getJobOperator(); StepExecution step = jobOperator.getStepExecutions(jobContext.getInstanceId()).get(0); getJobLogger().log(Level.INFO, "Job start = " + step.getStartTime()); getJobLogger().log(Level.INFO, "Job end = " + step.getEndTime()); getJobLogger().log(Level.INFO, "Job exit status = " + step.getExitStatus()); closeJobLoggerHandlers(); }
try { preparedStatement = connection.prepareStatement(update); preparedStatement.setTimestamp(1, createTimestamp(stepExecution.getEndTime())); preparedStatement.setString(2, stepExecution.getBatchStatus().name()); preparedStatement.setString(3, stepExecution.getExitStatus());
public static StepExecutionEntity create(final StepExecution stepExecution) { final StepExecutionEntity result = new StepExecutionEntity(); result.id = stepExecution.getStepExecutionId(); result.name = stepExecution.getStepName(); result.status = stepExecution.getBatchStatus(); result.exitStatus = stepExecution.getExitStatus(); result.endTime = stepExecution.getEndTime(); result.startTime = stepExecution.getStartTime(); // metrics result.metrics = new HashMap<>(); final Metric[] metricArr = stepExecution.getMetrics(); for (Metric m : metricArr) { result.metrics.put(m.getType().name().toLowerCase(), m.getValue()); } if (stepExecution.getPersistentUserData() != null) { result.setPersistentUserData(stepExecution.getPersistentUserData().toString()); } return result; }
if (stepExecution.getEndTime() != null) { data = stepExecution.getEndTime().getTime(); cfData[index] = stepExecution.getEndTime().toString(); } else { data = "";
Reporter.log("AJM: step end time: " + step.getEndTime() + "<p>"); assertWithMessage("Start time of step occurs approximately before end time of step", roughlyOrdered(step.getStartTime(), step.getEndTime())); } catch (Exception e) { handleException(METHOD, e);
private static Object[] asArray(final StepExecution n) { return new Object[] { n.getStepExecutionId(), n.getStepName(), n.getBatchStatus().name(), n.getExitStatus(), n.getStartTime() != null ? n.getStartTime().toString() : "", n.getEndTime() != null ? n.getEndTime().toString() : "", metric(n.getMetrics(), Metric.MetricType.READ_COUNT), metric(n.getMetrics(), Metric.MetricType.WRITE_COUNT), metric(n.getMetrics(), Metric.MetricType.COMMIT_COUNT), metric(n.getMetrics(), Metric.MetricType.ROLLBACK_COUNT), metric(n.getMetrics(), Metric.MetricType.READ_SKIP_COUNT), metric(n.getMetrics(), Metric.MetricType.PROCESS_SKIP_COUNT), metric(n.getMetrics(), Metric.MetricType.WRITE_SKIP_COUNT), metric(n.getMetrics(), Metric.MetricType.FILTER_COUNT) }; }
private void showStepState(StepExecution step) { Reporter.log("---------------------------<p>"); Reporter.log("getJobExecutionId(): " + step.getStepExecutionId() + " - "); Metric[] metrics = step.getMetrics(); for (int i = 0; i < metrics.length; i++) { Reporter.log(metrics[i].getType() + ": " + metrics[i].getValue() + " - "); } Reporter.log("getStartTime(): " + step.getStartTime() + " - "); Reporter.log("getEndTime(): " + step.getEndTime() + " - "); Reporter.log("getBatchStatus(): " + step.getBatchStatus() + " - "); Reporter.log("getExitStatus(): " + step.getExitStatus()); Reporter.log("---------------------------<p>"); }
private void showStepState(StepExecution step) { Reporter.log("---------------------------<p>"); Reporter.log("getStepName(): " + step.getStepName() + " - "); Reporter.log("getStepExecutionId(): " + step.getStepExecutionId() + " - "); Metric[] metrics = step.getMetrics(); for (int i = 0; i < metrics.length; i++) { Reporter.log(metrics[i].getType() + ": " + metrics[i].getValue() + " - "); } Reporter.log("getStartTime(): " + step.getStartTime() + " - "); Reporter.log("getEndTime(): " + step.getEndTime() + " - "); Reporter.log("getBatchStatus(): " + step.getBatchStatus() + " - "); Reporter.log("getExitStatus(): " + step.getExitStatus()+"<p>"); Reporter.log("---------------------------<p>"); }
private void showStepState(StepExecution step) { Reporter.log("---------------------------"); Reporter.log("getStepName(): " + step.getStepName() + " - "); Reporter.log("getJobExecutionId(): " + step.getStepExecutionId() + " - "); //System.out.print("getStepExecutionId(): " + step.getStepExecutionId() + " - "); Metric[] metrics = step.getMetrics(); for (int i = 0; i < metrics.length; i++) { Reporter.log(metrics[i].getType() + ": " + metrics[i].getValue() + " - "); } Reporter.log("getStartTime(): " + step.getStartTime() + " - "); Reporter.log("getEndTime(): " + step.getEndTime() + " - "); //System.out.print("getLastUpdateTime(): " + step.getLastUpdateTime() + " - "); Reporter.log("getBatchStatus(): " + step.getBatchStatus() + " - "); Reporter.log("getExitStatus(): " + step.getExitStatus()); Reporter.log("---------------------------"); } }
@Override public void updateStepExecution(final StepExecution stepExecution) { final StepExecutionImpl stepExecutionImpl = (StepExecutionImpl) stepExecution; try { final DBObject update = new BasicDBObject(TableColumns.ENDTIME, stepExecution.getEndTime()); update.put(TableColumns.BATCHSTATUS, stepExecution.getBatchStatus().name()); update.put(TableColumns.EXITSTATUS, stepExecution.getExitStatus()); update.put(TableColumns.EXECUTIONEXCEPTION, TableColumns.formatException(stepExecutionImpl.getException())); update.put(TableColumns.PERSISTENTUSERDATA, stepExecutionImpl.getPersistentUserDataSerialized()); update.put(TableColumns.READCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.READ_COUNT)); update.put(TableColumns.WRITECOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.WRITE_COUNT)); update.put(TableColumns.COMMITCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.COMMIT_COUNT)); update.put(TableColumns.ROLLBACKCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.ROLLBACK_COUNT)); update.put(TableColumns.READSKIPCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.READ_SKIP_COUNT)); update.put(TableColumns.PROCESSSKIPCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.PROCESS_SKIP_COUNT)); update.put(TableColumns.FILTERCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.FILTER_COUNT)); update.put(TableColumns.WRITESKIPCOUNT, stepExecutionImpl.getStepMetrics().get(Metric.MetricType.WRITE_SKIP_COUNT)); update.put(TableColumns.READERCHECKPOINTINFO, stepExecutionImpl.getReaderCheckpointInfoSerialized()); update.put(TableColumns.WRITERCHECKPOINTINFO, stepExecutionImpl.getWriterCheckpointInfoSerialized()); db.getCollection(TableColumns.STEP_EXECUTION).update( new BasicDBObject(TableColumns.STEPEXECUTIONID, stepExecution.getStepExecutionId()), new BasicDBObject("$set", update)); } catch (final Exception e) { throw BatchMessages.MESSAGES.failToRunQuery(e, "updateStepExecution"); } }