問題タブ [spring-batch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
18574 参照

spring - SpringBatchAdminを既存のアプリケーションに統合する

SpringBatchとSpringMVCを使用するアプリケーションがあります。Spring Batch Adminを別の戦争としてデプロイし、アプリケーションが使用するのと同じDBに対して使用することができますが、それを自分のアプリケーションに統合したいのですが、ビューの一部も変更する可能性があります。

これを行う簡単な方法はありますか、それともフォークしてそこから移動する必要がありますか?

0 投票する
2 に答える
6156 参照

java - JobParameter & ItemReader

itemReader で JobParameters にアクセスしようとしています。Spring ユーザー ガイドの「ジョブとステップ属性のレイト バインディング」に従いましたが、機能しません。

これが私の構成です:Spring-batch 2.1.8 Spring-core 3.0.5

私のテストクラス:

しかし、私はいつもこのエラーを受け取りました:

何か案は ?

どうも

0 投票する
1 に答える
3204 参照

multithreading - Spring Batch のマルチスレッド ステップでの StepExecutionContext への書き込み

私はSpring Batchを使用しており、を使用して実行されるタスクレットを作成しましたSimpleAsyncTaskExecutor. このステップでは、StepExecutionContextwith を取得しています

タスクレットの処理メソッドでは、コンテキストを更新しようとしています:

ConcurrentModificationExceptionこれはの につながりstepExecutionます。このマルチスレッド環境でこれらを回避し、コンテキストを更新するにはどうすればよいですか?

0 投票する
1 に答える
4260 参照

java - Javaの並行未来のタスクは、例外が発生した場合にnullを返し、それを伝播しません

私は java.util.concurrent パッケージを初めて使用し、DB からいくつかの行をフェッチする簡単なメソッドを作成しました。DB 呼び出しがそれを処理するために例外をスローすることを確認しました。しかし、私は例外が私に戻ってくるのを見ていません。代わりに、私のメソッドへの呼び出しは null を返します。

この場合、誰かが私を助けることができますか?これが私のサンプルメソッド呼び出しです

私はググって、その周りのいくつかのページを見つけました。しかし、それに対する具体的な解決策は見当たりません。専門家が助けてください....

taskExecutor は org.springframework.core.task.TaskExecutor のオブジェクトです

0 投票する
1 に答える
1866 参照

java - Spring バッチ プロセスを正常にシャットダウンし、失敗した場合にバッチ プロセスを回復する

一部のバックエンド操作には Spring Batch を使用しています。1)実行中のSpringバッチプロセスを正常にシャットダウンする方法を知る必要がありますか?2) 特定のスプリング バッチ プロセスがクラッシュしたことを確認し、他のマシンで回復/起動する方法

0 投票する
2 に答える
13036 参照

spring-batch - アイテム書き込み中の予期しない rollbackCount と shouldSkip() の呼び出し

Spring のドキュメント (46 ページ、セクション: 5.1.7) には次のように書かれています。

デフォルトでは、再試行またはスキップに関係なく、ItemWriter から例外がスローされると、Step によって制御されるトランザクションがロールバックされます。スキップが上記のように構成されている場合、ItemReader からスローされた例外はロールバックを引き起こしません。

私のコミット間隔は 10 に設定されています。したがって、上記の段落についての私の理解では、10 個のチャンクから 7 番目のレコードを読み取る際にエラーが発生した場合、アイテムはスキップされ、正しい 9 個のレコードが itemReader によって先に送信されます。

ただし、書き込み中に 7 番目のレコードがエラーになった場合、10 レコードのいずれも書き込まれず、ロールバックが発生します。

ただし、skipPolicy でスローされたエラーを含めると、itemWriter は残りの 9 つのレコードをデータベースに書き込み、エラーが発生したレコードをスキップします。これは、上で述べたことと矛盾します。

「アイテム書き込み中のスキップ」の概念を説明してください。

また、単一のエラーがスローされても、次のようになります。

SkipCount を -1 として 2 回、次に 0 として 1 回、そしてまた -1 として shouldSkip(Object, Throwable) メソッドで 1 回。-- この動作が得られません。

また、ロールバック カウントは 2 です。これはどういう意味ですか? なぜ 2 なのですか?


@michaelいくつかのシナリオを使用して動作を説明できますか!!

たとえば、「ファイルから 20 レコードを読み取り、いくつかの処理の後にデータベースに書き込みます。いくつかの例外に対してスキップ ポリシーを設定しています。読み取り、処理、書き込み中に例外が発生した場合はどうなりますか?チャンクはどのようになりますか?コミット、デフォルトの再試行の仕組み、カウントの更新方法など...."

私はまだ行動に混乱しているので、それは本当に私にとって大きな助けになるでしょう..

0 投票する
3 に答える
6100 参照

java - Java Batch job in cluster environment

We have a cluster with 2 JBOSS nodes. We have a batch job which loads all users details from a active directory to a DB. This job is run everyday. It was run before in a non clustered environment and hence we designed it as a singleton. Now we have a clustered environment and I do not know what is best way to achieve the same result. I want batch job to be run only once a day. We use spring and hibernate and I looked at Spring batch. I could not get any concise answer to my question.

Can anybody please let me know if you had implemented batch in cluster environment? What would be the best solution in this scenario?

0 投票する
1 に答える
1830 参照

spring-batch - SpringBatchでの書き込み中に失敗したアイテムをチャンクで特定する方法

たとえば10アイテムサイズのチャンクの書き込み中に失敗した正確なアイテムをログに記録する方法は何ですか?

ItemWriteListenerのonWriteErrorメソッドでそれをキャッチする方法はありますか?ItemWriterインターフェースを拡張することでこれを知ることは可能ですか?

よろしく、ニック

0 投票する
1 に答える
1798 参照

sql - コミット間隔外のSpring Batchトランザクションコミット

リーダー、プロセッサー、ライターを備えたスプリング バッチ フレームワークを実装しました。バッチ フレームワークはトランザクションを開始し、コミット間隔は 50 レコードごとです。

コミット間隔に達するまで更新または挿入ステートメントを待機したくない場合、リーダーまたはプロセッサ内で、すぐにコミットしたい場合、それは可能ですか?

春のバッチトランザクションでコミット間隔に達する前に特定のレコードのみをコミットする方法のように再構成できます。

ibatis、oracle11gを使用しています。ibatis SQL テンプレートからトランザクションをコミットしようとしましたが、コミットが行われているのを確認できませんでした。

0 投票する
1 に答える
1529 参照

spring-batch - SpringBatch2.1とJmsReader

コマンドラインから実行できるSpringBatchアプリケーションが1つあります。バッチジョブのフローは、開始時にキューからメッセージを読み取り、変換してからdbに書き込みます。今これのために私は春のバッチからJmsItemReaderを使用していて、read()メソッドの中に私のロジックがあります。ここで、このプロセスの開始時にキューにメッセージが存在しない可能性があるという質問があります。このシナリオでは、バッチ全体の処理を停止します。

これはSpringBatchでどのように達成できますか?基本的に、JmsItemReaderを使用すると、jmsブローカーに継続的にpingを実行し、メッセージを読み取ってから一定期間スリープします。ここで、処理するメッセージがない場合、なぜバッチプロセスを実行し続け、CPUを消費させる必要があるのでしょうか。翌日も予定通りに走らせたいです。

ありがとう