title: To use the default BatchConfigurer the context must contain no more thanone DataSource, found 2
body: <p>I am using spring boot and spring batch. For meta table i want to use mysql and for all business thing i want to use db2 as a database.When i implemented getting error.</p>
  
  <p><strong>application.properties</strong></p>
  
  <pre><code>spring.datasource.url = jdbc:mysql://localhost:3306/local
  spring.datasource.username = root
  spring.datasource.password = root
  spring.jpa.show-sql = true
  spring.jpa.hibernate.ddl-auto = update
  spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
  
  spring.seconddatasource.url=jdbc:db2://***************
  spring.seconddatasource.username=******
  spring.seconddatasource.password=****
  spring.seconddatasource.driverClassName=com.ibm.db2.jcc.DB2Driver
  </code></pre>
  
  <p><strong>BatchCongig.java</strong></p>
  
  <pre><code>@Configuration
  @EnableBatchProcessing
  public class BatchConfiguration {
  
      @Autowired
      public JobBuilderFactory jobBuilderFactory;
  
      @Autowired
      public StepBuilderFactory stepBuilderFactory;
  
      @Autowired
      public DataSource dataSourceSecond;
  
      @Bean
      @ConfigurationProperties(prefix="spring.seconddatasource")
      public javax.sql.DataSource secondaryDataSource() {
          return DataSourceBuilder.create().build();
      }
  
      @Bean
      @Primary
      @ConfigurationProperties(prefix="spring.datasource")
      public javax.sql.DataSource primaryDataSource() {
          return DataSourceBuilder.create().build();
      }
  
      @Bean
      public JdbcCursorItemReader&lt;User&gt; reader()
      {
          JdbcCursorItemReader&lt;User&gt; reader=new JdbcCursorItemReader&lt;&gt;();
          reader.setDataSource(dataSourceSecond);
          reader.setSql("Select ACCT_ID from ACCT_table FETCH FIRST 100 ROWS ONLY");
          reader.setRowMapper(new UserRowerMapper());
          return reader;
      }
  
      @Bean
      public UserItemProcessor processor()
      {
          return new UserItemProcessor();
      }
  
      @Bean
      public Step step1()
      {
          return stepBuilderFactory.get("step1").&lt;User,User&gt;chunk(10)
                  .reader(reader())
                  .processor(processor())
                  .build();
      }
  
      @Bean
      public Job job1()
      {
          return jobBuilderFactory.get("jobakjkkj")
                  .incrementer(new RunIdIncrementer())
                  .flow(step1())
                  .end()
                  .build();
  
      }
  
  }
  </code></pre>
  
  <p><strong>error stack</strong></p>
  
  <pre><code>java.lang.IllegalStateException: Failed to execute CommandLineRunner
      at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:779) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:760) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:747) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at com.schwab.cat.SpringBatchDbReadApplication.main(SpringBatchDbReadApplication.java:10) [classes/:na]
  Caused by: java.lang.IllegalStateException: To use the default BatchConfigurer the context must contain no more thanone DataSource, found 2
      at org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.getConfigurer(AbstractBatchConfiguration.java:108) ~[spring-batch-core-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration.initialize(SimpleBatchConfiguration.java:114) ~[spring-batch-core-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$ReferenceTargetSource.createObject(SimpleBatchConfiguration.java:142) ~[spring-batch-core-3.0.7.RELEASE.jar:3.0.7.RELEASE]
      at org.springframework.aop.target.AbstractLazyCreationTargetSource.getTarget(AbstractLazyCreationTargetSource.java:86) ~[spring-aop-4.3.8.RELEASE.jar:4.3.8.RELEASE]
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:192) ~[spring-aop-4.3.8.RELEASE.jar:4.3.8.RELEASE]
      at com.sun.proxy.$Proxy46.getJobInstances(Unknown Source) ~[na:na]
      at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.getNextJobParameters(JobLauncherCommandLineRunner.java:131) ~[spring-boot-autoconfigure-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.execute(JobLauncherCommandLineRunner.java:212) ~[spring-boot-autoconfigure-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.executeLocalJobs(JobLauncherCommandLineRunner.java:231) ~[spring-boot-autoconfigure-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.launchJobFromProperties(JobLauncherCommandLineRunner.java:123) ~[spring-boot-autoconfigure-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.run(JobLauncherCommandLineRunner.java:117) ~[spring-boot-autoconfigure-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776) [spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
      ... 6 common frames omitted
  </code></pre>
  
  <p>I found one jira <a href="https://jira.spring.io/browse/BATCH-2537" rel="nofollow noreferrer">https://jira.spring.io/browse/BATCH-2537</a> which say that "@Primary datasource with @EnableBatchProcessing does not work for using multiple datasources" if this is correct please tell me how i can achive same.
  I also found this <a href="https://stackoverflow.com/questions/30362546/how-to-use-2-or-more-databases-with-spring">How to use 2 or more databases with spring?</a> but not helpful in my case.</p>