Я работаю над сложным сценарием интеграции предприятия , включающим устаревшую версию 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?