QUEUEジョブ,サブミットジョブ用データベースにはISAMを使用します。jpqimportコマンドや動的構成定義変更によって定義されたエージェント,キュー,および排他実行リソースの定義情報や,登録されてから終了するまでのジョブの情報や状態を管理しています。QUEUEジョブ,サブミットジョブ用データベースのデータベーステーブルの詳細について,次の表に示します。
表7-1 QUEUEジョブ,サブミットジョブの実行環境で使用するデータベースのテーブル
テーブル名 | 内容 | 行長※ (単位:バイト) | 可変長 (単位:バイト) | キー数 |
---|---|---|---|---|
JPQSYSINFO | システム制御情報 | 28 | なし | 1 |
JPQAGTINFO | エージェント定義情報 | 524 | なし | 2 |
JPQSCHINFO | スケジュール(実行多重度)情報 | 12 | なし | 1 |
JPQQUEINFO | キュー定義情報 | 280 | なし | 2 |
JPQCONINFO | キューエージェント接続情報 | 12 | なし | 1 |
JPQRESINFO | 排他実行リソース定義情報 | 68 | なし | 2 |
JPQJOBINFO | ジョブ定義情報 | 5,860 | なし | 2 |
JPQJOBCTRL | ジョブ制御情報 | 656 | なし | 2 |
JPQENVINFO | 環境変数情報 | 516 | 4以上 | 1 |
JPQTRANSINFO | 転送ファイル情報 | 1,036 | なし | 1 |
JPQNFYINFO | 状態通知情報(クライアント名,通知先,ポートIDなど) | 540 | なし | 1 |
QUEUEジョブ,サブミットジョブ用データベースは,デフォルトで同期書き込みモードになっています。このモードで使用すると,QUEUEジョブ,サブミットジョブ用データベース内の書き込み順序が保証でき,信頼性が向上します。データファイル更新モードの設定については,マニュアル「JP1/Automatic Job Management System 3 構築ガイド2 2.3 ジョブ実行環境設定」を参照してください。
QUEUEジョブ,サブミットジョブを使用する場合,次の内容について検討します。
(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のサービス起動を常に高速にし,手動で再編成を実施する運用の場合は,自動再編成機能を無効にしてください。
(2) ISAMデータベースの障害対策
ISAMデータベースが不正になった場合は,ISAMデータベースを再作成する必要があります。ISAMデータベースの状態の確認方法,およびISAMデータベースの再作成方法については,マニュアル「JP1/Automatic Job Management System 3 トラブルシューティング 2.12 ISAMファイルが不正になった場合の対処」を参照してください。
(3) ISAMデータベースのメンテナンス
メンテナンスモードを使用したJP1/AJS3の長時間連続運用の方法について説明します。メンテナンスモードでは,メンテナンス前に実行されている業務が途切れることなく,ISAMデータベースを再編成できます。
メンテナンスモードでメンテナンスを実施するには,業務の実行が少ない時間帯にjajs_maintainコマンドを実行します。
jajs_maintainコマンドの実行例を次に示します。
jajs_maintain -m manager
jajs_maintainコマンドの詳細については,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 3. 特別な運用で使用するコマンド 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 コマンドリファレンス2 3. 特別な運用で使用するコマンド 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の機能によっては制限が掛かります。運用環境および実施時間帯を考慮してメンテナンスモードを利用してください。
●メンテナンスモードとユーザー操作についての制限
メンテナンスモードとユーザー操作についての制限の関係を次の表に示します。
表7-2 メンテナンスモードとユーザー操作の可否
ユーザー操作 | 操作可否 |
---|---|
JP1/AJS3 - ViewからのQUEUEジョブの実行※1 | × |
セットアップ時に使用するコマンドの実行 | ○ |
環境のカスタマイズに使用するコマンドの実行 | ×※1 |
JP1/AJS3を制御するコマンドの実行 | ×※2 |
ユニットを操作するコマンドの実行 | ○ |
ジョブの実行に使用するコマンドの実行 | ○ |
組み込みDBを操作するコマンド | ○ |
障害時に使用するコマンド | ○ |
特別な運用で使用するコマンド | ×※3 |
この表で「×(操作できない)」としている操作はしないでください。
なお,各ユーザー操作のコマンドについては,マニュアル「JP1/Automatic Job Management System 3 コマンドリファレンス2 1.5 コマンド一覧」を参照してください。
●メンテナンスモードと他ホスト,他システムとの連携機能についての制限
メンテナンスモードと他ホストのJP1/AJS3や他システムとの連携機能についての制限の関係を次の表に示します。
表7-3 メンテナンスモードと他ホスト,他システムとの連携機能の動作可否
他ホスト,他システムとの連携機能 | 動作可否 |
---|---|
他ホストのJP1/AJS3からのQUEUEジョブ実行※ | × |
他システム(JP1/NQSEXECやJP1/OJEなど)からのジョブ実行 | × |
他ホストへ転送するリモートジョブネット実行※ | × |
他ホストから転送されるリモートジョブネット実行 | × |
他ホストや他システムは,連携先のホストがメンテナンスモード中であることを認識できないため,ジョブは「異常終了」状態になります。メンテナンスできる時間帯を考慮した上で,メンテナンスを実施してください。
(4) QUEUEジョブ,サブミットジョブ用データベースに関する注意事項