このセクションでは、SYSMAIN ユーティリティのセキュリティ面および SYSMAIN に提供されるユーザー出口ルーチンについて説明します。
ファイルセキュリティ(パスワードとサイファコード)は、Adabas または VSAM 環境のシステムファイルに対して定義されたセキュリティと関連付けられています。 システムファイルにファイルセキュリティが定義されている場合、SYSMAIN 機能を実行する前に、必要なソースシステムファイルまたはターゲットシステムファイル(あるいはその両方)に関して、パスワード、サイファコード、または VSAM 名(あるいはそのすべて)を指定する必要があります。 これを行わなかった場合、Adabas または VSAM によって該当するエラーメッセージが発行されます。 SYSMAIN ユーティリティの開始時に Natural セッションに割り当てられるデフォルトシステムファイルに対してセキュリティ情報を指定する必要はありません。
パスワードおよびサイファコードを指定するには
任意の SYSMAIN ユーティリティメニューから、次の表に示す PF キーまたは特殊コマンドを使用して、必要なシステムファイルのセキュリティウィンドウを呼び出します。
システムファイル | コマンド | PF キー | 影響を受けるオブジェクト/データ |
---|---|---|---|
FUSER、FNAT | SET FNAT |
PF12 |
- プログラミングオブジェクト |
FDIC | SET FDIC |
PF11 |
- ルール |
FSEC | SET FSEC |
PF10 | - Natural Security プロファイル |
指定したシステムファイルについて表示されるセキュリティウィンドウは、次の FUSER システムファイルおよび FNAT システムファイルの例に類似しています。
+---------------------------------------------------+ ! --- Security for the Natural System Files --- ! ! ! ! Specify the password(s), cipher(s) and VSAM FCT ! ! name(s) for the source/target file(s) below: ! ! ! ! - Source - - Target - ! ! Library .... OLDLIB Library .... NEWLIB ! ! Database ... 10 Database ... 10 ! ! File ....... 32 File ....... 32 ! ! ! ! Password ... Password ... ! ! Cipher ..... Cipher ..... ! ! VSAM Name .. ________ VSAM Name .. ________ ! +---------------------------------------------------+ |
ウィンドウで、必要なソースシステムファイルまたはターゲットシステムファイル(あるいはその両方)に関して、適切なパスワード、サイファコード、または VSAM 名(あるいはそのすべて)を入力します。
注意:
[Library]フィールドは、プログラミングオブジェクト、デバッグ環境、またはエラーメッセージを処理する場合にのみ適用されます。
ファイルセキュリティを定義すると、SYSMAIN ユーティリティでは、そのセキュリティ情報がすべての後続処理に使用されます。 セッションの初期化時に取得したデフォルトのセキュリティ情報を使用する必要がある場合は、対応するセキュリティウィンドウを再度呼び出し、パスワード、サイファコード、または VSAM 名の各フィールド、あるいはそのすべてをクリアする必要があります。 パスワードとサイファコードは非表示であるため、フィールドが空であるかのように見える場合にも、再度クリアする必要があります。
Natural Security 環境内で SYSMAIN ユーティリティを使用する場合は、次の 2 つの点について考慮する必要があります。
ソースライブラリとターゲットライブラリは、1 つの Natural Security 環境内または異なる 2 つの Natural Security 環境内に配置できます。 これらの環境は SYSMAIN ユーティリティに対して定義されている必要があります。
使用する Natural Security 環境の定義は、特殊コマンド SET FSEC
で指定します。
デフォルトでは、Natural セッションの開始時に割り当てられた現在の FSEC 設定が使用されます。 これらの設定は、[Security for Natural Security (FSEC) Files]ウィンドウで変更した場合、次の SET FSEC
プロセスで変更するまで有効です。 バッチモードまたはダイレクトコマンドモードでは、SEC
キーワードを使用して、ファイルセキュリティと要求の割り当てを指定する必要があります。
ソース環境とターゲット環境を決定すると、SYSMAIN では、Natural Security を使用してソースライブラリとターゲットライブラリの両方が確認されます (ソースまたはターゲットのデータベースとファイル、あるいはその両方は、ライブラリセキュリティプロファイルで指定したデータベース ID(DBID)およびファイル番号(FNR)に対応している必要があります。これらの値を指定しない場合、セキュリティプロファイルからデフォルト値が取得されます)。
SYSMAIN ユーティリティ自体の使用を制限することも、SYSMAIN ユーティリティで処理されるソースライブラリおよびターゲットライブラリの使用を制限することもできます。 SYSMAIN 機能の使用は、アプリケーションプログラミングインターフェイス MAINUSER を使用して呼び出した場合、個別に制御できます。 詳細については、『Natural Security』ドキュメントの「Protecting Utilities」を参照してください。
SYSMAIN ユーティリティのユーザー出口ルーチンは、処理中の各オブジェクトに関する情報を提供するため、または機能処理を制御するために使用されます。 ユーザー出口ルーチンは Natural サブプログラムであり、CALLNAT
ステートメントを使用して呼び出されます。
サブプログラムのソースコードとそれらのソースコードが使用するデータエリアは、SM-UX-nn(nn = 01~11)の名前でソースオブジェクトとしてライブラリ SYSMAIN に格納されます。 ユーザー出口ルーチンを使用可能にするには、対応するソースオブジェクトをライブラリ SYSMAIN またはその steplib のいずれかに、MAINEXnn の名前でカタログ化します。
注意:
ユーザー出口ルーチンのソースオブジェクトの名前とカタログ化オブジェクトの名前は、更新インストールによるソースオブジェクトの上書きがカタログ化オブジェクトに影響することがないよう、異なるものとなっています。
必要に応じて、任意のユーザー出口ルーチンを変更したり、展開したりできます。
コード論理によっては、これらの出口ルーチンを使用することにより、SYSMAIN ユーティリティに追加のオーバーヘッドが発生します。 ただし、出口処理が完了したら、常に SYSMAIN に制御を返す必要があります。
SYSMAIN ユーティリティでは Adabas ファイルに対して ET ロジックが使用されるため、ユーザー出口ルーチンの使用により、トランザクションタイムリミット(Adabas パラメータ TT)が延長されることがあります。 また、Adabas
トランザクションの定義は変更しないでください。つまり、ET/BT コマンドや END/BACKOUT TRANSACTION
ステートメントは発行しないでください。 END TRANSACTION
ステートメントの発行は、すべて SYSMAIN によって実行されます。 ただし、ユーザーがユーザー出口ルーチンを使用して SYSMAIN 機能を正常終了する場合、このルールは適用されません。 その場合は、終了する前に BACKOUT TRANSACTION
を発行する必要があります。
リターンコードをゼロ以外の値に設定すると、SYSMAIN から受け取ったエラーよりも優先されます。 出口からエラーを受け取った場合、エラーはメッセージフィールドに配置され、必要に応じて表示または出力されます。 ただし、自動処理は、処理が最少の端末 I/O で完了するため、例外となります。
次のセクションでは、個々のユーザー出口ルーチンについて説明します。
機能 | オブジェクトが SYSMAIN によって処理される前に、オブジェクトに関連付けられたデータ要素の現在の値設定を検証します。 | ||||||
注意 | RESP-CODE パラメータをゼロ以外の値に設定することにより、MAINEX01 に渡されるすべてのオブジェクトを拒否できます。
いずれかの追加ロジックを実行する場合、トランザクションはトランザクション終了ステータスにできません。このため、 制御を SYSMAIN に戻す必要があります。 |
||||||
パラメータ |
注意: |
||||||
ローカルデータエリア | SM-UX-L |
機能 | オブジェクトが SYSMAIN によって処理された後に、オブジェクトに関連付けられたデータ要素の現在の値設定を検証します。 | ||||||
注意 | RESP-CODE パラメータをゼロ以外の値に設定することにより、MAINEX02 に渡されるすべてのオブジェクトを拒否できます。
いずれかの追加ロジックを実行する場合、トランザクションはトランザクション終了ステータスにできません。このため、 制御を SYSMAIN に戻す必要があります。 |
||||||
パラメータ |
注意: |
||||||
ローカルデータエリア | SM-UX-L |
機能 | ダイレクトコマンドまたはメニューモードでオンライン入力された情報に関して SYSMAIN に対して行われたすべての要求を検証します。 MAINEX03 では、SYSMAIN がコマンドを処理する前に制御を取得します。 | ||||
注意 | RESP-CODE パラメータをゼロ以外の値に設定することにより、MAINEX03 に渡されるすべてのコマンドを拒否できます。
他のロジックを追加できますが、必要な 制御を SYSMAIN に戻す必要があります。 |
||||
パラメータ |
注意: |
機能 | Natural システムファイルのデータベース、ファイル、パスワード、およびサイファコードを上書きします。 | ||||
注意 | MAINEX04 は、いずれかの要求が SYSMAIN によって処理または検証される前に呼び出されます。 制御が MAINEX04 に渡されると、ステータスはトランザクション終了となります。このため、要求を拒否する場合は、RESP-CODE パラメータをゼロ以外の値に設定する必要があります。
制御を SYSMAIN に戻す必要があります。 |
||||
パラメータ |
|
||||
ローカルデータエリア | SM-UX-L4 |
機能 | SYSMAIN のオンライン処理中に入力されたすべてのダイレクトコマンドを検証します。 また、システムコマンドを示すために使用された特殊コマンドを上書きできます。 | ||||||
注意 | MAINEX05 は、SYSMAIN 内で発行されたいずれかのダイレクトコマンドが処理される前に呼び出されます。 例えば、MAINEX05 を使用すると、いずれかの SET コマンド(「SYSMAIN に発行される特殊コマンド」を参照)を検証できます。また、それらのコマンドが発行されるのを防ぐこともできます。 これらのコマンドを検証し、RESP-CODE パラメータにゼロ以外の値を返して拒否できます。 制御が MAINEX05 に渡されると、ステータスはトランザクション終了となります。
SYSMAIN 内で入力するコマンドは、先頭に 2 つのスラッシュ(//)を付ける必要があります(「SYSMAIN コマンド行の使用」も参照)。 MAINEX05 では、この目的で他の 2 つの特殊文字を定義できます。そのためには、希望する文字を |
||||||
パラメータ |
|
機能 | SYSMAIN セッションの初期化時に制御を取得します。 |
注意 | MAINEX06 は SYSMAIN セッションの開始時に呼び出され、オブジェクトの削除、移動、置き換えのような要求を確認するためのプロンプトなど、一部の SYSMAIN デフォルト設定を上書きできます。
すべてのパラメータが検証されます。 パラメータが無効な場合は、ソフトウェア設定が使用されます。 制御を SYSMAIN に戻す必要があります。 |
パラメータ |
SM-UX-L6 |
機能 | SYSMAIN セッションの終了時に制御を取得します。 | ||
注意 | MAINEX07 は、SYSMAIN セッションの終了時に、制御を SYSMAIN で保持するかどうかを決定するために呼び出されます。 | ||
パラメータ |
|
機能 | バッチモードでコマンドについてオブジェクトが検出されない場合、追加の処理を決定します。 | ||
注意 | MAINEX08 は、バッチモードで実行された特定のコマンドについて、指定した条件に一致するオブジェクトが検出されなかった場合に呼び出されます。 この場合は、制御を SYSMAIN に戻す必要はありませんが、戻してもかまいません。 制御が SYSMAIN に戻ると、SYSMAIN は次のコマンドの処理を続行します。 | ||
パラメータ |
|
機能 | バッチモードでエラーが発生した場合に実行するアクションを決定します。 | ||||
注意 | MAINEX09 は、バッチモードの SYSMAIN 処理でエラーが発生した場合に呼び出されます。 この場合は、制御を SYSMAIN に戻す必要はありませんが、戻してもかまいません。 制御を SYSMAIN に戻した場合、SYSMAIN はコンディションコード
45 で終了します。
注意: |
||||
パラメータ |
|
機能 | バッチモードでコマンドエラーが発生した場合に実行するアクションを決定します。 | ||||
注意 | MAINEX10 は、バッチモードで SYSMAIN コマンドにエラーが検出された場合に呼び出されます。 この場合は、制御を SYSMAIN に戻す必要はありませんが、戻してもかまいません。 制御が SYSMAIN に戻ると、SYSMAIN は次のコマンドの処理を続行します。 | ||||
パラメータ |
|
機能 | 特殊設定ユーザー出口ルーチン。 | ||
注意 | MAINEX11 は、SYSMAIN セッションの開始時に呼び出され、バッチでの MAINUSER メッセージの表示など、一部の特殊 SYSMAIN フラグを設定できます。
使用可能なフラグの詳細については、ユーザー出口ルーチンのソースオブジェクト(SM-UX-11)を参照してください。 制御を SYSMAIN に戻す必要があります。 |
||
パラメータ |
|