Поведение повторного перерыва в весенней партии с Jdbccursoritemreader после утерянного соединенияJAVA

Программисты JAVA общаются здесь
Anonymous
Поведение повторного перерыва в весенней партии с Jdbccursoritemreader после утерянного соединения

Сообщение Anonymous »

У меня есть некоторая проблема. < /p>
Мне нужно передавать действительно большое количество данных от Oracle db в какой -то другой db.
, но в моих результатах всегда пропускаются некоторые данные.
У меня простой запрос. Просто получу два столбца из некоторых таблиц. У меня есть время undo_retention, которое составляет всего 15 минут) - во -первых, я просто добавляю условие, где реле на границе данных и нулевой, но я отказался от этих дополнительных условий. У меня есть шаблон повторной попытки и «retrylistener», где я полагаю, чтобы зарегистрировать любую проблему, которая может вызвать повторную попытку. У меня есть информация на уровне журнала, и я использую «log.error» в прослушивателе.
Я поймаю все исключение - чтобы не сбой и посмотреть, в чем причина моя проблема.
Но я никогда не вижу никакой проблемы вообще. Потому что обычно это происходит только один раз, но если необходимо повторно, потому что, скажем, соединение было интерпретировано, то это еще раз?

Код: Выделить всё

public final String READ_TEAM_TO_DATE_SQL = "select t.id, t.group from teams";

public final String WRITE_TEAM_SQL = "INSERT INTO \"teams\" (\"id\", \"group\") VALUES (:id, :group)";

@Autowired
@Qualifier("dataSource")
private DataSource postgresqlDatasource;

@Autowired
@Qualifier("oracleDataSource")
private DataSource oracleDataSource;

@Autowired
private JobRepository jobRepository;

@Autowired
private PlatformTransactionManager transactionManager;

@Bean
public Flow getTeamsFlow() {

return new FlowBuilder("getTeams")
.start(getTeamsStep())
.on("COMPLETED").end()
.on("FAILED").fail()
.build();
}

@Bean
public Step getTeamsStep() {
return new StepBuilder("getTeamsStep", jobRepository)
.chunk(50_000, transactionManager)
.faultTolerant()
.retry(ConnectException.class)
.retry(SocketTimeoutException.class)
.retry(SQLTransientConnectionException.class)
.retry(SQLTransientException.class)
.retry(SQLTimeoutException.class)
.retry(SQLRecoverableException.class)
.retryLimit(10)
.listener(new ItemWriteListener() {
@Override
public void onWriteError(Exception ex, Chunk

Подробнее здесь: [url]https://stackoverflow.com/questions/79592146/behavior-of-retry-in-spring-batch-with-jdbccursoritemreader-after-lost-connectio[/url]

Вернуться в «JAVA»