14.7.1 スケジューラーサービスの多重起動の設定

スケジューラーサービスは,ジョブグループを管理する制御単位です。多重起動させると,ジョブグループをサービスごとに管理できるようになります。

スケジューラーサービスの多重起動を設定するためには,まず,追加するサービスの名称などの情報を設定します。次に,そのサービス用のデータベースを新規に作成します。

スケジューラーサービスの多重起動の設定手順,および追加したスケジューラーサービスの削除手順を次に示します。

論理ホストへのスケジューラーサービスの追加,および論理ホストに追加したスケジューラーサービスの削除については,「18.4.7 論理ホストのスケジューラーサービスの多重起動の設定」を参照してください。

<この項の構成>
(1) スケジューラーサービスを多重起動する
(2) 追加したスケジューラーサービスを削除する

(1) スケジューラーサービスを多重起動する

スケジューラーサービスの多重起動の設定手順を次に示します。

  1. JP1/AJS2のサービスを停止する。
    次のコマンドを実行して,プロセスがすべて停止していることを確認します。

    # /etc/opt/jp1ajs2/jajs_stop
    # /opt/jp1ajs2/bin/jajs_spmd_status

  2. 次のファイルをviなどのエディターで開く。

    /etc/opt/jp1ajs2/conf/Schedule.conf

    Schedule.conf(スケジューラーサービス環境設定ファイル)に書かれている内容の詳細については,「14.1.2 スケジューラーサービス環境設定ファイルの環境設定パラメーター一覧」または「14.1.3 スケジューラーサービス環境設定パラメーターの定義内容」を参照してください。
  3. スケジューラーサービスの多重起動のために必要な項目を追加する。
    Schedule.confの[JP1_DEFAULT¥JP1AJSMANAGER¥AJSROOT1]の内容を参考にして,追加するスケジューラーサービスの環境を設定します。設定内容は,ファイルの最後に追加します。
    なお,退避情報ディレクトリ(環境設定パラメーターAJSBKUROOTで設定するディレクトリ)以外は,自ホスト内(物理ホストとすべての論理ホスト)に設定されている,ほかのスケジューラーサービスが使用するディレクトリと重複しないようにしてください。また,ほかのスケジューラーサービスが使用するディレクトリの配下にも設定しないでください。
     
    (例)「AJSROOT2」というサービスを追加する場合

     [JP1_DEFAULT¥JP1AJSMANAGER¥AJSROOT2]
     "AJSBKUROOT"="/var/opt/jp1ajs2/backup/schedule2"
     "AJSCHARCODE"="SJIS"
     "AJSDBDIRECTORY"="/var/opt/jp1ajs2/database/schedule/AJSROOT2"
     "AJSDBTYPE"="ISAM"
     "AJSLOG"="all"
     "AJSSERVICEID"=dword:00000002
     "AJSSYSLOG"="none"
     "AJSTMPDIR"="/var/opt/jp1ajs2/tmp/schedule2"
     "AUTOSTART"="yes"
     "EXECDEFER"="oneday"
     "HNTRLOGLEVEL"="error"
     "ISAMWRITEMODE"="flush"
     "JOBINFDIR"="/var/opt/jp1ajs2/jobinf2"
     "JOBLOG"="all"
     "JOBSTATUSPORT"="jp1ajs2report2"
     "JOBSYSLOG"="none"
     "NETLOG"="all"
     "NETSYSLOG"="none"
     "OPELOG"="all"
     "OVERSCHEDULE"="exec"
     "RDBAUTHID"=""
     "RDBUSER"=""
     "SESSIONTIMEOUT"=dword:00000078
     "STARTMODE"="warm"
     "SUPPRESS"="none"
     "SYSLOGCODE"="C"
     "TABLENAMEPOSTFIX"=""
     "TABLENAMEPREFIX"="AJS"

  4. ファイルを保存し,次のコマンドを実行する。

    jbssetcnf 設定ファイル名

    jbssetcnfコマンドのパスは,「/opt/jp1base/bin/jbssetcnf」です。
    jbssetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  5. 手順3で設定したディレクトリをmkdirコマンドなどで作成する。
  6. 手順3のJOBSTATUSPORTパラメーターに指定したジョブ状態通知ポートのサービス名に対するポート番号を設定する。
    /etc/servicesファイルをエディターなどで開き,ポート番号を追加します。このとき,既存のポート番号と重複しないようにしてください。
    (例)ポート番号を「20248」として設定する場合

    jp1ajs2report2 20248/tcp

  7. 次のコマンドを実行して,追加したスケジューラーサービス用のJP1/AJS2データベースを作成する。

    ajssetup -F [スケジューラーサービス名]

    (例)「AJSROOT2」というサービスのデータベースを作成する場合

    ajssetup -F AJSROOT2

  8. キューレスジョブを利用する場合は,キューレスジョブのセットアップをする。
    次のコマンドを実行します。

    ajsqlsetup -F [スケジューラーサービス名]

  9. 組み込みDBを使用する場合は組み込みDBに移行する。
    組み込みDBセットアップツール(ajsembdbsetupスクリプト)を使用して,標準データベースを組み込みDBに移行します。
  10. JP1/AJS2サービスを再起動する。
    設定した内容でスケジューラーサービスが追加され,起動します。
多重起動時のコマンド実行についての補足事項
スケジューラーサービスを多重起動している場合,「-F サービス名」オプションを指定しないでコマンドを実行すると,デフォルトのスケジューラーサービスに対する操作となります。
環境変数AJSCONFにサービス名を指定しておくと,-Fオプションを省略できます。

(2) 追加したスケジューラーサービスを削除する

追加したスケジューラーサービスの削除手順を次に示します。

  1. jajs_spmd_stopコマンドを実行して,JP1/AJS2サービスを停止する。
    論理ホストのJP1/AJS2マネージャーも含め,すべてのJP1/AJS2サービスを停止してください。
  2. 次に示すコマンドを実行して,JP1/AJS2 Monitorサービスを停止する。

    ajsinetd_startstop stop

    ajsinetd_startstopコマンドのパスは,「/etc/opt/jp1ajs2/ajsinetd_startstop」です。
  3. ajsshmdelコマンドを実行して,環境設定情報を削除する。
    ajsshmdelコマンドのパスは,「/opt/jp1ajs2/bin/ajsshmdel」です。
    (例)shの場合

     /opt/jp1ajs2/bin/ajsshmdel >/dev/null 2>&1

    (例)cshの場合

     /opt/jp1ajs2/bin/ajsshmdel >&/dev/null

  4. スケジューラーサービスを追加したときに作成したディレクトリを削除する。
  5. 物理ホストまたは論理ホストの環境設定情報をファイルに退避する。
    次に示すコマンドを実行します。

    jbsgetcnf [-h 論理ホスト名] > 退避ファイル名

    物理ホストの場合は,-hオプションを指定しないでください。
    jbsgetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  6. 削除するスケジューラーサービスの名称を指定し,環境設定情報から削除する。
    次に示すコマンドを実行します。

    jbsunsetcnf -h 論理ホスト名 -c JP1AJSMANAGER
               -n 削除するスケジューラーサービス名

    物理ホストからスケジューラーサービスを削除する場合は,「論理ホスト名」の部分に「JP1_DEFAULT」と入力します。
    jbsunsetcnfコマンドの詳細については,マニュアル「JP1/Base 運用ガイド」を参照してください。
  7. JP1/AJS2サービスを起動する。
    追加したスケジューラーサービスが削除されます。