Springバッチ・フレームワークを使用してジョブを作成しようとしています。ジョブは、クラスター化されたDB2データベースからデータを取得し、フェッチされたレコードごとにロジックを呼び出し、変換されたデータを同じデータベース(異なるテーブル)に格納する必要があります。私は、以下のように分散DB2データベースのバッチ・バッチ・リーダー
現在@Bean
public Step step1(StepBuilderFactory stepBuilderFactory,
ItemReader<RemittanceVO> reader, ItemWriter<RemittanceClaimVO> writer,
ItemProcessor<RemittanceVO, RemittanceClaimVO> processor) {
return stepBuilderFactory.get("step1")
.<RemittanceVO, RemittanceClaimVO> chunk(100).reader(reader)
.processor(processor).writer(writer).build();
}
をstep1
を記述しようとしています、私はでメタデータのために提供
1.
系SQL、原因データベースがDB2であることと、クラスタ化されることに2つの課題に直面しています - /org/springframework/batch/core/schema-db2.sql
分散DB2ではが機能しません。これはコマンドで失敗します。constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
。
このファイルに書き込まれたクエリは にすることができます。手動でテーブルを作成することもできますが、 は手動でテーブルを作成する必要がありますか?それにはさらに複雑なものがあるでしょうか?
私は、PAUSE
、RESTART
の機能のためにSpringバッチを使いたいので、これらのテーブルがすべて必要です。
2.
我々はREAD ONLY WITH UR
SO questionでDB2 上のすべてのSELECTクエリを発射する必要があります。 このキーワードでクエリを実行しないと、dbがロックされる可能性があります。
ポイント2の問題点は、このバッチ固有のキーワードをサポートしていないSpring Batch(JdbcPagingItemReader
など)のビルド済みリーダークラスでは使用できないという点です。
このフレームワークの利点を説明する無用な単純な例を読んで、私は非常に短期間で稼動すると思っていましたが、自分自身のクエリープロバイダクラス、リサーチメタデータsqls、 dbがDB2であり、分散されているとは限りません。
分散Db2データベースで同様の仕事を実装している人は誰ですか?
あなたは矛盾を取得しますので、ポイント#2のためのあなたの解決策は、良いではありませんロールバックが発生した場合のデータしたがって、org.springframework.batch.item.database.support.Db2PagingQueryProviderを開始点として使用し、要件に合わせて変更する必要があります。 – Dmitry