7.1.3 QUEUEジョブ,サブミットジョブ用データベースについて検討する
QUEUEジョブ,サブミットジョブ用データベースにはISAMを使用します。jpqimportコマンドや動的構成定義変更によって定義されたエージェント,キュー,および排他実行リソースの定義情報や,登録されてから終了するまでのジョブの情報や状態を管理しています。QUEUEジョブ,サブミットジョブ用データベースのデータベーステーブルの詳細について,次の表に示します。
- 注※
-
可変長があるテーブルは,可変長部分以外のフィールドの長さの合計を表しています。
QUEUEジョブ,サブミットジョブ用データベースは,デフォルトで同期書き込みモードになっています。このモードで使用すると,QUEUEジョブ,サブミットジョブ用データベース内の書き込み順序が保証でき,信頼性が向上します。データファイル更新モードの設定については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド 20.5 ジョブ実行環境設定」を参照してください。
- 注意事項
-
QUEUEジョブ,サブミットジョブ用データベースのISAMファイルには,直接シンボリックリンクを作成しないでください。再編成の際,ISAMファイルを移動,再作成するため,シンボリックリンクが切れてしまい,ISAMファイルがデータベース格納ディレクトリに新たに作成されてしまいます。
データベース格納ディレクトリのファイルは,ディレクトリで管理しているため,シンボリックリンクを作成したい場合は,データベース格納ディレクトリを指定して作成してください。
QUEUEジョブ,サブミットジョブを使用する場合,次の内容について検討します。
-
ISAMファイルが持つオプション機能についての検討
-
ISAMファイルの障害対策についての検討
-
ISAMファイルのメンテナンスについての検討
- 〈この項の構成〉
(1) 運用方法について検討する
必要に応じて次のオプションを設定してください。
-
同期書き込みを設定する。
-
データベースの自動再編成機能を有効にする。
(a) 同期書き込みの設定
ISAMデータベースには書き込みモードの設定があり,同期書き込みか非同期書き込みが選べます。非同期書き込みにすると性能は向上しますが,フェールオーバー時にデータファイルとキーファイルの整合性が取れなくなる場合があります。クラスタシステムで運用する場合はフェールオーバー時のデータ保護のために,ISAMの書き込み方法を同期書き込みに設定することを推奨します。同期書き込みの設定をした場合,テーブル間で矛盾が起きないよう,JP1/AJS3が書き込み順序によって整合性を保ちます。ただし,同期書き込みの場合でも,OSによるディスク書き込み処理途中での電源断で,ファイルが壊れるおそれがあるため注意してください。
ISAMを利用している場合,ファイルの整合性だけに問題がある場合は,再編成を実施することで修復できます。ただし,電源断などによるディスク・ファイル障害が発生したときは,同期・非同期の設定に関係なく,タイミングによっては,修復できない状態になるおそれがあります。このような事態に備えて,QUEUEジョブ,サブミットジョブ実行環境定義のバックアップを随時実施する運用を検討してください。
(b) 自動再編成の設定
ISAMデータベースには自動再編成機能があり,JP1/AJS3のサービス起動時にQUEUEジョブ,サブミットジョブ実行環境のデータベースを自動的に再編成するかどうかを選べます。再編成機能を有効にしないと,無効領域が増大する,可変長テーブルのフラグメンテーションが発生する,などの要因で長時間運転していると徐々に処理性能が劣化していきます。そのため,自動再編成の設定をしてください。ISAMデータベースの自動再編成の設定手順については,「7.1.2(2) ISAMファイル自動再編成機能の設定(Windowsホストの場合)」(Windowsの場合)または「7.1.2(3) ISAMファイル自動再編成機能の設定(UNIXホストの場合)」(UNIXの場合)を参照してください。
また,クラスタシステムで運用する場合は,ISAMの自動再編成機能を有効にして,JP1/AJS3の起動時に自動的に回復するように設定することを推奨します。これは,フェールオーバー(業務処理を実行系のサーバから待機系のサーバへ切り替えること)のタイミングによって,データ部と索引部が不整合になった場合,回復するにはISAMデータベースの再編成が必要なためです。ただし,ISAMデータベースを自動再編成する際,一つ一つファイルを順次再編成していくため,QUEUEジョブやサブミットジョブの実行結果保存数が多くなると,ISAMの再編成の実行時間が長く掛かり,JP1/AJS3のサービス起動時間も長く掛かることがあります。クラスタ運用している場合,フェールオーバーの繰り返しとなることがあるため,クラスタソフトの起動タイムアウト時間を調整してください。ISAMの再編成に必要な時間は,実レコード件数に比例します。クラスタソフトの起動タイムアウト時間が調整できない場合は,ISAMファイルが肥大化しない設定(ジョブ情報保存日数の調整など)を実施し,再編成所要時間が短くなるようにしてください。
なお,JP1/AJS3のサービス起動を常に高速にし,手動で再編成を実施する運用の場合は,自動再編成機能を無効にしてください。
- 重要
-
再編成時には,対象の物理ホストまたは論理ホストの作業ディレクトリ(環境設定パラメーターWorkPathに指定したマネージャープロセス実行時のワークディレクトリ)があるドライブに,再編成対象のQUEUEジョブ,サブミットジョブの実行環境のISAMファイルの中で最もサイズが大きいファイルの2倍程度の空き容量が必要です。また,QUEUEジョブ,サブミットジョブの実行環境データベースディレクトリがあるドライブに,再編成対象のISAMファイルの中で最もサイズが大きいファイルと同じ程度の空き容量が必要です。
(2) ISAMデータベースの障害対策
ISAMデータベースが不正になった場合は,ISAMデータベースを再作成する必要があります。ISAMデータベースの状態の確認方法,およびISAMデータベースの再作成方法については,マニュアル「JP1/Automatic Job Management System 3 トラブルシューティング 2.11 ISAMファイルが不正になった場合の対処」を参照してください。
(3) ISAMデータベースのメンテナンス
メンテナンスモードを使用したJP1/AJS3の長時間連続運用の方法について説明します。メンテナンスモードでは,メンテナンス前に実行されている業務が途切れることなく,ISAMデータベースを再編成できます。
メンテナンスモードでメンテナンスを実施するには,業務の実行が少ない時間帯にjajs_maintainコマンドを実行します。
jajs_maintainコマンドの実行例を次に示します。
jajs_maintain -m manager
jajs_maintainコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 4. 特別な運用で使用するコマンド jajs_maintain」を参照してください。
メンテナンスモードの注意事項については,「(c) メンテナンスモードの注意事項」を参照してください。
JP1/AJS3が用意するメンテナンスモードは,メンテナンスをするために,システム構成中の一部の機能を一時的に制限する機能です。
一時的に機能が制限されるため,縮退運転となりますが,システムとしての運用が停止することはありません。また,縮退運転中にメンテナンスモードによって制限された機能を使用しようとした場合,エラーにはならないで,縮退解除後に実行されます。
(a) メンテナンスモードの使用目的
JP1/AJS3のメンテナンスモードでできることは,ISAMデータベースの再編成です。
ISAMをデータベースに使用している場合,仮に1日に10,000ジョブを実行したときに,約1年に1回メンテナンスを実施する必要があるとすると,ジョブの実行件数が倍(1日に20,000ジョブ)になれば,再編成の実施サイクルは半分(約半年に1回)という計算になります。ジョブの実行件数が多くなればなるほど,メンテナンスの頻度が高くなり,それだけ手間とコストが掛かります。
JP1/AJS3がメンテナンスモードを用意する前は,システムをいったん停止し,メンテナンス実施後に再起動という形でしたが,JP1/AJS3が用意するメンテナンスモードを使用すると,JP1/AJS3を一時的に縮退運転するだけでメンテナンスができます。また,メンテナンスを実施するjajs_maintainコマンドは,JP1/AJS3からスケジュール実行できるので,メンテナンスを意識しないで長時間運用ができるようになります。jajs_maintainコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 4. 特別な運用で使用するコマンド jajs_maintain」を参照してください。
JP1/AJS3 - Managerのマネージャー機能だけを順次停止してメンテナンスを実施できます。このモードでは,他ホストからのジョブ実行要求やjpqjobsubコマンドからの要求など,QUEUEジョブ,サブミットジョブ実行制御のマネージャーに対する要求を拒否します。ただし,QUEUEジョブ,サブミットジョブ実行制御エージェントで変化する状態を保持することには対応できるため,起動済みジョブの情報を消失することはありません。ただし,エージェントとマネージャー間で未通知のジョブ状態情報を蓄積するため,メモリーをジョブ数に比例して消費するので,ジョブ実行が少ない時間帯に使用してください。
メンテナンス中は,すべてのデータベースアクセスプロセスの機能を停止しますが,QUEUEジョブ,サブミットジョブ実行制御は,再編成が終わり次第起動します。
(b) メンテナンスを実施する時期を見積もる
QUEUEジョブ,サブミットジョブで使用するデータベースでは,JP1/AJS3サービスを連続運用し,400万ジョブを実行した段階で性能が約20%劣化します。
仮に,1日に10,000ジョブを実行する場合は,約1年に1回,ISAMファイルを再編成する必要があります。ジョブの実行件数が倍(1日に20,000ジョブ)になれば,再編成の実施サイクルは半分(約半年に1回)という計算になります。これを一つの目安としてファイル中の無効領域を監視し,メンテナンスする時期を見積もってください。
なお,JP1/AJS3サービス起動時にISAMファイルを自動的に再編成する「ISAMファイル自動再編成機能」を使用して,定期的に再編成している環境の場合,メンテナンスモードによる再編成の必要はありません。
(c) メンテナンスモードの注意事項
メンテナンスモードを利用した縮退中は,JP1/AJS3の機能によっては制限が掛かります。運用環境および実施時間帯を考慮してメンテナンスモードを利用してください。
■ メンテナンスモードとユーザー操作についての制限
メンテナンスモードとユーザー操作についての制限の関係を次の表に示します。
ユーザー操作 |
操作可否 |
---|---|
JP1/AJS3 - ViewからのQUEUEジョブの実行※1 |
× |
セットアップ時に使用するコマンドの実行 |
○ |
環境のカスタマイズに使用するコマンドの実行 |
×※1 |
JP1/AJS3を制御するコマンドの実行 |
×※2 |
ユニットを操作するコマンドの実行 |
○ |
ジョブの実行に使用するコマンドの実行 |
○ |
組み込みDBを操作するコマンド |
○ |
障害時に使用するコマンド |
○ |
特別な運用で使用するコマンド |
×※3 |
- (凡例)
-
○:操作できる
×:操作できない
- 注
-
この表の「ユーザー操作」は,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 1.5 コマンド一覧」に記載しているコマンドの分類に対応しています。
- 注※1
-
jpqdbcondコマンド以外のコマンドは使用できます。縮退中にQUEUEジョブを実行した場合,ジョブが起動失敗になります。このとき,JP1/AJS3 - Viewの[実行結果詳細]ダイアログボックスにメッセージKAVU0218-Eを表示します。
- 注※2
-
jajs_stopコマンド,jajs_stop.clusterコマンド,jajs_spmd_stopコマンド,およびjajs_killall.clusterコマンド以外は使用できます。
- 注※3
-
QUEUEジョブ,サブミットジョブ実行環境で使用するコマンド以外は使用できます。縮退中にQUEUEジョブを実行した場合,統合トレースログにメッセージKAVU4500-WおよびメッセージKAVU0218-Eを出力して,ジョブが異常終了します。
この表で「×(操作できない)」としている操作はしないでください。
なお,各ユーザー操作のコマンドについては,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス 1.5 コマンド一覧」を参照してください。
■ メンテナンスモードと他ホスト,他システムとの連携機能についての制限
メンテナンスモードと他ホストのJP1/AJS3や他システムとの連携機能についての制限の関係を次の表に示します。
他ホスト,他システムとの連携機能 |
動作可否 |
---|---|
他ホストのJP1/AJS3からのQUEUEジョブ実行※ |
× |
他システム(JP1/OJEなど)からのジョブ実行 |
× |
他ホストへ転送するリモートジョブネット実行※ |
× |
他ホストから転送されるリモートジョブネット実行 |
× |
- (凡例)
-
×:動作しない
- 注※
-
定義元ホストでリモートジョブネットが起動してから終了するまでの間,メンテナンスモードにしないでください。
他ホストや他システムは,連携先のホストがメンテナンスモード中であることを認識できないため,ジョブは「異常終了」状態になります。メンテナンスできる時間帯を考慮した上で,メンテナンスを実施してください。
(4) QUEUEジョブ,サブミットジョブ用データベースに関する注意事項
-
ジョブネットやジョブの実行中に,システム障害などでJP1/AJS3のサービスの処理が中断した場合,JP1/AJS3のISAMファイルの内容に不整合が発生することがあります。これは,キャッシュメモリー上の内容がディスクに書き込まれない場合に発生します。不整合が発生した場合,JP1/AJS3のサービスを起動しても,処理途中だったジョブネットに対する操作は保証されません。システム障害などでJP1/AJS3のサービスの処理が中断した場合には,JP1/AJS3起動前にISAMファイルを再編成してください。
なお,データベースの再編成に失敗した場合は,再編成できなかったISAMファイルを再作成するか,またはJP1/AJS3をコールドスタートしてください。
-
JP1/AJS3で使用するISAMファイルは,再編成運用が必要です。
可変長データを保持するテーブルで徐々に性能が劣化するため,400万ジョブ実行時点で再編成するように計画してください。
また,QUEUEジョブ,サブミットジョブ実行環境データベースのJPQJOBINFO.K02が20メガバイトを超えないように監視してください。
この値を超えても再編成をしないで運用を続けると,性能が急激に悪くなるおそれがあります。
ISAMデータベースの再編成については,マニュアル「JP1/Automatic Job Management System 3 運用ガイド 9.3 QUEUEジョブ,サブミットジョブを使用している場合のデータベース再編成」を参照してください。
-
JP1/AJS3で使用するISAMデータベースは,テーブルを構成するファイルのサイズが2ギガバイトを超えられません。
ISAMのデータファイルのサイズは,テーブル内に格納されるピーク時のレコード件数によって決まります。
2ギガバイトに近くになると,ディスクI/Oの増加による性能低下や,再編成時の作業ディスク容量を確保できないなどの問題が発生するおそれがあります。レコード件数を削減してできるだけファイルサイズが小さくなるような運用を検討してください。
運用によってファイルが肥大化しやすいテーブルについては,次の目安によってファイルサイズを制御できます。
-
QUEUEジョブ,サブミットジョブ実行環境データベースのJPQJOBINFOテーブル
標準構成の場合,格納できるレコードは20万件未満です。
ジョブ実行情報保存日数内で稼働したジョブの数が総レコード件数となるので,保存日数を小さくするとファイルサイズが肥大化しにくくなります。
-