profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/lucaslward/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

lucaslward/grails-envers-plugin 14

Grails plugin for Hibernate envers module

lucaslward/blog 3

A place to push all of the code snippets I post to my blog

lucaslward/admin 1

My various configuration files for different platforms

lucaslward/elasticsearch-grails-plugin 1

ElasticSearch grails plugin

lucaslward/angular.js 0

HTML enhanced for web apps

lucaslward/bootstrap-data-table 0

ajax powered table

lucaslward/elasticsearch 0

Open Source, Distributed, RESTful Search Engine

lucaslward/emacs 0

My .emacs.d directory

issue openedspring-projects/spring-batch

Items are retried when using NeverRetryPolicy

Bug description A simple faultTolerant step configuration using NeverRetryPolicy and AlwaysSkipItemSkipPolicy always retry a item once when any exception occurs. Unless I am missing something, I would expect to do not see any retries at all.

Environment Spring Batch 4.3.3 jdk 15.0.2 Postgres 12.4

Steps to reproduce

  • Configure a faultTolerent step with policies: NeverRetryPolicy and AlwaysSkipItemSkipPolicy
  • Configure the writer to throw a RuntimeException
  • Launch a job with that step
  • Check number of times that the writer is called

Expected behavior With 5 items to be processed, I would expect that the service would be called only 5 times.

Minimal Complete Reproducible example

Job Configuration:

@Configuration
@EnableBatchProcessing
@RequiredArgsConstructor
@Slf4j
public class ChunkSizeBatchConfig {

  private final JobBuilderFactory jobBuilderFactory;
  private final StepBuilderFactory stepBuilderFactory;
  private final MockedService mockedService;

  @Bean
  Job chunkSizeJob() {

    var itemReader = new ListItemReader<>(List.of(1, 2, 3, 4, 5));

    var itemWriter = new ItemWriter<Integer>() {
      @Override
      public void write(@Nonnull List<? extends Integer> items) {
        logger.info("chunkSizeJob processing item \"{}\"", items);
        items.forEach(mockedService::doSomething);
      }
    };

    var step = stepBuilderFactory.get("testStep")
        .<Integer, Integer>chunk(1)
        .reader(itemReader)
        .writer(itemWriter)
        .faultTolerant()
        .skipPolicy(new AlwaysSkipItemSkipPolicy())
        .retryPolicy(new NeverRetryPolicy())
        .build();

    return jobBuilderFactory.get("testJob")
        .incrementer(new RunIdIncrementer())
        .flow(step)
        .end()
        .build();
  }

  interface MockedService {
    void doSomething(int obj);
  }

}

Test class

@SpringBatchTest
@DataJpaTest(excludeAutoConfiguration = {TestDatabaseAutoConfiguration.class})
@EnableAutoConfiguration
@EntityScan("com.possiblefinance.ffp.adapter.out.persistence")
// overrides @SpringBatchTest @TestExecutionListeners
@TestExecutionListeners(
    listeners = {DBRiderTestExecutionListener.class, StepScopeTestExecutionListener.class, JobScopeTestExecutionListener.class},
    mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS
)
// Spring Batch needs to open it's own transaction for the test
@Transactional(propagation = Propagation.SUPPORTS)
@ContextConfiguration(classes = {ChunkSizeBatchConfig.class})
class ChunkSizeBatchConfigIT {

  @Autowired
  protected JobLauncherTestUtils jobLauncherTestUtils;

  @MockBean
  private ChunkSizeBatchConfig.MockedService mockedService;

  @Test
  @SneakyThrows
  void testJobCheckCompletedEvenWithException() {
    var jobParameters = new JobParametersBuilder()
        .addLong("testExecutionKey", System.currentTimeMillis())
        .addString(BatchConstants.JOB_PARAMETER_PARTITIONING_KEYS, "1,2,3")
        .toJobParameters();

    Mockito.doThrow(new RuntimeException("Any error"))
        .when(mockedService).doSomething(anyInt());

    var jobExecution1 = jobLauncherTestUtils.launchJob(jobParameters);
    assertThat(jobExecution1.getExitStatus().getExitCode()).isEqualTo("COMPLETED");

    verify(mockedService, times(5)).doSomething(anyInt());
  }

}

Test Output:

2021-06-18 16:13:04.462  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[1]"
2021-06-18 16:13:04.469  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[1]"
2021-06-18 16:13:04.477  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[2]"
2021-06-18 16:13:04.478  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[2]"
2021-06-18 16:13:04.485  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[3]"
2021-06-18 16:13:04.486  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[3]"
2021-06-18 16:13:04.493  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[4]"
2021-06-18 16:13:04.494  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[4]"
2021-06-18 16:13:04.502  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[5]"
2021-06-18 16:13:04.503  INFO 11727 --- [           main] c.p.f.a.j.configs.ChunkSizeBatchConfig   : chunkSizeJob processing item "[5]"
2021-06-18 16:13:04.522  INFO 11727 --- [           main] o.s.batch.core.step.AbstractStep         : Step: [testStep] executed in 79ms
2021-06-18 16:13:04.539  INFO 11727 --- [           main] o.s.b.c.l.support.SimpleJobLauncher      : Job: [FlowJob: [name=testJob]] completed with the following parameters: [{testExecutionKey=1624032784328, partitioningKeys=1,2,3}] and the following status: [COMPLETED] in 115ms

org.mockito.exceptions.verification.TooManyActualInvocations: 
com.possiblefinance.ffp.application.jobs.configs.ChunkSizeBatchConfig$MockedService#0 bean.doSomething(
    <any integer>
);
Wanted 5 times:
-> at com.possiblefinance.ffp.application.jobs.configs.ChunkSizeBatchConfigIT.testJobCheckCompletedEvenWithException(ChunkSizeBatchConfigIT.java:52)
But was 10 times:
-> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-> at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4933)
-> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-> at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4933)
-> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-> at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4933)
-> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-> at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4933)
-> at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
-> at java.base/java.util.Collections$SingletonList.forEach(Collections.java:4933)

created time in a day

IssuesEvent

issue commentspring-projects/spring-batch-extensions

Release spring-batch-bigquery version 0.1.0

Thank you for the updates. I will close this issue when the module is released to Maven Central.

benas

comment created time in 2 days

pull request commentspring-projects/spring-batch

refactor: simplify boolean expression

signed, we good.

gregorriegler

comment created time in 2 days

pull request commentspring-projects/spring-batch

refactor: simplify boolean expression

@gregorriegler Thank you for signing the Contributor License Agreement!

gregorriegler

comment created time in 2 days

pull request commentspring-projects/spring-batch

refactor: simplify boolean expression

@gregorriegler Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

gregorriegler

comment created time in 3 days

PR opened spring-projects/spring-batch

refactor: simplify boolean expression

Co-authored-by: Moderne team@moderne.io

Thank you for taking time to contribute this pull request! You might have already read the contributor guide, but as a reminder, please make sure to:

  • Sign the contributor license agreement
  • Rebase your changes on the latest master branch and squash your commits
  • Add/Update unit tests as needed
  • Run a build and make sure all tests pass prior to submission

For more details, please check the contributor guide. Thank you upfront!

+2 -2

0 comment

2 changed files

pr created time in 3 days

issue closedspring-projects/spring-batch

Possibly incorrect code sample in manual for Java Config when configuring a job

Section 4.2 of the manual for version 4.2.2 of Spring Batch provides an example of creating a custom BatchConfigurer by extending DefaultBatchConfigurer.

The example extends DefaultBatchConfigurer by creating an anonymous instance and overriding the methods you want to modify.

The issue is that it does so by calling a default constructor on DefaultBatchConfigurer that is protected.

The only public constructor the class has expects a Datasource and you may not want to provide a datasource if you want to define a memory based repository.

In summary, the example code cannot compile, at least for me.

PS. I am sorry I missed the link where you can change the type of the issue.

closed time in 4 days

alwyn

issue openedspring-projects/spring-batch

Revisit the configuration of infrastructure beans with @EnableBatchProcessing

Compared to the XML configuration style where infrastructure beans (JobRepository, JobLauncher, etc) should be defined manually, @EnableBatchProcessing does a good job in configuring those beans automatically and making them available for autowiring in users configuration classes. However, several issues have been reported regarding the default behaviour of this annotation as well as the customization of its behaviour. Here is a non exhaustive list:

1. Customization of infrastructure beans is not straightforward

For example, as reported in #3765, in order to create a custom serializer, one needs to provide a custom JobRepository. Now in order to provide a custom JobRepository, one needs to provide a custom BatchConfigurer (either by implementing the interface or by extending the default one and override a method), something like:

@Configuration
@EnableBatchProcessing
public class MyJobConfigWithCustomSerializer {

    @Bean
    public BatchConfigurer batchConfigurer() {
        return new DefaultBatchConfigurer() {
            @Override
            public JobRepository getJobRepository() {
                ExecutionContextSerializer serializer = new Jackson2ExecutionContextStringSerializer();
                // customize serializer
                JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
                factory.setSerializer(serializer);
                // set other properties on the factory bean
                try {
                    factory.afterPropertiesSet();
                    return factory.getObject();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }

}

Moreover, in this case, the custom serializer should also be set on the JobExplorer in order to correctly deserialize the execution context while exploring meta-data that was persisted with the JobRepository. So one needs to do the following as well:

@Configuration
@EnableBatchProcessing
public class MyJobConfigWithCustomSerializer {

    @Bean
    public BatchConfigurer batchConfigurer() {
        return new DefaultBatchConfigurer() {
            @Override
            public JobRepository getJobRepository() {
                JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
                factory.setSerializer(createCustomSerializer());
                // set other properties on the factory bean
                try {
                    factory.afterPropertiesSet();
                    return factory.getObject();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }

            @Override
            public JobExplorer getJobExplorer() {
                JobExplorerFactoryBean factoryBean = new JobExplorerFactoryBean();
                factoryBean.setSerializer(createCustomSerializer());
                // set other properties on the factory bean
                try {
                    factoryBean.afterPropertiesSet();
                    return factoryBean.getObject();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }

            private ExecutionContextSerializer createCustomSerializer() {
                Jackson2ExecutionContextStringSerializer serializer = new Jackson2ExecutionContextStringSerializer();
                // customize serializer
                return serializer;
            }
        };
    }
    
}

The process is the same for other properties of the job repository/explorer like the tables prefix, LobHandler, etc.

2. Unconditional exposure of some beans

While batch specific beans like JobRepository, JobLauncher, etc could be exposed in the application context "safely", some beans like the transaction manager could be used in other parts of the application and exposing it unconditionally could be problematic (see #816). This is especially true when using Spring Boot, and this requires bean overriding which is not always wanted by users.

3. Extending infrastructure beans is not straightforward / possible

Since infrastructure beans are systematically defined and exposed by @EnableBatchProcessing and not looked up from the application context first, it is not easy/possible to extend those beans to add custom behaviour (like adding tracing to the JobRepository for instance, as reported in #3899) and use the extensions in place of default beans.

4. BatchConfigurer is eventually an unnecessary level of indirection

Most people tend to declare infrastructure beans in the application context and expect them to be picked up by Spring Batch (this is not a wrong expectation). Here are some examples:

  • https://stackoverflow.com/questions/64205418/spring-batch-isolation-level/64206508#64206508
  • https://stackoverflow.com/questions/56567514/hibernateitemwriter-in-spring-batch-program-tries-to-run-without-beginning-trans/56575830#56575830

If @EnableBatchProcessing is changed to look for beans in the application context first, requiring users to provide a custom BatchConfigurer would not become mandatory anymore. For example, the following way of configuring a custom JobRepository:

@Configuration
@EnableBatchProcessing
public class MyJobConfigWithCustomJobRepository {

    @Bean
    public BatchConfigurer batchConfigurer() {
        return new DefaultBatchConfigurer() {
            @Override
            public JobRepository getJobRepository() {
                JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
                // set properties on the factory bean
                try {
                    factory.afterPropertiesSet();
                    return factory.getObject();
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
        };
    }

   // job bean definition
}

could become:

@Configuration
@EnableBatchProcessing
public class MyJobConfigWithCustomJobRepository {

    @Bean
    public JobRepository jobRepository() throws Exception {
        JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean();
        // set properties on the factory bean
        factory.afterPropertiesSet();
        return factory.getObject();
    }

   // job bean definition
   
}

5. Confusing configuration when batch meta-data is not required

The configuration of the JobRepository/JobExplorer in @EnableBatchProcessing is based on the presence of a DataSource bean (if no data source is provided, a Map-based job repository/explorer is configured, which was deprecated anyway #3780). If the application context contains one or more datasource that should not be used by Spring Batch for its meta-data, things seem to become complicated and confusing to many people. Here are some examples:

It is concerning that people end up with an empty setter for the datasource:

The data source is actually an implementation detail of a particular JobRepository implementation, which is the JDBC based JobRepository. Other implementations of JobRepository might not need a data source at all (like a MongoDB based job repository for example). The point here is that the data source should not be a first order concern in terms of configuration, but rather a second order concern. In other words, @EnableBatchProcessing should first make sure the user wants to use the JDBC based job repository, and if so, only then check for a data source bean in the application context.


Possible solutions

I see a couple of options here, but I'm open for other suggestions as well.

1. Use annotation attributes to customize infrastructure beans

The idea here is to make @EnableBatchProcessing first look for infrastructure beans in the application context. If those beans are not defined, then create them and register them in the application context. The same naming conventions used with XML configuration style should be used for consistency. For example:

@Configuration
@EnableBatchProcessing(dataSource = "myDataSource",  // could be omitted if named "dataSource"
                       transactionManager = "myTransactionManager", // could be omitted if named "transactionManager"
                       serializer = "mySerializer")
public class MyJobConfiguration {

    @Bean
    public Job job(JobBuilderFactory jobBuilderFactory) {
        return jobBuilderFactory.get("myJob")
                .flow(null).build()
                .build();
    }

    @Bean // could be the one auto-configured by Spring Boot
    public ExecutionContextSerializer mySerializer() {
        ExecutionContextSerializer serializer = new Jackson2ExecutionContextStringSerializer();
        // customize serializer
        return serializer;
    }

}

In this example, @EnableBatchProcessing would first look for a JobRepository bean named jobRepository (same naming convention as XML) in the application context. If no such bean is defined, then it should create one by setting collaborators as defined in the annotation attributes.

2. Provide a base configuration class with infrastructure beans

Similar to the base XML application context that defines infrastructure beans with XML configuration, the idea is to provide a similar mechanism but for Java configuration. This means providing a base configuration class (which could be something like the current AbstractBatchConfiguration but with concrete ready-to-use bean definitions in it) that users can extend to define their batch jobs:

@Configuration
public class MyBatchApplication extends BatchConfiguration {

    @Bean
    public Job job(JobBuilderFactory jobBuilderFactory) {
        return jobs.get("job")
                // define job
                .build();
    }

}

Any bean that needs customization can be declared in the user's class.

created time in 4 days

issue openedspring-projects/spring-batch

Auto-configure SimpleJobOperator with EnableBatchProcessing

As of v4.3, @EnableBatchProcessing auto-configures all infrastructure beans except a JobOperator. So as a user, I still need to create a JobOperator bean myself like:

@Bean
public JobOperator jobOperator(JobLauncher jobLauncher, JobRegistry jobRegistry,
                               JobExplorer jobExplorer, JobRepository jobRepository) {
	SimpleJobOperator jobOperator = new SimpleJobOperator();
	jobOperator.setJobExplorer(jobExplorer);
	jobOperator.setJobLauncher(jobLauncher);
	jobOperator.setJobRegistry(jobRegistry);
	jobOperator.setJobRepository(jobRepository);
	return jobOperator;
}

Since all collaborators of the JobOperator (ie JobRepository, JobLauncher, JobRegistry, JobExplorer) are already created by @EnableBatchProcessing, this bean could also be created automatically by the annotation with those dependencies already set on it.

created time in 4 days

issue openedspring-projects/spring-batch

BatchTestContextCustomizer does not implement hashCode/equals, preventing context caching

Bug description When using @SpringBatchTest, the BatchTestContextCustomizer is added to each test's MergedContextConfiguration. BatchTestContextCustomizer does not implement hashCode()/equals(), causing each new instance to have a different hash code. This leads to unnecessary cache misses and context creations, slowing down test execution. The ContextCustomizer Javadoc clearly demands implementing these methods.

Environment Spring Batch 4.3.2

Steps to reproduce Create multiple test classes with identical context configuration, annotate them with @SpringBatchTest. A new application context will be created for each test class.

Expected behavior BatchTestContextCustomizer should return stable hash codes to not break context caching.

Minimal Complete Reproducible example demo.zip

  1. Unzip
  2. Run ./mvnw test
  3. The first test succeeds (ok), the second test fails (nok).

The project contains two test classes, both extending BaseTest and thus its configuration. BaseTest is annotated with @SpringBatchTest and @SpringBootTest. The application context is injected, and @BeforeEach records its start date in a static set. The test method asserts that the set of context start dates contains only one value. Removing @SpringBatchTest fixes the test, because the same application context instance is injected into both tests.

Possible Fix Return stable hash codes in the same way for example ExcludeFilterContextCustomizer does it:

@Override
public boolean equals(Object obj) {
  return obj != null && getClass() == obj.getClass();
}

@Override
public int hashCode() {
  return getClass().hashCode();
}

created time in 5 days

issue commentspring-projects/spring-batch

close() called twice for ItemReader and ItemWriter beans implementing ItemStream

Any news on this ? I'm running into same issue.

tiborsulyan

comment created time in 6 days

issue openedspring-projects/spring-batch

Different behavior when interrupting a job, depending on the parallel flow order

Bug description Different behavior when interrupting a job, depending on the parallel flow order. I am creating a parallel flow and trying to interrupt a job from one of them. Further behavior depends on the order of the flow inside the add() function. In one case, the job is finished immediately, in the other, all steps from another parallel flow are executed.

Flow parallelFlow = new FlowBuilder<SimpleFlow>("parallelFlow") .split(new SimpleAsyncTaskExecutor()) .add(nonInterruptingFlow, interruptingFlow) .build();

Environment Spring Batch: 4.3.1

Steps to reproduce

  1. Create a job with two parallel flows, where the last flow in the list interrupts the job.
  2. Make sure that the job has finished after the interruption.
  3. Change flow order (now the first flow in the list interrupts the job).
  4. Make sure that all the steps of the job have been executed after the interruption.

Expected behavior Same behavior after interruption.

Minimal Complete Reproducible example springbatchdemo.zip

created time in 6 days

issue commentspring-projects/spring-batch-extensions

Release spring-batch-bigquery version 0.1.0

@benas It is done

benas

comment created time in 7 days

create barnchspring-projects/spring-batch-extensions

branch : big-query-avro

created branch time in 7 days

delete branch spring-projects/spring-batch-extensions

delete branch : 0.1-bigquery-prep

delete time in 7 days

push eventspring-projects/spring-batch-extensions

Vova

commit sha e1d5fc5a4a9ba53b9b00b50d25054a286d0edc24

[bq] 0.1 BigQuery preparation

view details

push time in 7 days

PR merged spring-projects/spring-batch-extensions

0.1 BigQuery preparation module: spring-batch-bigquery

Closes #68

+182 -162

0 comment

5 changed files

dgray16

pr closed time in 7 days

issue closedspring-projects/spring-batch-extensions

Release spring-batch-bigquery version 0.1.0

@dgray16 Please add a comment here when the module is ready for a release.

Please note that we are reviewing the internal release process within the entire portfolio, so I will add an update here when the release is done.

closed time in 7 days

benas

push eventspring-projects/spring-batch-extensions

Vova Perebykivskyi

commit sha 0bf03d09f1fc39708b94498ed07473787333cbfc

Remove future features

view details

push time in 7 days

issue commentspring-projects/spring-batch

Remote Chunking runs in to issue when deserializing the ChunkResponse

@ajain72 Are you able to solve this issue? any workaround possible?

ajain72

comment created time in 10 days

issue closedspring-projects/spring-batch

Job sometimes does not execute

Bug description We currently launch our jobs using command line arguments (the main function we used is attached below). We have a collection of Bash scripts that run the jobs separately, hence the job names would not contain human typing error during execution (we have tested each script thoroughly). However, sometimes, and without a clear pattern, some jobs would not be executed at all (refer to the logs attached), nor any new entry inserted into BATCH_JOB_EXECUTION and BATCH_STEP_EXECUTION.

Environment Spring Batch 2.1.7 Java 1.8 SQL Server 2017

Steps to reproduce Run the Java application with job name as the command line argument.

Expected behavior Job should always execute, the execution should be shown in the logs, new entries should be able to be seen in BATCH_JOB_EXECUTION and BATCH_STEP_EXECUTION.

Minimal Complete Reproducible example Main function:

public static void main(String[] args) throws Exception {
        String jobName = null;

        JobParametersBuilder jobParametersBuilder = new JobParametersBuilder();
        jobParametersBuilder.addLong("time", System.currentTimeMillis());

        List<String> otherArgs = new ArrayList<>();

        try {
            for (int i = 0; i < args.length; i++) {
                if (args[i].startsWith("-")) {
                    switch (args[i]) {
                        case "-h":
                        case "--help":
                            if (i + 1 < args.length && !args[i + 1].startsWith("-")) {
                                try {
                                    System.out.println(getContent(ResourceFactory.newClassPathResource("help/help_" + args[i + 1] + ".txt").getInputStream()));
                                } catch (Exception e) {
                                    throw new RuntimeException("Job help file not found");
                                }
                            } else {
                                System.out.println(getContent(ResourceFactory.newClassPathResource("help/help.txt").getInputStream()));
                            }
                            return;

                        case "-d":
                        case "--date":
                            // TODO validate date format
                            jobParametersBuilder.addString("date", args[++i]);
                            break;

                        case "-f":
                        case "--filename":
                            // TODO get filename
                            jobParametersBuilder.addString("filename", args[++i]);
                            break;
                        case "-tc":
                        case "--transactionCode":
                            jobParametersBuilder.addString("transactionCode", args[++i]);
                            break;
                        default:
                            otherArgs.add(args[i]);
                    }
                } else {
                    if (jobName != null) {
                        throw new IllegalArgumentException("Multiple jobName detected");
                    }
                    jobName = args[i];
                    jobParametersBuilder.addString("job", jobName);
                }
            }

            if (jobName == null) {
                throw new IllegalArgumentException("Unable to process, jobName required!");
            }
        } catch (IndexOutOfBoundsException e) {
            throw new IllegalArgumentException("Argument count not match");
        }

        ConfigurableApplicationContext context = SpringApplication.run(RhbWllBatchApplication.class,
                otherArgs.toArray(new String[]{}));
        JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
        Job job = (Job) context.getBean(jobName);

        try {
            JobExecution execution = jobLauncher.run(job, jobParametersBuilder.toJobParameters());
            if (execution.getStatus().getBatchStatus() == javax.batch.runtime.BatchStatus.FAILED) {
                log.error("Job execution failure = " + execution.getFailureExceptions() +
                        "\n\t Step Executions = "+ execution.getStepExecutions());
                System.exit(1);
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(1);
        }

        System.exit(0);
    }

Log when the job is executed normally:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.7.RELEASE)

2021-06-07 17:26:32.964 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStarting - Starting RhbWllBatchApplication v2.0.1.16.1 on myrhboalsapp01vd with PID 17095 (/appl/RHBMY/WLL/batch/rhb-wll-batch.jar started by wllappsadmin in /home/wllappsadmin)
2021-06-07 17:26:32.970 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStartupProfileInfo - No active profile set, falling back to default profiles: default
2021-06-07 17:26:35.413 [main] INFO  org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn - Bootstrapping Spring Data repositories in DEFAULT mode.
2021-06-07 17:26:35.909 [main] INFO  org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn - Finished Spring Data repository scanning in 485ms. Found 38 repository interfaces.
2021-06-07 17:26:36.790 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerErrorChannel - No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2021-06-07 17:26:36.797 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerTaskScheduler - No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2021-06-07 17:26:36.806 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerHeaderChannelRegistry - No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2021-06-07 17:26:37.230 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$8b3c03c4] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-07 17:26:37.261 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration$$EnhancerBySpringCGLIB$$f62dbef3] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-07 17:26:37.282 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-07 17:26:37.738 [main] INFO  com.zaxxer.hikari.HikariDataSource.getConnection - HikariPool-1 - Starting...
2021-06-07 17:26:38.155 [main] INFO  com.zaxxer.hikari.HikariDataSource.getConnection - HikariPool-1 - Start completed.
2021-06-07 17:26:38.401 [main] INFO  org.hibernate.jpa.internal.util.LogHelper.logPersistenceUnitInformation - HHH000204: Processing PersistenceUnitInfo [
        name: default
        ...]
2021-06-07 17:26:38.579 [main] INFO  org.hibernate.Version.logVersion - HHH000412: Hibernate Core {5.3.10.Final}
2021-06-07 17:26:38.581 [main] INFO  org.hibernate.cfg.Environment.<clinit> - HHH000206: hibernate.properties not found
2021-06-07 17:26:38.793 [main] INFO  org.hibernate.annotations.common.Version.<clinit> - HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2021-06-07 17:26:39.340 [main] INFO  org.hibernate.dialect.Dialect.<init> - HHH000400: Using dialect: org.hibernate.dialect.SQLServer2012Dialect
2021-06-07 17:26:41.482 [main] INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator.initiateService - HHH000397: Using ASTQueryTranslatorFactory
2021-06-07 17:26:41.606 [main] INFO  org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.buildNativeEntityManagerFactory - Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-06-07 17:26:43.273 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.initialize - Initializing ExecutorService
2021-06-07 17:26:43.275 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.initialize - Initializing ExecutorService 'wllThreadPoolTaskExecutor'
2021-06-07 17:26:44.511 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.541 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.557 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.588 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.609 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.631 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.661 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.679 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.699 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.716 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.728 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.747 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.757 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.773 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.781 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.791 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.811 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.825 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.848 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:44.861 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.414 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.486 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.500 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.514 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.533 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.545 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.561 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.575 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.584 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.590 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.597 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:45.811 [main] WARN  org.springframework.boot.autoconfigure.batch.JpaBatchConfigurer.determineIsolationLevel - JPA does not support custom isolation levels, so locks may not be taken when launching Jobs
2021-06-07 17:26:45.813 [main] INFO  org.springframework.batch.core.repository.support.JobRepositoryFactoryBean.afterPropertiesSet - No database type set, using meta data indicating: SQLSERVER
2021-06-07 17:26:45.815 [main] INFO  org.springframework.batch.core.launch.support.SimpleJobLauncher.afterPropertiesSet - No TaskExecutor has been set, defaulting to synchronous executor.
2021-06-07 17:26:46.298 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.329 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.380 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.407 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.448 [main] INFO  cc.worldline.dni.rhbwllbatch.dashboard.RefreshDashboardIndicatorJobConfig.refreshDashboardIndicatorStep - Run refreshDashboardIndicatorStep
2021-06-07 17:26:46.449 [main] INFO  cc.worldline.dni.rhbwllbatch.dashboard.RefreshDashboardIndicatorJobConfig.refreshDashboardIndicatorJob - Run refreshDashboardIndicatorJob
2021-06-07 17:26:46.590 [main] WARN  org.springframework.batch.core.listener.AbstractListenerFactoryBean.isListener - org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2021-06-07 17:26:46.593 [main] WARN  org.springframework.batch.core.listener.AbstractListenerFactoryBean.isListener - org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2021-06-07 17:26:46.668 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.813 [main] INFO  cc.worldline.dni.rhbwllbatch.housekeeping.springbatch.BatchRecordHkJobConfig.batchRecordHkJob - batchRecordHkJob is skip CSV: false
2021-06-07 17:26:46.959 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:46.993 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.002 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.051 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.060 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.146 [main] INFO  c.w.d.r.searchcustomer.configuration.RefreshSearchCustomerTableWithIndexConfig.refreshSearchCustomerTableWithIndexProcessingStep - run refreshSearchCustomerTableWithIndex
2021-06-07 17:26:47.148 [main] INFO  c.w.d.r.searchcustomer.configuration.RefreshSearchCustomerTableWithIndexConfig.refreshSearchCustomerTableWithIndexJob - run refreshSearchCustomerTableWithIndex
2021-06-07 17:26:47.170 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.175 [main] INFO  c.w.d.r.datarelationrecovery.configuration.CampaignDataRelationRecoveryConfig.campaignDataRelationRecoveryProcessingStep - run campaignDataRelationRecovery
2021-06-07 17:26:47.176 [main] INFO  c.w.d.r.datarelationrecovery.configuration.CampaignDataRelationRecoveryConfig.campaignDataRelationRecoveryJob - run campaignDataRelationRecovery
2021-06-07 17:26:47.428 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.666 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.780 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceDataGatheringItemWriter - run groupMaintenanceDataGatheringItemWriter
2021-06-07 17:26:47.783 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceDataGatheringStep - run groupMaintenanceDataGatheringStep
2021-06-07 17:26:47.784 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenancePreparationStep - run groupMaintenancePreparationStep
2021-06-07 17:26:47.785 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceJRProcessingStep - run groupMaintenanceJRProcessingStep
2021-06-07 17:26:47.787 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceReportJob - run groupMaintenanceReportJob
2021-06-07 17:26:47.880 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.920 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:47.930 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-07 17:26:48.164 [main] INFO  cc.worldline.dni.rhbwllbatch.housekeeping.audittrail.AuditTrailHkJobConfig.auditTrailHkJob - auditTrailHkJob is skip CSV: false
2021-06-07 17:26:48.640 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler.initialize - Initializing ExecutorService 'taskScheduler'
2021-06-07 17:26:48.897 [main] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.logComponentSubscriptionEvent - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2021-06-07 17:26:48.898 [main] INFO  org.springframework.integration.channel.PublishSubscribeChannel.adjustCounterIfNecessary - Channel 'application.errorChannel' has 1 subscriber(s).
2021-06-07 17:26:48.898 [main] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.start - started _org.springframework.integration.errorLogger
2021-06-07 17:26:48.915 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStarted - Started RhbWllBatchApplication in 16.842 seconds (JVM running for 18.189)
2021-06-07 17:26:49.028 [main] INFO  org.springframework.batch.core.launch.support.SimpleJobLauncher.run - Job: [SimpleJob: [name=userLoginReportJob]] launched with the following parameters: [{time=1623057991865, job=userLoginReportJob}]
2021-06-07 17:26:49.068 [main] INFO  org.springframework.batch.core.job.SimpleStepHandler.handleStep - Executing step: [userLoginProcessingStep]
2021-06-07 17:26:49.088 [main] INFO  cc.worldline.dni.rhbwllbatch.common.DateUtil.beginEndDate - begin date: 2021-06-07T00:00 end date get hour: 23 get minute: 59 get second: 59
2021-06-07 17:26:49.088 [main] INFO  cc.worldline.dni.rhbwllbatch.common.DateUtil.beginEndDate - end date: 2021-06-07T23:59:59 reportDate: 20210607
2021-06-07 17:26:51.120 [main] INFO  org.springframework.batch.core.launch.support.SimpleJobLauncher.run - Job: [SimpleJob: [name=userLoginReportJob]] completed with the following parameters: [{time=1623057991865, job=userLoginReportJob}] and the following status: [COMPLETED]
2021-06-07 17:26:51.131 [Thread-2] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.logComponentSubscriptionEvent - Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2021-06-07 17:26:51.133 [Thread-2] INFO  org.springframework.integration.channel.PublishSubscribeChannel.adjustCounterIfNecessary - Channel 'application.errorChannel' has 0 subscriber(s).
2021-06-07 17:26:51.133 [Thread-2] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.stop - stopped _org.springframework.integration.errorLogger
2021-06-07 17:26:51.134 [Thread-2] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler.shutdown - Shutting down ExecutorService 'taskScheduler'
2021-06-07 17:26:51.205 [Thread-2] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.shutdown - Shutting down ExecutorService 'wllThreadPoolTaskExecutor'
2021-06-07 17:26:51.280 [Thread-2] INFO  org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.destroy - Closing JPA EntityManagerFactory for persistence unit 'default'
2021-06-07 17:26:51.291 [Thread-2] INFO  com.zaxxer.hikari.HikariDataSource.close - HikariPool-1 - Shutdown initiated...
2021-06-07 17:26:51.294 [Thread-2] INFO  com.zaxxer.hikari.HikariDataSource.close - HikariPool-1 - Shutdown completed.

Log when the job randomly does not execute:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.7.RELEASE)

2021-06-05 15:42:12.699 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStarting - Starting RhbWllBatchApplication v2.0.1.16.1 on myrhboalsapp01vd with PID 15474 (/appl/RHBMY/WLL/batch/rhb-wll-batch.jar started by wllappsadmin in /home/wllappsadmin)
2021-06-05 15:42:12.704 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStartupProfileInfo - No active profile set, falling back to default profiles: default
2021-06-05 15:42:18.935 [main] INFO  org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn - Bootstrapping Spring Data repositories in DEFAULT mode.
2021-06-05 15:42:20.451 [main] INFO  org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn - Finished Spring Data repository scanning in 1493ms. Found 38 repository interfaces.
2021-06-05 15:42:22.733 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerErrorChannel - No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
2021-06-05 15:42:22.750 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerTaskScheduler - No bean named 'taskScheduler' has been explicitly defined. Therefore, a default ThreadPoolTaskScheduler will be created.
2021-06-05 15:42:22.769 [main] INFO  o.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerHeaderChannelRegistry - No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
2021-06-05 15:42:23.807 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$dadee998] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-05 15:42:23.856 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'org.springframework.integration.config.IntegrationManagementConfiguration' of type [org.springframework.integration.config.IntegrationManagementConfiguration$$EnhancerBySpringCGLIB$$45d0a4c7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-05 15:42:23.896 [main] INFO  o.s.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization - Bean 'integrationDisposableAutoCreatedBeans' of type [org.springframework.integration.config.annotation.Disposables] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-06-05 15:42:25.106 [main] INFO  com.zaxxer.hikari.HikariDataSource.getConnection - HikariPool-1 - Starting...
2021-06-05 15:42:25.879 [main] INFO  com.zaxxer.hikari.HikariDataSource.getConnection - HikariPool-1 - Start completed.
2021-06-05 15:42:26.351 [main] INFO  org.hibernate.jpa.internal.util.LogHelper.logPersistenceUnitInformation - HHH000204: Processing PersistenceUnitInfo [
	name: default
	...]
2021-06-05 15:42:26.594 [main] INFO  org.hibernate.Version.logVersion - HHH000412: Hibernate Core {5.3.10.Final}
2021-06-05 15:42:26.598 [main] INFO  org.hibernate.cfg.Environment.<clinit> - HHH000206: hibernate.properties not found
2021-06-05 15:42:27.178 [main] INFO  org.hibernate.annotations.common.Version.<clinit> - HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2021-06-05 15:42:28.553 [main] INFO  org.hibernate.dialect.Dialect.<init> - HHH000400: Using dialect: org.hibernate.dialect.SQLServer2012Dialect
2021-06-05 15:42:34.417 [main] INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator.initiateService - HHH000397: Using ASTQueryTranslatorFactory
2021-06-05 15:42:34.850 [main] INFO  org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.buildNativeEntityManagerFactory - Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-06-05 15:42:40.443 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.initialize - Initializing ExecutorService
2021-06-05 15:42:40.445 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.initialize - Initializing ExecutorService 'wllThreadPoolTaskExecutor'
2021-06-05 15:42:44.207 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.266 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.308 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.342 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.389 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.448 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.514 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.578 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.666 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.727 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.799 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.819 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.859 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.882 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.912 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:44.939 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:45.000 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:45.045 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:45.093 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:45.120 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.474 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.683 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.706 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.756 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.819 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.842 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.871 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.885 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.896 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.903 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:46.927 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:47.601 [main] WARN  org.springframework.boot.autoconfigure.batch.JpaBatchConfigurer.determineIsolationLevel - JPA does not support custom isolation levels, so locks may not be taken when launching Jobs
2021-06-05 15:42:47.603 [main] INFO  org.springframework.batch.core.repository.support.JobRepositoryFactoryBean.afterPropertiesSet - No database type set, using meta data indicating: SQLSERVER
2021-06-05 15:42:47.606 [main] INFO  org.springframework.batch.core.launch.support.SimpleJobLauncher.afterPropertiesSet - No TaskExecutor has been set, defaulting to synchronous executor.
2021-06-05 15:42:48.847 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:48.920 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:49.069 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:49.104 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:49.206 [main] INFO  cc.worldline.dni.rhbwllbatch.dashboard.RefreshDashboardIndicatorJobConfig.refreshDashboardIndicatorStep - Run refreshDashboardIndicatorStep
2021-06-05 15:42:49.207 [main] INFO  cc.worldline.dni.rhbwllbatch.dashboard.RefreshDashboardIndicatorJobConfig.refreshDashboardIndicatorJob - Run refreshDashboardIndicatorJob
2021-06-05 15:42:49.633 [main] WARN  org.springframework.batch.core.listener.AbstractListenerFactoryBean.isListener - org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2021-06-05 15:42:49.636 [main] WARN  org.springframework.batch.core.listener.AbstractListenerFactoryBean.isListener - org.springframework.batch.item.ItemProcessor is an interface. The implementing class will not be queried for annotation based listener configurations. If using @StepScope on a @Bean method, be sure to return the implementing class so listener annotations can be used.
2021-06-05 15:42:50.117 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:50.399 [main] INFO  cc.worldline.dni.rhbwllbatch.housekeeping.springbatch.BatchRecordHkJobConfig.batchRecordHkJob - batchRecordHkJob is skip CSV: false
2021-06-05 15:42:50.712 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:50.744 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:50.779 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:50.815 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:50.821 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:51.009 [main] INFO  c.w.d.r.searchcustomer.configuration.RefreshSearchCustomerTableWithIndexConfig.refreshSearchCustomerTableWithIndexProcessingStep - run refreshSearchCustomerTableWithIndex
2021-06-05 15:42:51.010 [main] INFO  c.w.d.r.searchcustomer.configuration.RefreshSearchCustomerTableWithIndexConfig.refreshSearchCustomerTableWithIndexJob - run refreshSearchCustomerTableWithIndex
2021-06-05 15:42:51.057 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:51.089 [main] INFO  c.w.d.r.datarelationrecovery.configuration.CampaignDataRelationRecoveryConfig.campaignDataRelationRecoveryProcessingStep - run campaignDataRelationRecovery
2021-06-05 15:42:51.090 [main] INFO  c.w.d.r.datarelationrecovery.configuration.CampaignDataRelationRecoveryConfig.campaignDataRelationRecoveryJob - run campaignDataRelationRecovery
2021-06-05 15:42:51.596 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:52.111 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:52.445 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceDataGatheringItemWriter - run groupMaintenanceDataGatheringItemWriter
2021-06-05 15:42:52.448 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceDataGatheringStep - run groupMaintenanceDataGatheringStep
2021-06-05 15:42:52.449 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenancePreparationStep - run groupMaintenancePreparationStep
2021-06-05 15:42:52.450 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceJRProcessingStep - run groupMaintenanceJRProcessingStep
2021-06-05 15:42:52.452 [main] INFO  cc.worldline.dni.rhbwllbatch.report.group.GroupMaintenanceReportBatchConfig.groupMaintenanceReportJob - run groupMaintenanceReportJob
2021-06-05 15:42:52.724 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:52.923 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:52.965 [main] WARN  org.springframework.batch.core.step.builder.FaultTolerantStepBuilder.detectStreamInReader - Asynchronous TaskExecutor detected with ItemStream reader.  This is probably an error, and may lead to incorrect restart data being stored.
2021-06-05 15:42:53.525 [main] INFO  cc.worldline.dni.rhbwllbatch.housekeeping.audittrail.AuditTrailHkJobConfig.auditTrailHkJob - auditTrailHkJob is skip CSV: false
2021-06-05 15:42:55.173 [main] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler.initialize - Initializing ExecutorService 'taskScheduler'
2021-06-05 15:42:55.984 [main] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.logComponentSubscriptionEvent - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2021-06-05 15:42:55.984 [main] INFO  org.springframework.integration.channel.PublishSubscribeChannel.adjustCounterIfNecessary - Channel 'application.errorChannel' has 1 subscriber(s).
2021-06-05 15:42:55.984 [main] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.start - started _org.springframework.integration.errorLogger
2021-06-05 15:42:56.016 [main] INFO  cc.worldline.dni.rhbwllbatch.RhbWllBatchApplication.logStarted - Started RhbWllBatchApplication in 44.876 seconds (JVM running for 47.128)
2021-06-05 15:42:56.274 [Thread-2] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.logComponentSubscriptionEvent - Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2021-06-05 15:42:56.277 [Thread-2] INFO  org.springframework.integration.channel.PublishSubscribeChannel.adjustCounterIfNecessary - Channel 'application.errorChannel' has 0 subscriber(s).
2021-06-05 15:42:56.277 [Thread-2] INFO  org.springframework.integration.endpoint.EventDrivenConsumer.stop - stopped _org.springframework.integration.errorLogger
2021-06-05 15:42:56.279 [Thread-2] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler.shutdown - Shutting down ExecutorService 'taskScheduler'
2021-06-05 15:42:56.388 [Thread-2] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor.shutdown - Shutting down ExecutorService 'wllThreadPoolTaskExecutor'
2021-06-05 15:42:56.508 [Thread-2] INFO  org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.destroy - Closing JPA EntityManagerFactory for persistence unit 'default'
2021-06-05 15:42:56.529 [Thread-2] INFO  com.zaxxer.hikari.HikariDataSource.close - HikariPool-1 - Shutdown initiated...
2021-06-05 15:42:56.592 [Thread-2] INFO  com.zaxxer.hikari.HikariDataSource.close - HikariPool-1 - Shutdown completed.

closed time in 10 days

tyrng

issue commentspring-projects/spring-batch

Job sometimes does not execute

Closing this issue as we found that printStackTrace() outputs to STDERR instead of STDOUT, which our script is not able to produce in the log file output. And the printed error seems to be caused by #1448 .

tyrng

comment created time in 10 days

issue closedspring-projects/spring-batch

Please ignore - deleting

Expected Behavior

Current Behavior

Context

closed time in 10 days

jharby2021

issue commentspring-projects/spring-batch

@StepScope not working when XML namespace activated

pull request https://github.com/spring-projects/spring-batch/pull/3938

farnetto

comment created time in 10 days

pull request commentspring-projects/spring-batch

BATCH-3936 StepScope TARGET_NAME_PREFIX scopedTarget

Possibly better just to reference constant in ScopedProxyUtils instead of copying the value? JobScope should probably be similarly changed if this change is ok.

farnetto

comment created time in 10 days

PR opened spring-projects/spring-batch

BATCH-3936 StepScope TARGET_NAME_PREFIX scopedTarget

StepScope.TARGET_NAME_PREFIX changed to "scopedTarget." to match ScopedProxyUtils.TARGET_NAME_PREFIX and check in BatchScopeSupport#postProcessBeanFactory.

+65 -6

0 comment

3 changed files

pr created time in 10 days

issue openedspring-projects/spring-batch

Put last_updated in all Spring Batch tables and maintain them

Expected Behavior

Three of the current Spring Batch tables do not have a last_updated column that is maintained by Spring Batch. For various reasons such as replication we would like this very much.

Current Behavior

Three of the Spring Batch tables do not have a last_updated column that is maintained by Spring Batch.

Context

How has this issue affected you? Our data replication systems using Golden Gate require the last_update in all the tables. What are you trying to accomplish? An enterprise Spring Batch application with data replication. What other alternatives have you considered? Adding the columns ourselves and using triggers to populate them. Are you aware of any workarounds? We are trying to use triggers and add the columns ourselves but our database team objects and states it complicates the replication.

created time in 10 days

issue openedspring-projects/spring-batch

@StepScope not working when XML namespace activated

I believe the problem described in the last comment in #1569 still exists: https://github.com/spring-projects/spring-batch/issues/1569#issuecomment-566279715

If the Spring Batch XML namespace is loaded with CoreNamespaceUtils, and then you try to define a @StepScope bean in a Java e.g. in a Configuration or Component class, then the bean is proxied twice and you get an exception during batch execution:

java.lang.ClassCastException: com.sun.proxy.$Proxy173 cannot be cast to org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader
	at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader$$FastClassBySpringCGLIB$$ebb633d0.invoke(<generated>) ~[spring-batch-infrastructure-4.2.5.RELEASE.jar:4.2.5.RELEASE]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) ~[spring-aop-5.2.13.RELEASE.jar:5.2.13.RELEASE]
	at org.springframework.batch.item.file.FlatFileItemReader$$EnhancerBySpringCGLIB$$9569ac9c.open(<generated>) ~[spring-batch-infrastructure-4.2.5.RELEASE.jar:4.2.5.RELEASE]
	at org.springframework.batch.item.support.CompositeItemStream.open(CompositeItemStream.java:103) ~[spring-batch-infrastructure-4.2.5.RELEASE.jar:4.2.5.RELEASE]
	at org.springframework.batch.core.step.tasklet.TaskletStep.open(TaskletStep.java:311) ~[spring-batch-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]
	at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:205) ~[spring-batch-core-4.2.5.RELEASE.jar:4.2.5.RELEASE]

I have a bean called scopedTarget.scopedTarget.reader in my context, which is obviously wrong.

The XML namespace creates an instance of StepScope under the name "org.springframework.batch.core.scope.internalStepScope" with autoProxy=true and AbstractBatchConfiguration.ScopeConfiguration creates an instance with autoProxy=false.

There is a check in BatchScopeSupport#postProcessBeanFactory if the bean starts with the target name prefix, but the value of StepScope.TARGET_NAME_PREFIX doesn't catch it: stepScopedTarget.

Should StepScope.TARGET_NAME_PREFIX be corrected? I don't see where else it is used.

created time in 11 days