Natural CICS インターフェイスドキュメントのこのドキュメントでは、Natural CICS の特殊な機能について説明します。
ここでは次のセクションについて説明します。
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 以外のプログラムは、基礎となるオペレーティングシステムおよび/または TP モニタシステム内でプログラムが起動される方法で、Natural によって起動(CALL)されます。
CICS では、Natural 以外のプログラムは EXEC CICS LINK
要求によって起動されます。 しかし、例えば同じサブルーチンプログラム(CICS またはオペレーティングシステム要求を発行しない)が、バッチおよびオンライン処理の両方に使用される場合、Natural 以外のプログラムも CICS 標準リンケージ規約を使用して、つまり
BALR R14、R15
を介して起動される場合があります。
詳細については、『端末コマンド』ドキュメントで端末コマンド %P=S を参照してください。 NCMPRM
マクロの SLCALL
パラメータも参照してください。
デフォルトでは、Natural 以外のプログラムは、TWA および COMMAREA で渡された、要求パラメータおよびフィールドディスクリプタリスト(R1
および R2
。Natural の『ステートメント』ドキュメントで CALL
ステートメントの説明も参照)のアドレスを使って呼び出されます(NCIPARM
パラメータ COMACAL
の設定に依存)。
より CICS に近いのは CICS COMMAREA にパラメータ値を渡す方法で、特に呼び出されるプログラムが別の CICS リージョンに存在する場合(分散プログラムリンク(DPL))がそうです。この場合、"呼び出している" リージョン内のアドレスには "呼び出される" リージョンからはアクセスできないためです。
詳細および制限については、『端末コマンド』ドキュメントで端末コマンド %P=C
を参照してください。
この機能を使用するには、NCIPARM
で COMACAL
を YES
に設定する必要があります。
パラメータ値が CICS COMMAREA に渡されるとき、CICS TWA の最初の 2 ワードは低い値です。つまり、R1
および R2
の情報は渡されません。
SET CONTROL 'QO'
ステートメントが Natural ステートメントの前に配置され、画面 I/O が実行されると、端末出力は CICS 環境の Natural によって実行されません。 したがって、Enter キーおよびユーザー入力は Natural に渡されません。
この機能は、次のような状況に便利です。
擬似会話型画面 I/O を終了し、Natural によって呼び出された Natural 以外のプログラムに移る場合。 Natural 以外のプログラムは EXEC CICS SEND
操作を実行し、Natural に戻ります。 SET CONTROL 'QO'
ステートメントのために、次の Natural 画面 I/O は、擬似会話型セッションのタスクを終了します。 画面入力時に、Natural は制御を受け取り、Natural 以外のプログラムを再度起動して、次に EXEC CICS RECEIVE
を実行します。
端末オペレータの介入を必要とせず、"実行中に" 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
別の 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 は、新しい(擬似会話型)アプリケーションでも使用される可能性が高いためです。
NCISTART
(つまりエントリポイントとして NCISTART
を持つ Natural CICS ニュークリアス)は CICS 静止段階 1 または 2 の実行のために CICS PLTSD に配置するのに適しています。
静止段階 1 で実行する場合、NCISTART
は SYSTP
スナップショット機能を実行します(Natural の『ユーティリティ』ドキュメントの「SYSTP ユーティリティ」で説明)。
静止段階 2 で実行する場合、NCISTART
は SYSTP
スナップショット機能を実行する前にアクティブなすべての Natural セッションを強制終了します。
NCISTART
は、CICS COMMAREA(CICS/TS)または TWA の初めに(CICS/VSE バージョン 2.3)、関連する CICS 端末エントリアドレスを持つノードエラープログラムによって(CICS LINK を介して)呼び出されるロジックを保持しています。