第20章 バッチアプリケーションの設定
JBoss EAP 8.1 は Jakarta Batch をサポートします。バッチアプリケーションを実行するための環境を設定し、batch-jberet サブシステムを使用してバッチジョブを管理できます。
バッチアプリケーションの開発に関する詳細は、JBoss EAP 開発ガイド の Jakarta バッチアプリケーション開発 を参照してください。
20.1. バッチジョブの設定 リンクのコピーリンクがクリップボードにコピーされました!
JBeret 実装を基にした batch-jberet サブシステムを使用してバッチジョブを設定できます。
デフォルトの batch-jberet サブシステム設定は、インメモリージョブリポジトリーとデフォルトのスレッドプールの設定を定義します。
<subsystem xmlns="{BatchSubsystemNamespace}">
<default-job-repository name="in-memory"/>
<default-thread-pool name="batch"/>
<job-repository name="in-memory">
<in-memory/>
</job-repository>
<thread-pool name="batch">
<max-threads count="10"/>
<keepalive-time time="30" unit="seconds"/>
</thread-pool>
</subsystem>
デフォルトでは、サーバーの一時停止中に停止したバッチジョブはサーバーの再開時に再度開始されます。restart-jobs-on-resume プロパティーを false に設定すると STOPPED 状態のジョブをそのままにすることができます。
/subsystem=batch-jberet:write-attribute(name=restart-jobs-on-resume,value=false)
バッチ ジョブリポジトリー および スレッドプール を設定することもできます。
20.1.1. バッチジョブリポジトリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、管理 CLI を使用してバッチジョブ情報を保存するインメモリーおよび JDBC ジョブリポジトリーを設定する方法を説明します。管理コンソールでは、Configuration
インメモリージョブリポジトリーの追加
バッチジョブ情報をメモリーに保存するジョブリポジトリーを追加できます。
/subsystem=batch-jberet/in-memory-job-repository=REPOSITORY_NAME:add
JDBC ジョブリポジトリーの追加
バッチジョブ情報をデータベースに保存するジョブリポジトリーを追加できます。データソースの名前を指定してデータベースに接続する必要があります。
/subsystem=batch-jberet/jdbc-job-repository=REPOSITORY_NAME:add(data-source=DATASOURCE)
データソースの詳細は、JBoss EAP データソースについて を参照してください。
デフォルトのジョブリポジトリーの設定
インメモリーまたは JDBC ジョブリポジトリーをバッチアプリケーションのデフォルトのジョブリポジトリーとして設定できます。
/subsystem=batch-jberet:write-attribute(name=default-job-repository,value=REPOSITORY_NAME)
サーバーをリロードする必要があります。
reload
20.1.2. バッチスレッドプールの設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、管理 CLI を使用してバッチジョブに使用するスレッドプールとスレッドファクトリーを設定する方法を説明します。管理コンソールでは、Configuration
- スレッドプールの設定
-
スレッドプールを追加するときに
max-threadsを指定する必要があります。パーティションのジョブが想定どおりに実行されるように 2 つのスレッドが予約されているため、3よりも大きい値を常に設定してください。
手順
スレッドプールを追加します。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:add(max-threads=10)必要な場合は
keepalive-timeの値を設定します。/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:write-attribute(name=keepalive-time,value={time=60,unit=SECONDS})
- スレッドファクトリーの使用
スレッドファクトリーを追加します。
/subsystem=batch-jberet/thread-factory=THREAD_FACTORY_NAME:addスレッドファクトリーの属性を設定します。
-
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)サーバーをリロードする必要があります。
reload
- デフォルトスレッドプールの設定
- 別のスレッドプールをデフォルトのスレッドプールとして設定します。
/subsystem=batch-jberet:write-attribute(name=default-thread-pool,value=THREAD_POOL_NAME)サーバーをリロードする必要があります。
reload
- スレッドプールの統計の表示
-
read-resource管理 CLI 操作を使用するとバッチスレッドプールのランタイム情報を表示できます。このランタイム情報を表示するにはinclude-runtime=trueパラメーターを使用する必要があります。
/subsystem=batch-jberet/thread-pool=THREAD_POOL_NAME:read-resource(include-runtime=true) { "outcome" => "success", "result" => { "active-count" => 0, "completed-task-count" => 0L, "current-thread-count" => 0, "keepalive-time" => undefined, "largest-thread-count" => 0, "max-threads" => 15, "name" => "THREAD_POOL_NAME", "queue-size" => 0, "rejected-count" => 0, "task-count" => 0L, "thread-factory" => "THREAD_FACTORY_NAME" } }管理コンソールの Runtime タブで Batch サブシステムを選択して、バッチスレッドプールのランタイム情報を表示することもできます。
-