WorkManager

概要

WebOTX Batch Serverでは、コンテナプロセスにおいてスレッド多重によるジョブの多重実行、およびジョブ内のステップのスレッド多重による並列実行をサポートします。これらの2種類の多重実行におけるスレッドの管理を行う単位をBatchWorkThreadManagerと呼びます。以下にBatchWorkThreadManager を設定する機能、およびジョブ実行において実行のためのスレッドを提供する機能について説明します。

BatchWorkThreadManagerとジョブ実行制御およびコンテナプロセスとの関係

コンテナプロセス毎に存在し、ジョブの多重実行のためのスレッドの提供を行うBatchWorkThreadManagerを「コンテナプロセスデフォルトのWorkManager」と呼びます。
ジョブ実行リソース管理によって生成されジョブリクエストによるジョブ実行リソースコンテキスト選択を経由して、ジョブのアプリケーションコンテキスト中で参照可能となるBatchWorkThreadManagerを「ステップ並列実行WorkManager」と呼びます。

コンテナプロセスデフォルトのWorkManager はコンテナプロセスごとにひとつ生成されます。

ステップ並列実行WorkManagerはユーザ操作によりジョブ実行リソースとして登録されます。ステップ並列実行WorkManagerはその属性設定に基づきステップの並列実行用のスレッド提供を行います。ステップ並列実行WorkManagerの持つ属性については「MO定義リファレンス JRCWorkManagerMO」を参照してください。
ジョブ実行リソースコンテキストへのステップ並列実行WorkManagerの登録、およびジョブ実行リソースコンテキストについては「ジョブ実行リソース」を参照してください。

関連

ジョブ実行スレッド提供機能

コンテナプロセスにおけるジョブの多重実行のためのスレッドを提供する機能、および設定の変更の機能を実装しています。 コンテナプロセスにおいて、ジョブの実行時に設定された最大実行スレッド数を上限としてスレッド多重でジョブを実行することが可能となります。

ジョブ実行スレッド提供機能設定変更

コンテナプロセスにおけるジョブの多重実行の最大実行スレッド数を設定することができます。設定はBatchContainerMO の defaultWorkManagerMaxThread 属性の値を変更することで変更可能です。

ステップ並列実行スレッド提供機能

ジョブの実行においてジョブ内のステップの並列実行のためのスレッドを提供するステップ並列実行 WorkManager 機能を実装しています。 ジョブの実行に際して「ジョブ実行リソース」の「ジョブ実行リソースコンテキストの管理」に従い、ジョブリクエストパスの中のジョブ実行アカウント・バッチアプリケーショングループ・バッチアプリケーションに対応した BatchWorkThreadManager が選択され bean としてコンテキスト中に生成されます。 生成された BatchWorkThreadManager のbean をジョブ内で TaskExecutor として参照可能となり、ジョブ内でのステップの並列実行のために利用することができます。