初期プログラムとシステム終了時に起動するプログラム
- 1 初期プログラムとは
-
初期プログラムとは端末が立ち上がったり、端末で操作開始コマンドを入力したときに自動的に起動するプログラム(ジョブ)のことです。システムに設定することによって自動的に起動できるようになります。毎回RUNコマンドで業務プログラムを入力する必要がなくなります。
プログラムと言っていますが、ジョブのことです。初期プログラムにはロードモジュール、ジョブストリームやパラメータメンバを設定することができます。
例えば初期プログラムに業務メニューを設定しておけば、端末を起動したら自動的に業務メニュー画面を表示するので、すぐに業務を行うことができます。毎回実行する業務プログラムを設定しておくという案もあります。
初期プログラムを設定すると端末に接続するとすぐに目的のジョブが起動するので便利という利点がありますが、他にも使用できるジョブを制限するという役割があります。その人が扱える業務アプリは初期プログラムで設定した範囲になるので、権限外の業務アプリは使えない、権限外のデータは扱えないということになり、セキュリティの確保にも利用できます。
- 2 初期プログラムの種類
-
初期プログラムにはいくつか種類があります。プログラムを起動する契機が違ったり、特殊な端末だけで起動するものであったり、それぞれプログラムを起動するタイミングが異なります。
初期プログラム 概 要 ワークステーション対応初期プログラム 端末毎に設定した初期プログラム。操作開始コマンドや画面切離コマンド入力で起動する。 OCFの初期プログラム 端末毎OCF毎に設定した初期プログラム。操作開始コマンドや画面切離コマンド入力で起動する。 優先処理用初期プログラム 優先処理コマンド入力を行ったときに起動する初期プログラム。 システム初期プログラム システムステーションで操作開始や画面切離コマンドを入力したときに起動する初期プログラム。インテリジェントUPSとの連動が必要。 システム初期プログラムは特別で、機能を利用するにはインテリジェントUPS(I−UPS)との連動が必要です。 他のものはI−UPSが無くても機能を利用することができます。
- 3 ワークステーション対応初期プログラム
-
OCFを使わないシステムの場合は、このワークステーション対応初期プログラムを設定します。 端末を立ち上げると、自動的にワークステーション対応初期プログラムに設定されているジョブを起動します。
端末aは業務アプリa、端末bは業務メニュー、端末cは業務アプリcのように端末毎に設定できます。マニュアルによってはステーション初期プログラムとかステーション対応初期プログラムとか書かれていたりします。これらは同じものです。
- 4 OCFの初期プログラム
-
OCFを使うシステムの場合は、このOCFの初期プログラムを設定します。
具体的には、オペレータID毎に初期プログラムを設定して、ワークステーション対応初期プログラムにどのオペレータIDで接続するか設定します。例えばオペレータAの初期プログラムに業務アプリA、オペレータBの初期プログラムに業務アプリBを設定します。そして端末aのワークステーション対応初期プログラムにオペレータAを設定し、端末bに同様にオペレータBを設定します。
端末aを起動してオペレータAで接続、業務アプリAを自動起動します。端末bを起動すると同様に業務アプリBを自動起動します。OCFの初期プログラムはワークステーション対応初期プログラムを拡張したものです。なのでOCFの初期プログラムのことを拡張初期プログラムと書いてあるマニュアルもあります。これらは同じものです。
NECのマニュアルに端末に接続時のフローが書かれていますが、このフローはいろいろなものが含まれていて複雑なので、初期プログラムに関するものだけを抜き出した図を書きました。
「SGで設定した画面」とは、「画面一面が黒色のRUNコマンド入力」画面や「画面全面に大きくA−VXと書かれたRUNコマンド入力」画面や「新HIのシステムメニュー」画面のことです。設定次第でどれかが選ばれます。
初期プログラムが設定されていないので、OSの素の画面が表示されることになります。
「操作開始コマンド入力待ちの画面」とは、オペレータIDやパスワード、カンパニIDなどを入力する画面です。
- 5 優先処理用初期プログラム
-
優先処理コマンドを入力すると、指定したジョブを自動起動できるようになります。
優先処理コマンドで実行するジョブは専用で設計する必要があるので、優先処理コマンド自体あまり使用しないような気がします。
優先処理コマンドは画面切離コマンドの隣にあるので、ついつい間違えてしまうという人もいるかと思います。一旦優先処理状態になると、他のコマンドが利かなくなったりして混乱しますが、何もしないですぐ終了するようなアプリケーションをCOBOLで作って、それを優先処理コマンドの初期プログラムに設定しておけば、「間違えて優先処理コマンド実行→すぐ終了するアプリケーションを実行→すぐ優先処理状態も終了」となり、すぐに優先処理状態を抜けることができるようになります。
- 6 システム初期プログラム
-
自動電源制御機能の電源投入時刻の指定、通信回線からの着信によってシステムが起動したときに、システムステーションで自動的にジョブを起動することができます。(手動でオフコンの電源をONして起動したときはシステム初期プログラムは自動起動しません)
このシステム初期プログラムに設定されたジョブは、システムステーションと呼ばれる特別な端末で起動します。
自動電源制御機能を利用している為、APCUやI−UPSと呼ばれるハードウェアも必要で、それが適切に設定されていなければなりません。WindowsのサービスやLinuxのデーモンのような働きをするプログラムを実行するときに使用します。自動運転制御プログラム(#AJOBC)などでも使用します。
- 6.1 終了モード
-
システム初期プログラム終了時の制御ができるように、システム初期プログラムには次のような終了モードがあります。
終了モードはあらかじめシステム生成時に設定しておきます。終了モード システム初期プログラム終了時の動作 POWEROFFモード システム初期プログラム終了後、操作終了状態となり、そのとき他の端末がつながっていない状態ならば、システムの電源を切断する LOGOFFモード システム初期プログラム終了後、初期プログラムのオペレータに他のジョブがいなくなったときに、操作終了状態またはオペレータコマンド待ちとなる RETRYモード システム初期プログラム終了後、システム初期プログラムを再起動する。 - 6.2 初期プログラムの同時起動
-
システムステーションでシステム初期プログラムとワークステーション対応初期プログラム(OCFの初期プログラムも含む)の両方の設定がしてあると、システムステーションでシステム初期プログラムとワークステーション対応初期プログラムの両方を起動することができます。
同時起動した場合はシステム初期プログラムは画面切離状態(裏画面)で起動し、ワークステーション対応初期プログラムは画面接続状態(表画面)で起動します。よく行われるのが、システム初期プログラムはLinuxのデーモンのような常駐するジョブや裏画面で動くバッチジョブ、ワークステーション対応初期プログラムには会話型ジョブを設定するようにしておく方法です。
- 6.3 利用者介入要求のスキップ
-
自動電源装置で時間になったシステム起動といった運用を行っている場合、普段は無人でシステムが運転されている可能性があります。この場合、キー入力待ちになったりして利用者の介入が必要な状態になったとき、ずっと利用者の介入を待ち続けてしまう可能性があります。これでは処理が先に進みません。ずっと待ち続けてシステムのシャットダウンを阻害することになる可能性もあります。
利用者介入要求のスキップ機能を利用すると、自動電源制御機能の「新規ジョブ開始禁止時刻」と「電源切断時刻」が設定されている場合、「新規ジョブ開始禁止時刻」を経過後、ジョブやシステムから入力要求が実行されたり、リセットキー待ちのメッセージを表示したような場合に、当該ジョブを強制終了することができます。
システム初期プログラムで利用者介入が発生したジョブのジョブを強制終了することにより、次のジョブステップの実行に移るようにすることができます。具体的にはシステム初期プログラムはジョブストリーム(JS)にします。そしてJS中のスキップしたいジョブステップの/RUN文、あるいはパラメータメンバのRUN情報、COBOLの内部コールサブルーチンのRUN情報のパラメータにABORT指定を行います。詳しくはJCLの説明部分などを参照してください。
- 6.4 システム初期プログラム起動の一時無効化
-
システム初期プログラムは自動電源装置と連動して動くため、自動電源装置の設定で起動する/起動しないを切り替えることができます。ただし自動電源装置を介さずにサーバの電源を再起動した場合は、前回の設定が自動電源装置に残ったままのために、設定に関わらずシステム初期プログラムが起動されてしまうことがあります。
これを防止する為、ソフトウェアを使ってシステム初期プログラムを一時的に起動しないようにすることができます。
あまり使ったことがないです。システムがいきなりダウンして、手動でシステムを再起動させた後に保守業務を動かすのでシステム初期プログラムが起動されると邪魔だから起動させない、とかいう場合に使うのでしょうかね。
「c:\windows\avxsysrep disable」で一時無効化、「c:\windows\avxsysrep enable」で有効化です。
- 6.5 障害発生後のシステム初期プログラムの起動
-
システムがダウンした後のシステム再立ち上げ時、システム初期プログラムを起動するかしないかを設定することができます。上の一時無効化とはまた別の機能です。
- 7 システム終了時に起動するプログラム
-
システムが起動したときや端末に接続したときに起動する初期プログラムがあれば、システムが終了時に起動するプログラムも設定できます。
システム終了時に起動するプログラム 概 要 システム終了プログラム システムが終了するときにシステムステーションで起動するプログラム。インテリジェントUPSとの連動が必要。 A−VXシャットダウン時のWindows側アプリケーション起動 A−VXシャットダウンしてサーバの電源切断の直前に、Windows側のアプリケーションを起動する機能。インテリジェントUPSとの連動が必要。 2つの機能ともに利用するにはインテリジェントUPS(I−UPS)と自動電源制御機能の連動が必要です。
- 8 システム終了プログラム
-
今までの初期プログラムは端末を接続したりシステムが立ち上がったときに自動的に起動するではなく、A−VXのシャットダウン後に自動的に起動するジョブを設定するものがシステム終了プログラムです。
次のような契機でシステムのシャットダウンが行われたときにシステム終了プログラムが起動します。
- 通信回線による電源断
- クライアント監視による電源断
- 自動電源制御ユーティリティの時間指定による電源断
- 手動による電源断(ON/OFFスイッチ)
システム終了プログラムに設定したジョブはシステムステーションで実行されます。
システムのシャットダウン時にジョブを実行する機能なら、シャットダウン前に自動で毎日のデータをテープにバックアップするといった用途に使用したいところですが、テープ装置を使うようなジョブは使用できないようです。磁気ディスクから磁気ディスクへのデータコピーなら使用可能です。
これはシステム終了プログラムはA−VXのシャットダウン実行後に起動されるので、いろいろな制約があるためです。すでにシャットダウンによりA−VXの数々の機能が停止しているため、A−VX上で動いているサービス機能(RFA、VWS、スプールライタ、インボーキング、クラスタエミュレータ)やプリンタへの印刷、シャットダウン時に動作していたテープ装置などが利用できないためです。
これもシステム初期プログラムと同様に自動電源制御機能を利用している為、自動電源制御機能と装置が適切に連動するように設定されていないとシステム終了プログラムは動きません。
- 9 A−VXシャットダウン時のWindows側アプリケーション起動機能
-
今までの機能はA−VXの起動時やシャットダウン時にA−VX側のジョブを起動する機能でした。
A−VXシャットダウンしてサーバの電源切断の直前に、Windows側のアプリケーションを起動する機能です。
シャットダウン前にWindows側のデータのバックアップをしたりする用途などに使用できます。
- 自動電源制御(タイマ)による電源切断
- UPSのスイッチOFFによる電源切断
のどちらかの原因で、A−VXがシャットダウンされたときに、Windows側のアプリケーションを起動します。
当然のことながら、起動するアプリケーションは作業が終わったらちゃんと終了するものでないといけません。(終わらないとサーバの電源切断ができない。)
上記以外の電源切断、すなわち、A−VXの拡張システムコマンドによる電源切断や(A−VXは許していませんが)スタートメニューからのシャットダウンなどでは起動されません。
Windows自体にもシャットダウン時に自動起動する手段(シャットダウンスクリプトを使う)がありますが、この機能はシャットダウン時にかならずアプリケーションが起動されます。それぞれちょっと異なるので、使い分けるとよいと思います。
例えば業務処理の流れの一環として、A−VXシャットダウン時にデータバックアップ用アプリケーションを起動するとします。
Windowsのシャットダウンスクリプトを使うという方法があります。ところがサーバに何かトラブルがあって、NECの保守員が来たとします。たぶん何度かサーバを立ち上げたり落としたりといった作業をするでしょう。サーバの電源を落とすたびにデータバックアップ用アプリケーションが動いて、いろいろとややこしい話になるかもしれません。
おそらく保守員はいちいち自動電源制御のスケジュールの機能を使って起動したり落としたりということはしないでしょう。A−VXシャットダウン時のWindows側アプリケーション起動機能を使えば、たいていの場合は上記問題は解決します。(UPSのスイッチのON/OFFされたらどうするかと言われたら、そこは保守員と相談してと言うしかありません・・・。)これも自動電源制御と連動している機能なので、これらの機能が使える状態になっている必要があります。
比較的最近使えるようになった機能なので、A−VX3や初期のA−VX4では使用できません。
- 9 Windowsの起動時やシャットダウン時に自動起動
-
もしWindowsの起動時やシャットダウン時に動くプログラムを設定したい場合は、Windowsの機能を利用すればいいです。
例えば起動時に動かしたいなら、スタートアップに登録するとか、レジストリのRUNキー内に登録するとか、サービスに登録するとか、いろいろな方法があります。
シャットダウン時なら、シャットダウンスクリプトに登録する方法があります。A−VXに関係ない部分なので、Windows部分に閉じて考えればいいです。