6. JobCenter 構成管理
6.1. キュー構成管理
6.1.10. キューアクセス制限の設定/ 解除
6.1.3.9. カスタムキュー属性
拡張カスタムジョブまたはWOBSジョブを実行するためのバッチキューは、カスタムキュー属性が付与されて いる必要が有ります。
変更はqmgr(1M) の set customjob batch_queue サブコマンドで行います。このサブコマンドの実行時、対象 のバッチキューが[DISABLE]状態である必要が有ります。
Mgr: SEt CUStomjob Batch_queue batch1
以上の手続きで、バッチキュー batch1 に カスタムキュー属性が付与されます。
また カスタムキューの設定を解除したいときは次のサブコマンドを指定してください。
Mgr: SEt NO_CUStomjob Batch_queue batch1
拡張カスタムジョブまたはWOBSジョブをカスタムキュー属性の付与されていないバッチキューに投 入した場合、ジョブの実行はエラーになります。
カスタムキュー属性を付与したバッチキューに、通常のカスタムジョブ部品および単位ジョブ部品 を実行することはできません。これらの部品をカスタムキューに投入した場合、カスタムキューは [STOPPED]状態になります。
Mgr: set no_check pipe1 ↵
6.1.5.4. 透過型機能
この属性は、キュー作成後に設定、解除することができます。詳しくは「5.5 透過型パイプキューの概要と設 定方法」を参照してください。
6.1.5.5. デマンドデリバリ機能
この属性は、キュー作成後に設定、解除することができます。詳しくは「6.7.3 デマンドデリバリ方式」を参 照してください。
6.1.5.6. 使用サーバ
この属性は、キュー作成時に必ず設定しなければなりませんが、キュー作成後でも変更が可能です。変更は qmgr(1M) の set pipe_client サブコマンドで行います。
Mgr: set pipe_client=(/usr/lib/nqs/lbpipeclient -n 3 -i 30) pipe1 ↵ 以上の手続きで使用サーバが /usr/lib/nqs/lbpipeclient に変更されます。
6.1.5.7. 目的地
この属性はキュー作成時にも定義できますが、キュー作成後でも、設定・変更・追加が可能です。
目的地とは、パイプキューに登録されたリクエストを転送する目的キューのことです。この目的地には複数の キューを設定することができます。目的地の選択順はサーバによって違います。
サーバに pipeclient を使用している場合は、選択順は固定です。
たとえば、以下のパイプキューの場合、
次に示すような結果になります。
図6.1 パイプキューの転送結果
もし定義されているキューがすべてリクエスト受け付け不可だった場合は、ある一定時間後に再転送を試みま す。再転送はある一定期間が経過するまで繰り返されます。
一定期間が経過しても転送が不可能であった場合は、その理由をリクエストを投入したユーザにメールで通知 します。
ここで説明した、再転送の間隔、転送が繰り返される期間は、 JobCenter 環境パラメータに設定したもので す。詳細については、後節で説明します。
パイプキューの目的地の定義・変更・追加は qmgr(1M) コマンドの add, set サブコマンドを用いて行います。
6.1.5.8. 目的地の定義・変更
Mgr: set destination=(batch1@host1) pipe1 ↵
以上の手続きでパイプキュー pipe1 の目的地として host1 上の batch1 キューが定義されます。この定義方法 を行うと、以前に設定されていた目的地はすべてクリアされます。
6.1.5.9. 目的地の追加
Mgr: add destination=(batch2@host1) pipe1 ↵
以上の手続きでパイプキュー pipe1 の目的地に host1 上の batch2 キューが追加されます。たとえば、すでに pipe1 の目的地として batch1 が定義されていたら、 pipe1 の目的地はbatch1 と batch2 になります。
また、転送先にリモートホスト上のキューを定義すると、そのパイプキューはいわゆるネットワークパイプ キューとなります。 JobCenter のネットワーク機能で最も重要なリモートホストへのリクエストの投入を行え るようにするには、このネットワークパイプキューを作成する必要があります。
目的地のキューの指定は以下の形式で行います。
キュー名 @ ホスト名
したがってネットワークパイプキューを作成する場合は、 "ホスト名 "にリモートホストの名前を指定すること になります。
Mgr: set destination=(batch2@host2) netpipe1 ↵
以上の手続きをホスト host1 上で行うと、 host1 上の netpipe1 パイプキューが、リモートホスト host2 上 の batch1 キューにリクエストを投入するためのネットワークパイプキューになります。
6.1.5.10. 再起動属性
デーモン再起動時のパイプキューの停止等の機能を、バッチキューと同様にキューの属性として定義します。
変更は qmgr(1M) の set queue reboot_mode サブコマンドで行います。
詳細は、「6.1.3 バッチキュー属性定義(その他)」を参照してください。
6.1.6. ネットワークキューの生成
JobCenter を運用していく上で、新たなネットワークキューが必要になることや、運用形態の変更などでネッ トワークキューの追加が必要になることがあります。その場合は、既存のネットワークキューとの関係に注意 して新しいネットワークキューを作成してください。
ネットワークキューの作成方法については「5.2 JobCenterキューの作成」、「5.3.3 ネットワークキュー」を 参照してください。
本機能はWindows版および現在のバージョンのUNIX版ではサポートしていない機能となります。
6.1.7. ネットワークキュー属性定義
ネットワークキューの属性としては、キュープライオリティ、同時転送可能リクエスト数、使用サーバ、転送 先ホストがあります。
本機能はWindows版および現在のバージョンのUNIX版ではサポートしていない機能となります。
6.1.7.1. キュープライオリティ
バッチキューの属性定義で説明したとおりです。
6.1.7.2. 同時転送可能リクエスト数
バッチキューの同時実行可能リクエスト数と同じです。
6.1.7.3. 使用サーバ
この属性は、キュー作成時に指定しなければ環境パラメータに登録されているキューサーバが使用されます。
環境パラメータでも設定されていない場合、ネットワークリクエストの処理を、キューサーバを使用せずに行 います。
本属性はキュー作成後でも変更が可能です。変更は qmgr(1M) の set network_client サブコマンドで行いま す。
Mgr: set network_client=(/usr/lib/nqs/netclient2) pipe1 ↵
以上の手続きで使用サーバが /usr/lib/nqs/netclient2 に変更されます。
6.1.7.4. 転送先ホスト
この属性は、キュー作成後は変更できません。キュー作成時に必ず設定してください。
6.1.8. キューの削除
キューの削除は qmgr(1M) コマンドの delete queue サブコマンドで行います。このサブコマンドはキューの タイプに関係なく使用できます。ただし、削除しようとするキューが enable 状態であったり、キュー内にリク エストがある場合は削除できません。
Mgr: delete queue batch1 ↵
以上の手続きでバッチキュー batch1 が削除できます。
6.1.9. キュー複合体の生成/ 削除/ 属性定義
キュー複合体の説明および作成の仕方、属性の定義方法についてはすでに第 5 章で説明しましたので、ここで はキュー複合体の構成の変更、削除、属性変更について説明します。
6.1.9.1. キュー複合体の構成の変更
キュー複合体を構成しているバッチキューの削除・追加をしたい場合は、qmgr(1M) コマンドの remove queue, add queue サブコマンドを用いて行います。
Mgr: remove queue=(batch1) complex1 ↵
以上の手続きでキュー複合体 complex1 の構成メンバであったキュー batch1 が、その構成メンバから外され ます。
Mgr: add queue=(batch4) complex1 ↵
以上の手続きでキュー複合体 complex1 の構成メンバにキュー batch4 が加えられます。
6.1.9.2. キュー複合体の削除
キュー複合体の削除は qmgr(1M) コマンドの delete complex サブコマンドを用いて行います。
Mgr: delete complex complex1 ↵
以上の手続きでキュー複合体 complex1 が削除されます。
ただしキュー複合体を形成していたキューまで削除されることはありません。キュー複合体構成メンバの キューが構成メンバから解放されたと見なされます。
6.1.10. キューアクセス制限の設定/ 解除
キューには各ユーザ、グループに対してのみリクエストの投入を許可する機能があります。この機能を利用し て、キューのクラスに応じて、そのキューを使用できるユーザ、グループを制限することができます。
アクセス制限に関する状態としては以下のものがあります。
6.1.10.1. アクセス無制限状態
アクセス制限が設定されていない状態、つまりすべてのユーザ・グループが使用可能な状態のことです。
キューを作成した直後はこの状態になっています。
アクセス制限状態からこの状態に変更するには、 qmgr(1M) コマンドの set unrestricted_access サブコマン ドで行います。
6.1.10.2. アクセス制限状態
アクセスが制限されている状態です。この状態は qmgr(1M) コマンドの set no_access サブコマンドで設定し ます。
キューアクセス制限を設定するには、まずアクセス制限状態にする必要があります。アクセス制限状態に移行 した直後はスーパーユーザ以外のユーザ・グループはそのキューが使用できない状態になっています。
次に、特定のユーザ・グループにアクセス権を与えます。アクセス権の授与は qmgr(1M) コマンドの add group, add user、アクセス権の剥奪は delete group, delete user サブコマンドで行います。
たとえばキュー batch1 のアクセス権をユーザ user1 とグループ group1 に限定する場合は、まず batch1 を アクセス制限状態に移行します。
Mgr: set no_access batch1 ↵
user1 に batch1 のアクセス権を授与します。
Mgr: add user=user1 batch1 ↵
group1 に batch1 のアクセス権を授与します。
Mgr: add group=group1 batch1 ↵
以上の手順で batch1 の使用権が user1 とgroup1 だけに制限されます。なおスーパーユーザーは、明示的な アクセス権の有無にかかわらずいつでも使用が可能です。
アクセス権の剥奪方法は以下のとおりです。
Mgr: delete user=user1 batch1 ↵