バージョン 4.2.5
 —  TP モニタインターフェイス  —

IMS/TM 環境の Natural - 環境

このドキュメントでは、Natural をさまざまな IMS/TM 環境で実行する方法について説明します。

次のトピックについて説明します。


IMS/TM インターフェイスの概要

Top of page

IMS/TM 環境

IMS/TM では異なる 3 種類の環境を提供します。

これらの各環境で Natural を使用するために、Natural IMS インターフェイスにはそれぞれの環境固有のインターフェイスが提供されています。 このようなインターフェイスの役割は、環境から入力(通常は端末入力メッセージ)を受信すること、受信した入力を処理するために Natural に渡すこと、および得られた出力を正しい宛先に(通常は端末出力メッセージ)返すことです。 このようにして、利用可能なすべての IMS 環境で Natural の機能を使用することができます。

異なるさまざまな環境で利用できるだけでなく、各環境では操作方法が異なります。

メッセージ処理リージョンの Natural(MPP 環境)

メッセージ処理リージョンでは、Natural オンライントランザクションは、以下のいずれかになります。

ダイアログ指向の Natural

ダイアログ指向の Natural セッションは、IMS 画面との進行中の対話を確立します。 Natural との入出力メッセージは論理的に関連付けられ、ダイアログ手順全体を通じて、Natural は次の入力メッセージを正しく処理できるように情報を保存します。 ダイアログ指向の方法では、Natural は会話型トランザクションまたは非会話型トランザクションのいずれかとして実行することができます。

ダイアログ指向の環境では、Natural は、入力待ち(Wait-for-Input、WFI)トランザクションとして、および並列スケジュールオプションを指定して、複数のメッセージ処理リージョンで実行することができます。

ダイアログ指向環境で Natural を実行するには、ロールサーバーまたはロールファイルを使用する必要があります(「ロールファイルおよびロールサーバー」を参照)。

Natural IMS インターフェイスがエラー状態を検出すると、このエラー状態に関する情報を含むレコードが IMS ログファイルに書き込まれます(「リカバリ処理」を参照)。 したがって、Natural が実行されるすべての端末およびすべての Natural トランザクションコードは、Automated Operator Interface(AOI)を使用する /LOG コマンドの発行を認可されている必要があります。

メッセージ指向の Natural

メッセージ指向の Natural セッションは、IMS メッセージキューからの 3270 形式以外のメッセージを処理します。 入力メッセージは互いに無関係であると見なされます。またダイアログの一部ではありません。 メッセージ指向の方法では、Natural は非会話型トランザクションとして実行する必要があります。

バッチメッセージ処理リージョンの Natural(BMP 環境)

バッチメッセージ処理リージョンでは、Natural は入力トランザクションコードを使用することによって IMS メッセージキューにアクセスすることができます。 バッチ指向の BMP リージョンでは、Natural はシンボリックチェックポイントおよび拡張再スタートをサポートしています。 入力メッセージの形式は 3270 以外の形式です。

オフラインの DL/I バッチリージョンの Natural

BMP Natural はオフラインの DL/I バッチジョブとしても実行することができます。

IOPCB を利用できない場合は、すべての END TRANSACTION および BACKOUT TRANSACTION ステートメントが無視されます。

診断の目的で次の機能を利用することができます。プロファイルパラメータ TPF=(1) を指定して Natural が起動された場合、上記の事実を示す非公式の WTO メッセージが発行されます。

Top of page

ダイアログ指向の環境

このセクションでは、ダイアログ指向の会話型環境にのみ有効な特別な点について説明します。

会話型環境の特別な考慮事項

ダイアログ指向の会話型環境は、会話型 MPP インターフェイスによって実装されます。このインターフェイスは、Natural パラメータモジュールによって会話型 MPP フロントエンドにリンクされています。 このフロントエンドは IMS/TM アプリケーションプログラムで、割り当てられたトランザクションコードの入力メッセージが IMS/TM メッセージキューで利用できる場合に、IMS/TM によってスケジュールされます。

ダイアログ指向の会話型環境では、少なくとも 157 バイトに NRASTART 値を加えたスクラッチパッドエリア(SPA)が必要です。

非会話型環境の特別な考慮事項

ダイアログ指向の非会話型環境は、非会話型の MPP インターフェイスによって実装されます。このインターフェイスは、Natural パラメータモジュールによって非会話型 MPP フロントエンドにリンクされています。 このフロントエンドは IMS/TM アプリケーションプログラムで、割り当てられたトランザクションコードの入力メッセージが IMS/TM メッセージキューで利用できる場合に、IMS/TM によってスケジュールされます。

ダイアログ指向の非会話型環境を使用する場合は、SIP 機能を有効にした Natural 認可サービスマネージャおよび物理的な入力編集ルーチンが前提条件となります。

以下では、同じ Natural サブシステム ID を指定する必要があります。

MSC 環境の特別な考慮事項

次の環境を想定して、Natural IMS インターフェイスは NAT-B に対してメッセージ X'000500006D' を用意します。これは端末ユーザーが CLEAR キーを押したことを意味します。

           IMS-A                       IMS-B
			        -----                       -----
   MPP-A1  MPP-A2  MPP-A3     MPP-B1  MPP-B2  MPP-B3              
   ------  ------  ------     ------  ------  ------
			                  DIRECT SWITCH        
      NAT-A -----------------------------> NAT-B

トランザクションコードテーブルに、2 つのエントリを作成する必要があります。1 つ目のエントリは NAT-A、2 つ目のエントリは NAT-B です。

これらの 2 つのエントリは Natural Reserved Area(NRA)に対して異なるオフセットを指定する必要があり、またこれらのエリアがオーバーラップしないようにする必要があります。

NAT-B は、Natural セッションが通常の方法で IMS-B で開始されることを検出し、セッション開始出口ルーチンに制御を与えます。 セッション開始出口ルーチンは入力メッセージで文字列 X'000500006D' をチェックして、Natural から見た入力メッセージの長さを 0 に設定します。

追加のロジックが出口 NIIXSTAR または出口 NIIXSSTA のいずれかで提供されない場合は、Natural は IMS-B で新しいユーザーセッションを開始します。

IMS-A および IMS-B は、Natural に対して異なる専用ロールファイルが割り当てられていると想定します。

両方(またはそれ以上)の Natural セッションは、直接プログラム間の切り替えを実行するときに SPA でデータを転送することによって、互いに通信することができます。

しばらくの間、このような環境に複数の Natural セッションが存在する場合は、"アクティブ" なセッションのみが正しく終了します。

Top of page

メッセージ指向の環境

このセクションでは、IMS/TM 環境の Natural で使用するメッセージ指向のインターフェイスについて説明します。

メッセージ指向の環境について

このインターフェイスは、純粋なデータ入力メッセージを処理するように設計されています。つまり、メッセージは 3270 データストリームを示していません。 メッセージ指向のインターフェイスは、ユーザーが記述した Natural プログラムによって駆動されます。このプログラムが、入力メッセージの取得を目的として IMS メッセージキューにアクセスするようにインターフェイスに指示します。

メッセージ指向のインターフェイスが作成された目的は、非会話型で非端末駆動のトランザクションを、非会話型の MPP トランザクションとして実行できるようにすることです。

メッセージ指向環境の操作

メッセージ指向のインターフェイスには、MPP および BMP インターフェイスの両方から機能が組み込まれています。 要求される処理の多くは BMP タイプのトランザクションをエミュレートするため、BMP インターフェイスが基盤として使用されます。

メッセージ指向のインターフェイスは端末指向ではないため、メッセージまたは画面イメージが自動的に生成されて端末に送信されることはありません。 Natural ニュークリアスにはバッチ環境で実行されていることが通知されるため、出力はプリンタ出力と解釈され、入力は CMSYNIN ファイルからの入力であると想定されます。 通常 CMPRINT に書き込まれるすべての出力は、Natural プロファイルパラメータ SENDER で指定された IMS/TM の宛先に送信されます。 詳細については、以下の「SENDER の宛先」を参照してください。

Natural が入力データの取得を試みたが、入力データが STACK コマンドを介してアプリケーションから提供されていない場合、EOF は入力が存在しないことを示し、Natural は終了します。

サービスモジュール CMSNFPRT を使用することによって、ランタイム時に SENDER を新しい値に設定することができます。

チェックポイント処理を除いて、DL/I 用の Natural および DB2 用の Natural での処理は、BMP モードと同様になります。 これが必要な理由は、物理的な 1 つのスケジューリングによって複数の無関係な入力メッセージが処理される可能性があるからです(ほとんどの場合、こうなります)。 会話型の MPP インターフェイス環境では、1 つの Natural セッション中に処理されるすべてのトランザクション、およびこの Natural セッション内のすべての DL/I 要求は関連していると見なされ、データベースの位置および PCB 使用のメンテナンスが必要となります。 非会話型のインターフェイスでは、この DL/I 用の Natural のロジックは適用されません。

1 つのスケジューリング(また 1 つの Natural セッション)中に処理されるトランザクションは互いに関連していないため、ロールファイルの Natural セッション情報を保持する必要はありません。 このため、このインターフェイスにはロールデータセットを割り当てる必要はありません。 ロールスロットエリアは GETMAIN を介して割り当てられ、すべての Natural コントロールブロックおよびワークエリアの格納に使用されます。

処理はメッセージごとに実行されるので、再配置ロジックは必要ありません。

メッセージ指向のインターフェイスでは、メッセージキューからのすべてのメッセージの取得はフロントエンドの Natural プログラムによって開始されます。 ユーザー固有の処理要件を満たすために、このプログラムはユーザーが記述する必要があります。 しかし、次に示すような特定の構造も必要です。

PROGRAM INITIALIZATION
REPEAT
CALL 'CMGETMSG' MESSAGE-AREA MESSAGE-LENGTH
IF MSG-LL = 0 /* QC on GU to message queue
TERMINATE
FETCH RETURN PGMA MESSAGE-AREA
REPEAT
CALL 'CMGETSEG' MESSAGE-AREA MESSAGE-LENGTH
IF MSG-LL = 0 /* QD on GN to message queue
ESCAPE
FETCH RETURN PGMB MESSAGE-AREA
END-REPEAT
END-REPEAT
END

サービスモジュール CMGETMSG は、最初のメッセージセグメントを読み込みます。 サービスモジュール CMGETSEG は、他のすべてのメッセージセグメントを読み込みます。

Natural は CMSYNIN からの入力を読み込むことができないため、Natural スタックを入力に使用する必要があります。 この処理は、Natural プロファイルパラメータ STACK を使用して行われます。

Natural を終了する前にアプリケーションが IMS メッセージキューにアクセスする処理は、ユーザーが行います。 これを行わないと、Natural トランザクションは異常終了し、メッセージキューに対する GU が実行されていないことを示す IMS アベンドコード 462 が表示されます。

異常終了の場合でもこれらの Natural メッセージを取得するには、最初の代替 PCB を EXPRESS PCB として定義することをお勧めします。

メッセージ指向の環境は、NTRD インターフェイスによって実装されます。このインターフェイスは、Natural パラメータモジュールによって NTRD フロントエンドにリンクされています。 このフロントエンドは、直接 IMS/TM によって、または NIMBOOT マクロで生成されたブートストラップモジュールを介して呼び出すことができます。

IMS/TM によって直接呼び出される場合、このフロントエンドは IMS/TM によってスケジュールされる IMS/TM アプリケーションプログラムです(割り当てられたトランザクションコードに対する入力メッセージを IMS/TM メッセージキューで利用できる場合)。 必要な STACK パラメータを含む Natural プロファイルを使用することをお勧めします。 Natural パラメータモジュールで PROFILE=PROGRAM を指定し、インターフェイスが起動されたトランザクションコードと同じ名前でプロファイルを作成します。 こうすることで、使用されるトランザクションコードごとに異なる STACK を持つ異なるプロファイルを使用する柔軟性を得ることができます。

ブートストラップモジュールを介して呼び出す場合、このブートストラップモジュールは IMS/TM によってスケジュールされる IMS/TM アプリケーションプログラムです(割り当てられたトランザクションコードに対する入力メッセージを IMS/TM メッセージキューで利用できる場合)。 このブートストラップモジュールは、一連のダイナミックプロファイルパラメータを提供します。その 1 つは STACK プロファイルパラメータで、このブートストラップモジュールの生成中に名前が指定される NTRD フロントエンドを呼び出します。 多様なダイナミックプロファイルパラメータ設定で Natural を呼び出す場合は、さまざまなブートストラップモジュールを生成し、それぞれに独自のダイナミックプロファイルパラメータ文字列を使用する必要があります。 これらのブートストラップモジュールは、それぞれ一意の名前でリンクされている必要があります。 また、得られる各ロードモジュールに一意の IMS/TM トランザクションコードを割り当てる必要があります。

Top of page

バッチメッセージ処理環境

バッチメッセージ処理(BMP)環境は、BMP インターフェイスによって実装されます。このインターフェイスは、Natural パラメータモジュールおよびワークファイル/出力ファイルアクセスルーチン NATWKFO によって、BMP フロントエンドにリンクされています。 このフロントエンドは、BMP JCL で指定された IMS/TM アプリケーションプログラムです。

標準の Natural バッチは、バッチメッセージ処理リージョンで実行されます。 標準の Natural バッチ実行と比較して、オプションの入力データセット CONTROL を使用することができます。

オプションの BMP CONTROL ファイルには、最大 2 つの入力カードが含まれています。

ダイナミックな Natural パラメータを渡すための CMPRMIN データセットと CONTROL ファイルの使用

ダイナミックな Natural パラメータを渡すために CMPRMIN データセットも使用する場合は、CONTROL の入力が CMPRMIN の入力に追加されます。 これは、CONTROL で指定されたパラメータが CMPRMIN で指定されたパラメータを上書きすることを意味します。

CONTROL ファイルを使わない作業

CONTROL ファイルを使用しない場合、環境テーブルの名前は使用されるトランザクションコード(トランザクション指向の BMP)、または使用される PSB 名(バッチ指向の BMP)に対応するトランザクションコードテーブルのエントリによって決定されます。

Top of page

Natural WRITE (n) ステートメントのサポート

WRITE (n) ステートメントを使用すると、異なるプリンタで最大 31 の異なるレポートを、同じ Natural プログラム内に作成することができます。 レポートは、Natural パラメータモジュールで、または Natural DEFINE PRINTER (n) ステートメントを使用して指定された IMS 端末に送信されます。 レポートを制御する NTPRINT マクロで AM=IMS を指定する必要があります。

このステートメントを使用するには、同じ Natural プログラム内に作成する並列レポートの数と同数の追加の代替 TP-PCB を PSB に定義し、WRKPCB パラメータを使用してトランザクションコードテーブルで追加の代替 TP-PCB の数を指定します。

注意:
1 つ目の代替 TP-PCB は Natural IMS インターフェイスによって使用されることに注意してください。

ダイアログ指向の環境で WRITE (n) ステートメントを使用するときは、次の制限が適用されます。

レポートの生成は、1 つ以上の画面 I/O にまたがって実行することはできません。 画面 I/O 後に同じプリンタを使用する場合は、CLOSE PRINTER (n) ステートメントを使用して、画面 I/O の前にプリンタを明示的に閉じる必要があります。

レポートの作成には、NTPRINT マクロの次のキーワードサブパラメータが関連しています。

パラメータ 意味
AM "IMS" に設定する必要があります。
DEST IMS/TM の宛先を指定します。
BLKSIZE 宛先に送信されるバッファのサイズを指定します。 レポート行がバッファされます。
DRIVER レポートの作成に使用するドライバを指定します。 利用できる値のリストについては、Natural/IMS インターフェイスパラメータモジュールの PRTDRIV パラメータを参照してください。 ドライバは、フォームフィードの場所(レポートの開始位置、終了位置、開始位置と終了位置の両方、またはフォームフィードなし)、ページの開始位置(1 行目、または NII 2.2 との互換性のために 2 行目)、およびレポートの出力場所(SCS プリンタまたは非 SCS プリンタ)を決定します。 さらに、JES API を使用することを指定できます。

NAME
FORMS
DISP
COPIES
CLASS
PRTY

これらのパラメータは、JES API を使用する場合のみ評価されます。

NTPRINT および CLOSE PRINTER に関するヒント

NTPRINT の設定

IMS/TM プリンタ(つまり、AM=STD で定義されたプリンタ)の NTPRINT マクロまたは PRINT プロファイルパラメータ定義の OPEN および CLOSE のサブパラメータには常にデフォルトを使用することを強くお勧めします。 つまり、OPEN および CLOSE に対して値を指定しないか、またはデフォルトの OPEN=ACC および CLOSE=CMD を使用してください。

これは、OPEN および CLOSE の他のオプションを使用して、異なるアクセス方式に対して NATPARM に静的にプリンタを定義した場合、および AM=IMS でアクセス方式をダイナミックに上書きする場合に特に重要です。 この場合、常に AM=IMS、OPEN=ACC、CLOSE=CMD を同時に指定してください。

注意:
アクセス方式が上書きされても、NTPRINT オプションはダイナミックに指定された PRINT オプションとマージされます。

非デフォルト値を使用すると発生する可能性がある問題

  1. OPEN=OBJ を使用すると、OUTPUT オプションを DEFINE PRINTER ステートメントで指定している場合に、間違った出力先に出力されたり、NAT8211 エラーが発生する場合があります。 OPEN=OBJ を指定すると、OUTPUT の上書きが評価される前にプリンタが開かれ、使用されるプリンタの出力先は OUTPUT オプションで指定された場所ではなく、PRINT パラメータで指定された場所になります。

  2. CLOSE=FIN を指定すると、プリンタは CLOSE PRINTER 時ではなく FIN 時に閉じられます。 これは、GU がメッセージキューに発行され、宛先が TP PCB でリセットされた後に、CLOSE が来る場合があることを意味します。 このために、IMS/TM ステータスコード QF(MPP)または A3(BMP および OBMP/NTRD)に対して NII エラー NII3641 が発生します。 CLOSE=CMD を指定すると、プリンタは CLOSE PRINTER ステートメントで実際に閉じられます。

CLOSE PRINTER または DEFINE PRINTER の使用

IMS/TM プリンタに書き込まれたレポートは、次の GU 呼び出しで(つまり端末 I/O 時または CMGETMSG を介して)、IMS/TM によって暗黙的に閉じられます。 つまり、IMS/TM はプログラムの CLOSE PRINTER または DEFINE PRINTER ステートメントに関係なくレポートを出力します。

Natural に対してはプリンタは開いた状態で、同じレポート番号を持つ次の WRITE ステートメントがすでに出力されたレポートを続行するため、NAT1518 エラーが発生します。

シナリオ:

DEFINE PRINTER (1)
  WRITE (1) 'line 1'
  INPUT 'Press ENTER' or CALL 'CMGETMSG' (both issue a GU)
  WRITE (2) 'line 2'

INPUT/CMGETMSG は "物理的"に プリンタを閉じ、IMS/TM は行 'line 1' を含むレポートを出力します。

プリンタは Natural に対して "論理的には" 開いているために、行 'line 2' は新しいレポートを開始せず、宛先が GU 呼び出しによって削除されるためにエラー NAT1518 が発生します。

このため、次のルールを守ることを強くお勧めします。

注意:
GU の後に同じ番号のレポートが継続された場合は CLOSE PRINTER ステートメントが必要です。

DEFINE PRINTER ステートメントは暗黙の終了を実行します。この場合、CLOSE PRINTER ステートメントは使用されません。例えば次のようになります。

正しいステートメント 正しいステートメント 誤ったステートメント(NAT1518)
REPEAT
  DEFINE PRINTER (1)
  WRITE (1) 
        
  INPUT
LOOP
DEFINE PRINTER (1)
REPEAT
  WRITE(1)
  CLOSE PRINTER (1)
  INPUT
LOOP
DEFINE PRINTER (1)
REPEAT
  WRITE(1)
  
  INPUT
LOOP

Top of page

SET CONTROL 'N'(端末コマンド %N)

ステートメント SET CONTROL 'N'(端末コマンド %N)は IMS/TM 環境では適用されません。 IMS/TM 環境で使用すると、次の論理出力画面が妨げられます。

Top of page

IMS/TM における Natural メッセージでの TS=ON のサポート

TS=ON が Natural セッションで指定されると、IMS/TM における Natural メッセージはすべて大文字に変換されます。

Top of page

SENDER の宛先

メッセージ指向(NTRD)およびサーバー(SRVD)環境において、通常は CMPRINT に書き込まれるすべての出力は、Natural プロファイルパラメータ SENDER で指定された宛先に送信されます。 SENDER を指定する場合は、出力が IMS メッセージキューを介して送信される有効な IMS/TM の宛先(通常は LTERM)を指定するか、または次の予約値のいずれかを指定します。

意味
*WTO Natural 出力は宛先コード 11(プログラマ情報)で WTO を使用して、ジョブログに送信されます。
*MTO Natural 出力は /BROADCAST MASTER コマンドを使用して、IMS マスタコンソールに送信されます。
*PRINTnn Natural 出力は Natural プリンタ nn に書き込まれます。つまり、出力は内部の WRITE(nn) を使用して書き込まれます。

出力ファイルは各出力行後に閉じられ、各出力行の改行制御文字は空白になります。

注意:

  1. /BROADCAST MASTER コマンドが失敗すると(例えば認証問題のため)、WTO を使用してエラーメッセージが発行され、現在のメッセージを含むすべての Natural メッセージがジョブログに送信されます。 つまり、SENDER の宛先は内部的に *WTO に設定されます。
  2. *PRINT nn の場合には、AM=STD で定義されたプリンタのみを使用することを強くお勧めします。
  3. Natural プロファイルパラメータモジュールで SENDER の宛先をコード化することを強くお勧めします。 これにより、Natural の初期化が失敗した場合でも(Adabas エラー NAT3048 または NAT3148 などのため)、宛先は見つかります。
  4. SENDER の宛先をダイナミックに指定する必要がある場合は、予約値を一重引用符で囲む必要があります(例えば SENDER='*WTO')。

Top of page

Natural プロファイルパラメータ PROGRAM のサポート

Natural プロファイルパラメータ PROGRAM は、ダイアログ指向の環境および BMP 環境でサポートされています。

BMP 環境では、パラメータ PROGRAM は、標準の z/OS バッチ環境と同じように動作します。 XNIIBACK という名前を使った例が NIIvrs.SRCE データセットで提供されています。 起動されたバックエンドプログラムは Natural IMS インターフェイスに戻るようになっています。

ダイアログ指向の環境では、Natural プロファイルパラメータ PROGRAM は、BMP 環境を含む他の Natural 環境とは動作が少し異なります。

  1. プロファイルパラメータ PROGRAM または Natural サブプログラム CMPGMSET で指定される名前は、IMS トランザクションコードの名前です。

  2. Natural セッションがエラーなく終了した場合のみ、指定されたトランザクションコードが起動します。

  3. TERMINATE ステートメントで提供されるデータは、起動された IMS トランザクションに入力メッセージとして渡されます。

Top of page