第22章 バッチアプリケーションの設定
JBoss EAP 7 には JSR-352 に定義されている Java バッチアプリケーションのサポートが導入されました。バッチアプリケーションの Jakarta に相当するのは Jakarta Batch です。バッチアプリケーションを実行するための環境を設定し、batch-jberet サブシステムを使用してバッチジョブを管理できます。
バッチアプリケーションの開発に関する詳細は、JBoss EAP 開発ガイド のJakarta バッチアプリケーション開発を参照してください。
22.1. batch ジョブの設定 リンクのコピーリンクがクリップボードにコピーされました!
JBeret 実装を基にした batch-jberet サブシステムを使用してバッチジョブを設定できます。
デフォルトの batch-jberet サブシステム設定は、インメモリージョブリポジトリーとデフォルトのスレッドプールの設定を定義します。
デフォルトでは、サーバーの一時停止中に停止したバッチジョブはサーバーの再開時に再度開始されます。restart-jobs-on-resume プロパティーを false に設定すると STOPPED 状態のジョブをそのままにすることができます。
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
バッチ ジョブリポジトリー および スレッドプール を設定することもできます。
22.1.1. バッチジョブリポジトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
本項では、管理 CLI を使用してバッチジョブ情報を保存するインメモリーおよび JDBC ジョブリポジトリーを設定する方法を説明します。管理コンソールでは、Configuration
インメモリージョブリポジトリーの追加
バッチジョブ情報をメモリーに保存するジョブリポジトリーを追加できます。
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
JDBC ジョブリポジトリー
バッチジョブ情報をデータベースに保存するジョブリポジトリーを追加できます。データソースの名前を指定してデータベースに接続する必要があります。
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
デフォルトのジョブリポジトリーの設定
インメモリーまたは JDBC ジョブリポジトリーをバッチアプリケーションのデフォルトのジョブリポジトリーとして設定できます。
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
サーバーをリロードする必要があります。
reload
reload
22.1.2. バッチスレッドプールの設定 リンクのコピーリンクがクリップボードにコピーされました!
本項では、管理 CLI を使用してバッチジョブに使用するスレッドプールとスレッドファクトリーを設定する方法を説明します。管理コンソールでは、Configuration
スレッドプールの設定
スレッドプールを追加するときに max-threads を指定する必要があります。 パーティションのジョブが想定どおりに実行されるように 2 つのスレッドが予約されているため、3 よりも大きい値を常に設定してください。
スレッドプールを追加します。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な場合は
keepalive-timeの値を設定します。/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
スレッドファクトリーの使用
スレッドファクトリーを追加します。
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:add
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:addCopy to Clipboard Copied! Toggle word wrap Toggle overflow スレッドファクトリーの属性を設定します。
-
group-name- このスレッドファクトリーに作成するスレッドグループの名前。 -
priority- 作成されたスレッドの優先度。 thread-name-pattern- スレッドの名前の作成に使用されるテンプレート。以下のパターンを使用できます。-
%%- パーセント記号 -
%t- ファクトリーごとのスレッドシーケンス番号 -
%g- グローバルスレッドシーケンス番号 -
%f- ファクトリーシーケンス番号 -
%i- スレッド ID
-
-
スレッドファクトリーをスレッドプールに割り当てます。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=thread-factory,value=THREAD_FACTORY_NAME)Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードする必要があります。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
デフォルトスレッドプールの設定
別のスレッドプールをデフォルトのスレッドプールとして設定できます。
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)
サーバーをリロードする必要があります。
reload
reload
スレッドプールの統計表示
read-resource 管理 CLI 操作を使用するとバッチスレッドプールのランタイム情報を表示できます。このランタイム情報を表示するには include-runtime=true パラメーターを使用する必要があります。
管理コンソールの Runtime タブで Batch サブシステムを選択して、バッチスレッドプールのランタイム情報を表示することもできます。