18.4.7 論理ホストのスケジューラーサービスの多重起動の設定

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

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

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

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

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

(a) 実行系での作業

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

    jajs_spmd_stop -h 論理ホスト名
    jajs_spmd_status -h 論理ホスト名

  2. 次に示すコマンドを実行して,JP1/AJS2 Monitorサービスを停止する。

    ajsinetd_startstop stop

    ajsinetd_startstopコマンドのパスは,「/etc/opt/jp1ajs2/ajsinetd_startstop」です。
  3. 次のファイルをviなどのエディターで開く。

    論理ホストの共有ディレクトリ/jp1ajs2/conf/Schedule.conf

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

    [node0¥JP1AJSMANAGER¥AJSROOT3]
    "AJSBKUROOT"="/shdsk/node0/jp1ajs2/backup/schedule3"
    "AJSCHARCODE"="SJIS"
    "AJSDBDIRECTORY"="/shdsk/node0/jp1ajs2/database/schedule/AJSROOT3"
    "AJSDBTYPE"="ISAM"
    "AJSLOG"="all"
    "AJSSERVICEID"=dword:00000003
    "AJSSYSLOG"="none"
    "AJSTMPDIR"="/shdsk/node0/jp1ajs2/tmp/schedule3"
    "AUTOSTART"="yes"
    "EXECDEFER"="oneday"
    "HNTRLOGLEVEL"="error"
    "ISAMWRITEMODE"="flush"
    "JOBINFDIR"="/shdsk/node0/jp1ajs2/jobinf3"
    "JOBLOG"="all"
    "JOBSTATUSPORT"="jp1ajs2report3"
    "JOBSYSLOG"="none"
    "NETLOG"="all"
    "NETSYSLOG"="none"
    "OPELOG"="all"
    "OVERSCHEDULE"="exec"
    "RDBAUTHID"=""
    "RDBUSER"=""
    "SESSIONTIMEOUT"=dword:00000078
    "STARTMODE"="warm"
    "SUPPRESS"="none"
    "SYSLOGCODE"="C"
    "TABLENAMEPOSTFIX"=""
    "TABLENAMEPREFIX"="AJS"

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

    jbssetcnf 設定ファイル名

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

      jp1ajs2report3 20248/tcp

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

    ajssetup -F スケジューラーサービス名 [-mh 論理ホスト名]

    (例)
    論理ホスト名「node0」に「AJSROOT3」スケジューラーサービスのスケジューラーデータベースを作成する場合

      ajssetup -F AJSROOT3 -mh node0

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

      ajsqlsetup -F スケジューラーサービス名 -h 論理ホスト名

  10. 組み込みDBを使用する場合は組み込みDBに移行する。
    組み込みDBセットアップツール(ajsembdbsetupスクリプト)を使用して,標準データベースを組み込みDBに移行します。
    組み込みDBへの移行手順については,「15. スケジューラーデータベースに組み込みDBを使用する場合のセットアップ」を参照してください。
  11. スケジューラーサービスを追加したJP1/AJS2のサービスおよびJP1/AJS2 Monitorサービスを再起動する。
    設定した内容でスケジューラーサービスが追加され,起動します。

(b) 待機系での作業

  1. 実行系の共通定義情報を待機系に設定する。
    実行系での作業が完了したあと,実行系でjbsgetcnfコマンドを実行し,共通定義情報を退避します。その退避ファイルを待機系にコピーし,退避ファイルを引数に指定してjbssetcnfコマンドを実行します。
    実行するコマンドを次に示します。
    実行系

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

    待機系

      jbssetcnf 退避ファイル名

  2. (a)の実行系での作業の手順7で追加したポート番号を待機系に設定する。
    /etc/servicesファイルをエディターなどで開き,ポート番号を追加します。このとき,実行系で設定したポート番号と同じ番号を追加するようにしてください。
    (例)ポート番号を「20248」として設定する場合

      jp1ajs2report3 20248/tcp

  3. 次に示すコマンドを実行して,JP1/AJS2 Monitorサービスを停止・再起動する。

    ajsinetd_startstop stop
    ajsinetd_startstop start

    ajsinetd_startstopコマンドのパスは,「/etc/opt/jp1ajs2/ajsinetd_startstop」です。
多重起動時のコマンド実行についての補足事項
スケジューラーサービスを多重起動している場合,「-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 論理ホスト名 > 退避ファイル名

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

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

  7. JP1/AJS2サービスおよびJP1/AJS2 Monitorを起動する。
    手順1および手順2で停止したサービスを再起動し,スケジューラーサービスが削除されていることを確認します。