Japan
サイト内の現在位置を表示しています。
環境変数の設定方法と優先順位
JobCenter Lab vol.12こんにちは。
WebSAM JobCenter ブログ担当の坂本です。
今回はWebSAM JobCenterの環境変数の設定方法と優先順位についてご紹介いたします。WebSAM JobCenterからキックしたバッチやシェルで指定していた環境変数に意図しない値が格納されたなんて経験はありませんか?
バッチやシェルで利用される環境変数は設定箇所に応じて優先順位が変わってきます。
今回はWebSAM JobCenterマネージャがWindowsの場合について説明をしていきます。
環境変数の設定箇所一覧
WebSAM JobCenterで設定可能な環境変数の設定箇所と優先順位は以下の通りです。同じ環境変数が設定された場合、優先順位の高い設定の値が反映されます。
環境変数の設定イメージ
それぞれの環境変数設定イメージをご紹介します。
Windowsの場合、SET コマンドで環境変数に値を設定します。下記の例では単位ジョブから呼び出すバッチ内でsetコマンドを使用し環境変数を設定しています。
上記のジョブの実行結果は以下の通りです。環境変数”variable1”,”variable2”の値をechoで標準出力に出力しています。
UNIXの場合はシェル内で以下のように環境変数を指定します。
上記のジョブの実行結果は以下の通りです。
SVサーバのOSの環境変数は以下の手順で参照可能です。
- Windowsの場合、「コントールパネル」-「システム」-「設定の変更」-「詳細設定」-「環境変数」
なお、OSの環境変数を追加したり、変更した場合にはWebSAM JobCenterのサービスを再起動して更新を反映してください。
- UNIXの場合、環境変数は「env」コマンドで確認可能です。
[root@linux_host]# env
XDG_SESSION_ID=294
HOSTNAME=linux_host
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
SSH_TTY=/dev/pts/0
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
%InstallDirectory%\spool\private\root 配下に envvars というテキストファイルを作成し、必要な環境変数を記述することにより、環境変数を一括して定義できます。なお %InstallDirectory% はJobCenter MG/SVのインストールディレクトリです。デフォルトは「C:\JobCenter\SV」となります。
環境変数名1=値 環境変数名2=値 |
- envvarsファイル内では、次のように設定しても%PATH%部分はマクロ置換されませんのでご注意ください。
BATCHPATH=C:\JobCenter\SV\lib;%PATH% - envvarsファイルに設定された環境変数は、全ユーザに適用されます。
- envvarsに記述できるのは、環境変数名=値 の記述1行につき1023byte以内となります。
同一ルートジョブネットワーク内であれば、フロー上の任意の単位ジョブ、任意のサブジョブネットワーク内の単位ジョブの間で、変数継承機能により環境変数の値を引き継ぐことができます。単位ジョブの「出力結果」(または「エラー出力結果」)から、次の形式で出力されている部分を選択して読み取ります。
EXPORTVAR VAR1=VAL1 VAR2=VAL2 EXPORTVAR |
まずは変数を設定する単位ジョブを右クリックして「パラメータ」を選択します。
「変数継承」項目で「STDOUT」にチェックを入れます。
JOB1のスクリプト内で変数を設定します。下記の例ではVAR1に「変数1」、VAR2に「変数2」という値を設定しています。
JOB2では変数に格納されている値を標準出力に出力します。
ジョブを即時投入し、JOB2の「出力結果」タブで変数の値が表示されます。環境変数が引き継がれていることが確認できました。
環境変数を設定するジョブネットワークを右クリックして「パラメータ」を選択します。
「新規」ボタンを押して変数と値を設定してください。
SVのOSの環境変数と同様、Windowsの「コントールパネル」-「システム」-「設定の変更」-「詳細設定」-「環境変数」で参照可能です。OSの環境変数を追加したり、変更した場合にはWebSAM JobCenterのサービスを再起動して変更を反映させてください。
環境変数の優先順位を確認してみよう
それでは環境変数の優先順位について実際に試してみます。同じ名前の環境変数を以下の2つの設定箇所に重複して設定し、優先順位の高いほうの環境変数の値が反映されることを確認します。
- 優先度低
ジョブネットワークの「パラメータ」→「環境変数」タブ設定で設定した環境変数 - 優先度高
envvarsファイルに設定した環境変数
※前述の設定イメージで"variable1"、"variable2"の環境変数を例として使用しましたので、今回は"variable3"、"variable4"を例として使用します
② variable3、variable4を出力する単位ジョブを作成して実行します。
③ variable3、variable4の値が、「パラメータ」→「環境変数」タブで設定された値であることを確認します。
注意事項
「PATH」などの一部の環境変数は上の優先順位とは異なる方法で設定が行われます。この点についてはマニュアル「WebSAM JobCenter環境構築ガイド」の「15. ジョブ実行時の環境変数の取り扱い」をご参照ください。
おわりに
今回のブログはいかがでしたでしょうか?環境変数を設定する箇所は複数ありますが、どんな設定が必要なのか、そして設定箇所に応じた環境変数の優先順位がどのようになっているのかについてご確認頂ければ幸いです。
本ブログは皆様から頂いた様々なお問合せを参考にして更新しております。今後も皆様のお役に立つ情報を発信して行きたいと考えておりますのでWebSAM JobCenterブログをよろしくお願いいたします。
[参考情報]
https://jpn.nec.com/websam/jobcenter/download.html
→WebSAM JobCenter 基本操作ガイド
→WebSAM JobCenter 環境構築ガイド