Spring Batch は、バッチ処理(一連のジョブの実行)のためのオープンソースプロジェクトです。

バッチジョブは、1 つ以上のステップで構成されます。各ステップは、タスクレット(明示的にまたは暗黙的に ItemReader と ItemWriter を使用)で構成されます。各レベル(ジョブ、ステップ、およびタスクレット)には実行メソッドがあります。

ステップの実行は複数のスレッドを使用して並列化できます。リモートチャンク(ステップの一部の処理、リモート JVM 上のチャンク)は、JMS を使用して実行することもできます。ジョブ内のさまざまな手順は、個別のスレッドの使用例で実行できます。

通常、バッチジョブは非常に長時間実行され、ジョブがオーバーランされる警告により、是正措置が実行されるまでの時間が遅すぎるため、APM の観点から、ジョブレベルでのバッチワークロードの追跡では、値が制限されます。このため、AppDynamics ビジネストランザクションはタスクレットレベルに配置する必要があります。つまり、1 つのバッチジョブが多数のタスクレット ビジネス トランザクションの実行で構成されます。

spring-batch-enabled ノード プロパティを使用すると、Spring Batch のインストゥルメンテーションをオフにできます。

これらのビジネストランザクションの応答時間についてアラートを発することで、AppDynamicsユーザーは次のことを行えるようになります。

  • 一括ジョブの進捗が通常より遅いことを事前に検知でき、いずれかの一括ウィンドウをオーバーランすることを防止できる。
  • 一括ジョブの進行における異常な遅延の根本原因をトラブルシューティングし、ジョブがオーバーランする前に問題を解決できるようにする。

これらを実現するため、Java エージェント 4.5 から以下を行います。

  • ジョブ、ステップ、およびタスクレットから名付けられた Tasklet.execute で BT を作成する

  • JMS 経由でスレッド境界またはプロセス境界をまたがってチャンクを相関付ける