Spring Batch с очень старым драйвером JDBC 1.0 - PullRequest
1 голос
/ 10 февраля 2012

Я работаю над сложным сценарием интеграции предприятия , включающим устаревшую версию IEX TotalView (3.12.6.0.8). Драйвер ODBC работает только на 32-битных архитектурах - хорошо, я все равно использую Java. Но драйвер JDBC на основе RPC для Simba совместим только с JDBC 1.0 и во многих отношениях ограничен, что я не полностью документировал (один недостаток заключается в том, что он не поддерживает подготовленные операторы, по крайней мере, не очень хорошо).

Я пытаюсь использовать Spring Batch и Apache Camel для создания моста для извлечения данных WFM из IEX, но я сталкиваюсь с множеством неровностей на дороге. Например, JdbcCursorItemReader завершается с ошибкой при:

preparedStatement = con.prepareStatement(
    sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

& hellip; с java.sql.SQLException: Driver Not Capable. В более простых сценариях ETL я использовал JdbcTemplate с RowMapper, но из-за этой комбинации я либо сам управляю извлечением (отказываясь от цели Spring Batch), или же загрузка всего набора результатов в список (отказ от цели подкачки / потоковой передачи).

Сейчас я пытаюсь использовать JdbcPagingItemReader, расширяя AbstractSqlPagingQueryProvider для реализации моей собственной стратегии подкачки на основе запросов , но это оказывается сложнее, чем предполагалось.

Я новичок в Spring Batch, поэтому могу что-то упустить. У кого-нибудь еще есть стратегии для использования Spring со старыми / дефектными / дефектными драйверами JDBC?

1 Ответ

0 голосов
/ 10 февраля 2012

Пока что я решил вырастить свой собственный компонент ItemReader, который наивно запрашивает его свойство DataSource через JDBC API.Не так элегантно, но ничто не может (или не должно) быть бесконечно обратно совместимым.Пока я не забываю хорошо вымыться, это должно работать хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...