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

Natural CICS の特殊な機能

Natural CICS インターフェイスドキュメントのこのドキュメントでは、Natural CICS の特殊な機能について説明します。

ここでは次のセクションについて説明します。


Natural 以外のプログラムの呼び出し

Natural タスクが開始時に行う最初のアクションの 1 つは、異常終了処理の出口をアクティブにすることです。 この出口は、異常終了の際にスレッドを含むすべてのリソースを解放するために使用します。 このため、Natural 以外のプログラムで EXEC CICS ABEND CANCEL または同等のマクロレベル要求を発行してはいけなりません。これは、このような要求によって現在のセッションがキャンセルされ、アクティブな出口が無視されるためです。 この場合、Natural はリソースをクリーンアップすることができず、スレッドおよびロール機能は解放されません。

Natural プログラムがアクティブな場合は常に、スレッドは Natural タスクに割り当てられます。 これは、Natural 以外のプログラムが(CICS リンケージ規約後に)呼び出された場合も該当します。

このため、このようなプログラムは、間に Natural が制御を受け取ることなく、過度の I/O および他の処理を行うべきではありません。 Natural 以外のプログラムが会話型の画面 I/O を実行している場合は、呼び出しステートメントの前に、Natural 以外のプログラムを呼び出す Natural プログラムに SET CONTROL 'P=V' ステートメントをコード化することができます。これは、Natural 以外のプログラムを呼び出す前に、パラメータデータはスレッドからコピーされ、セッションはロールアウトされることを示します。

標準リンケージ規約を介した Natural 以外のプログラムの呼び出し

Natural 以外のプログラムは、基礎となるオペレーティングシステムおよび/または TP モニタシステム内でプログラムが起動される方法で、Natural によって起動(CALL)されます。

CICS では、Natural 以外のプログラムは EXEC CICS LINK 要求によって起動されます。 しかし、例えば同じサブルーチンプログラム(CICS またはオペレーティングシステム要求を発行しない)が、バッチおよびオンライン処理の両方に使用される場合、Natural 以外のプログラムも CICS 標準リンケージ規約を使用して、つまり BALR R14、R15 を介して起動される場合があります。

詳細については、『端末コマンド』ドキュメントで端末コマンド %P=S を参照してください。 NCMPRM マクロの SLCALL パラメータも参照してください。

COMMAREA のパラメータ値による Natural 以外のプログラムの呼び出し

デフォルトでは、Natural 以外のプログラムは、TWA および COMMAREA で渡された、要求パラメータおよびフィールドディスクリプタリスト(R1 および R2。Natural の『ステートメント』ドキュメントで CALL ステートメントの説明も参照)のアドレスを使って呼び出されます(NCIPARM パラメータ COMACAL の設定に依存)。

より CICS に近いのは CICS COMMAREA にパラメータ値を渡す方法で、特に呼び出されるプログラムが別の CICS リージョンに存在する場合(分散プログラムリンク(DPL))がそうです。この場合、"呼び出している" リージョン内のアドレスには "呼び出される" リージョンからはアクセスできないためです。

詳細および制限については、『端末コマンド』ドキュメントで端末コマンド %P=C を参照してください。

必要条件:

この機能を使用するには、NCIPARMCOMACALYES に設定する必要があります。

パラメータ値が CICS COMMAREA に渡されるとき、CICS TWA の最初の 2 ワードは低い値です。つまり、R1 および R2 の情報は渡されません。

Top of page

CICS 環境の Natural でのダミーの画面 I/O

SET CONTROL 'QO' ステートメントが Natural ステートメントの前に配置され、画面 I/O が実行されると、端末出力は CICS 環境の Natural によって実行されません。 したがって、Enter キーおよびユーザー入力は Natural に渡されません。

この機能は、次のような状況に便利です。

  1. 擬似会話型画面 I/O を終了し、Natural によって呼び出された Natural 以外のプログラムに移る場合。 Natural 以外のプログラムは EXEC CICS SEND 操作を実行し、Natural に戻ります。 SET CONTROL 'QO' ステートメントのために、次の Natural 画面 I/O は、擬似会話型セッションのタスクを終了します。 画面入力時に、Natural は制御を受け取り、Natural 以外のプログラムを再度起動して、次に EXEC CICS RECEIVE を実行します。

  2. 端末オペレータの介入を必要とせず、"実行中に" Natural 擬似会話型のトランザクション ID を変更する場合。

    MOVE *INIT-ID TO termid
    CALLNAT 'CMTRNSET'  trnid  /* change the restart transaction ID
    
    * starting a task on your terminal forces an interrupt as if 
    * pressing any attention identifier 
    
    CALL 'CMTASK' USING trnid
    H'0000' H'00000000' termid
    SET CONTROL 'QO' 
    INPUT 'DUMMY'                 /* dummy I/O, which you will never see 
    WRITE 'HELLO' *INIT-PROGRAM   /* now the new transaction ID is active 
  3. 別の CICS AOR(アプリケーション所有領域)においても、端末オペレータの介入を必要とせず、Natural 外のアプリケーションに切り替える場合。

    * starting a task on your terminal forces an interrupt as if 
    * pressing any attention identifier
    
    CALL 'CMTASK' USING trnid data-length start-data termid
    SET CONTROL 'QO' 
    INPUT 'DUMMY'                  /* dummy I/O, which you will never see 
    WRITE 'HELLO' *INIT-PROGRAM    /* now the new transaction ID is active

    この場合、Natural の再スタートデータを CICS COMMAREA に渡すときにスタックすることは、起動されるアプリケーションの責任です。COMMAREA は、新しい(擬似会話型)アプリケーションでも使用される可能性が高いためです。

Top of page

NCISTART - Natural CICS ニュークリアス

NCISTART(つまりエントリポイントとして NCISTART を持つ Natural CICS ニュークリアス)は CICS 静止段階 1 または 2 の実行のために CICS PLTSD に配置するのに適しています。

NCISTART は、CICS COMMAREA(CICS/TS)または TWA の初めに(CICS/VSE バージョン 2.3)、関連する CICS 端末エントリアドレスを持つノードエラープログラムによって(CICS LINK を介して)呼び出されるロジックを保持しています。

Top of page