Использование одного и того же StepExecutionListener в нескольких экземплярах задания одновременно - PullRequest
0 голосов
/ 27 февраля 2020

Я использую HikariCP с oracle .jdb c .OracleDriver в приложении Spring Batch. Когда он выполняет sql запросы выбора в базе данных Oracle, первый сеанс базы данных блокирует другие. Я вижу это в браузере сеансов базы данных. Поэтому я теряю преимущества параллельного выполнения запросов.

  • oracle .jdb c .OracleDriver 12.1.0.2.0
  • spring-jdb c -5.1.8
  • HikariCP-3.2.0
  • Oracle База данных 12 c Выпуск Enterprise Edition 12.1.0.2.0 - 64 бита

Как мне нужно настроить мой приложение для решения этой проблемы?


27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-2] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL query
27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-1] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL query
27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-2] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL statement [SELECT COUNT(*)
 FROM MY_TABLE_1 R
WHERE R.FDAY BETWEEN :START_DATE AND :END_DATE  
  and (select x.s_id from MY_TABLE_4 x where x.d_id = 3948) = 304243]
27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-1] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL statement [SELECT COUNT(*)
 FROM MY_TABLE_2 R
WHERE R.FDAY BETWEEN :START_DATE AND :END_DATE  
  and (select x.s_id from MY_TABLE_4 x where x.d_id = 3948) = 304243]
27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-2] [o.s.jdbc.datasource.DataSourceUtils] Fetching JDBC Connection from DataSource
27.02.2020 18:37:20.566|DEBUG|[threadPoolTaskScheduler-1] [o.s.jdbc.datasource.DataSourceUtils] Fetching JDBC Connection from DataSource
27.02.2020 18:37:20.570|TRACE|[threadPoolTaskScheduler-1] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 1, parameter value [2019-08-11], value class [java.sql.Date], SQL type unknown
27.02.2020 18:37:20.570|TRACE|[threadPoolTaskScheduler-1] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 2, parameter value [2020-02-27], value class [java.sql.Date], SQL type unknown
27.02.2020 18:37:20.571|TRACE|[threadPoolTaskScheduler-2] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 1, parameter value [2020-02-25], value class [java.sql.Date], SQL type unknown
27.02.2020 18:37:20.572|TRACE|[threadPoolTaskScheduler-2] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 2, parameter value [2020-02-27], value class [java.sql.Date], SQL type unknown
27.02.2020 18:37:20.942|DEBUG|[threadPoolTaskScheduler-3] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL query
27.02.2020 18:37:20.942|DEBUG|[threadPoolTaskScheduler-3] [o.s.jdbc.core.JdbcTemplate] Executing prepared SQL statement [SELECT COUNT(*)
 FROM MY_TABLE_3 U
WHERE U.FDAY BETWEEN :START_DATE AND :END_DATE  
  and (select x.s_id from MY_TABLE_4 x where x.d_id = 3948) = 304243]
27.02.2020 18:37:20.942|DEBUG|[threadPoolTaskScheduler-3] [o.s.jdbc.datasource.DataSourceUtils] Fetching JDBC Connection from DataSource
27.02.2020 18:37:20.948|TRACE|[threadPoolTaskScheduler-3] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 1, parameter value [2018-03-29], value class [java.sql.Date], SQL type unknown
27.02.2020 18:37:20.948|TRACE|[threadPoolTaskScheduler-3] [o.s.jdbc.core.StatementCreatorUtils] Setting SQL statement parameter value: column index 2, parameter value [2020-02-27], value class [java.sql.Date], SQL type unknown
...