Natural CICS インターフェイスドキュメントのこのセクションでは、ユーザープログラムから Natural を起動するさまざまな方法について説明します。
内容は以下のとおりです。
このセクションでは、次のトピックについて説明します。
Natural セッションは、次のコマンドのいずれかを使ってユーザーのフロントエンドプログラムからアクティブ化することができます。
または同等の CICS マクロレベル要求。
EXEC CICS XCTL/LINK
を使用する場合、Natural によって使用されるパラメータは、CICS COMMAREA または TWA で渡すことができます。
Natural は、セッション初期化時に、渡された COMMAREA の長さを検査することによって起動パラメータの場所を決定します。
長さが 22 の場合は、Natural は COMMAREA でパラメータを見つけようとします。これ以外の場合は、TWA に渡されたと見なされます。
フロントエンドプログラムを適切に識別するには、フロントエンドパラメータリストの最初の 4 バイトが現在のトランザクション ID を示している必要があります。
フロントエンドプログラムに関連するトランザクション ID には、Natural の TWA サイズ以上の TWA サイズが必要です。「ncitransact」も参照してください(Natural の『インストール』ドキュメントの「Natural CICS インターフェイスのインストール」の手順 20)。
EXEC CICS START
を使用する場合、Natural によって使用されるフロントエンドおよびダイナミックパラメータは、EXEC CICS START
コマンドの FROM (...)
および LENGTH (...)
で渡すことができます。 これらのパラメータについては、次のページで説明します。
リモートリージョンをポイントする SYSID
パラメータで EXEC CICS LINK
を使用する場合、Natural によって使用されるフロントエンドおよびダイナミックパラメータは CICS COMMAREA で渡す必要があります。 また、Natural の要件を満たす TWA サイズのミラートランザクションのトランザクションコードを指定する
TRANSID
パラメータも指定する必要があります。
非同期 Natural セッションと同じ制限が、DPL を介して起動される Natural セッションに適用されることに注意する必要があります。つまり、入力は不可能であり(したがって、同じダイナミックパラメータ設定を推奨)、呼び出し元は Natural セッションの終了後に制御を受け取ります。
さまざまなプログラミング手法に対応するサンプルプログラムを、Natural CICS ソースライブラリで提供しています。「Natural CICS のサンプルプログラム」も参照してください。
外部サブルーチン CMTASK
を呼び出すことによって、Natural プログラムから Natural セッションを開始することができます。 ライブラリ SYSEXTP
で Natural のサンプルプログラム ASYNCICS
を参照してください。
ユーザーのフロントエンドプログラムから Natural を起動するためには、次のパラメータリストを入力します。
場所 | 内容 |
---|---|
1 - 4 |
トランザクション ID の起動
この値は現在のトランザクション ID と等しい必要があります。 呼び出しているトランザクション ID から、Natural はユーザーのフロントエンドプログラムによって呼び出されたことを識別します。
|
5 - 8 |
ダイナミックパラメータ文字列のアドレス/オフセット
ダイナミックパラメータの上書きが評価される場合は、この値は、ダイナミックパラメータ割り当て文字列の 12 バイト前に位置するアドレスに設定する必要があります。
|
9 - 10 |
ダイナミックパラメータ文字列の長さ
ゼロはパラメータが渡されないことを示します。 許可される最大長は |
11 - 14 |
Natural トランザクション ID
指定された値は、 Natural トランザクション ID が指定されていない場合は、Natural は、現在の CICS タスクを開始したトランザクション ID を再スタートして、フロントエンドプログラムは各擬似会話型 I/O の後に制御を回復します。 |
15 - 22 |
バックエンドプログラム名
この 8 バイトの値は、Natural セッションの終了時に制御が転送されるプログラム名です。この場合、 このフィールドの最初のバイトが数値の場合は、Natural はバックエンドをアクティブにすることなく単に Natural 以外のバックエンドプログラムを呼び出すための規則については、Natural の『オペレーション』ドキュメントを参照してください。 |
フロントエンドに戻るときに、Natural は TWA で、セッションが終了したかどうかを示します。セッションが終了した場合は、TWA に通常のバックエンド情報が保持されます(『オペレーション』ドキュメントの「バックエンドプログラムの呼び出し規則」を参照)。それ以外の場合は、Natural は TWA の最初の 4 バイトに NEXTTRANSID
を出力します。
Natural が擬似会話型モード(プロファイルパラメータ PSEUDO
を ON
に設定)で実行されており、EXEC CICS LINK
(または同等の CICS マクロレベル要求)によって起動された場合、Natural が端末に書き込みを行い入力を待つたびに、オリジナルの呼び出し側のトランザクションが起動されます。つまり、Natural は再スタート情報を CICS 一時ストレージに書き込んだ後に
"論理" CICS RETURN TRANSID (..)
を発行します。
呼び出し側のトランザクションはこの状況を認識して(例えば NEXTTRANSID
が送信されたかどうかをチェックしたり、NCOMxxxx
TS レコードの存在によって認識する。NCOM
は Natural CICS パラメータ生成オプションで、xxxx
は端末 ID)、制御を Natural に渡す必要があります。
この方法の利点として、セッション中にフロントエンドプログラムは、制御を別のアプリケーション(例えば COBOL)に渡して後で Natural セッションを再開することを決定できます。
詳細については、『パラメータリファレンス』ドキュメントで PSEUDO
パラメータの説明を参照してください。
設計によって、Natural はセッション終了時に LINK フロントエンドプログラムをバックエンドプログラムとして処理します。つまり、バックエンドプログラムの呼び出し規則が適用されます。
参加しているすべての CICS AOR が、(例えば適切な CICS TST 定義を介して)NCOMxxxx
TS レコードにアクセスできることを確認してください。
または、LINK フロントエンドプログラムが、タスク終了時に CICS 一時ストレージ内の NCI セッション再スタート情報を取得し、それを CICS COMMAREA で渡すこともできます。そのような COMMAREA は、セッション再開のために Natural を起動する前に、CICS 一時ストレージに再度出力される必要があります。
Natural セッションが開始されたタスクである場合は(つまり、START
を実行されたフロントエンドユーザープログラムによる EXEC CICS START
または EXEC CICS LINK/XCTL
コマンドによって起動された場合)、Natural は、最初に COMMAREA によって提供された起動パラメータ、次に TWA のパラメータをスキャンして、最後に EXEC CICS RETRIEVE
コマンドによって必要なパラメータを取得しようとします。
Natural セッションが XCTL
を使ってフロントエンドプログラムから開始され、リターンプログラムが指定されていない場合(つまりセッション起動パラメータの 5 番目のパラメータの指定も、Natural ダイナミックパラメータまたは NTPRM
マクロの PROGRAM
指定もされていない場合)、Natural は内部的に PROGRAM='RET=xxx'
指定をシミュレートすることによって RETURN
と TRANSID
を介してセッション終了時にユーザーフロントエンドトランザクションを再スタートします。ここで xxx
はフロントエンドトランザクションコードです。
ループ状況を回避するために、新しいセッションを開始するか、古いセッションを再開するかを決定するロジックがユーザーのフロントエンドルーチンに含まれている必要があります。
Natural セッションが DPL を介して起動された場合、Natural は最初に、サーバーリージョンで直接起動されたか、ローカルフロントエンドプログラムによって EXEC CICS LINK/XCTL
を介して間接的に起動されたかを判別します。 直接起動された場合は、Natural は CICS COMMAREA から起動パラメータを取得します。 間接的に起動された場合は、Natural は COMMAREA で提供された起動パラメータをスキャンし、次に
TWA 内のパラメータをスキャンます。 リターン時に、ローカル LINK フロントエンドプログラムが使用可能な場合は、Natural は通常のバックエンドデータを TWA で渡します。それ以外の場合は、終了メッセージと潜在的なバックエンドデータをリモートクライアントの
COMMAREA で返します。
Natural セッションがフロントエンドプログラムから開始され、このプログラムがリターンプログラムとしても指定されている場合、ユーザーのフロントエンドは、開始するトランザクション ID もチェックする必要があります。
この状況は特に、フロントエンドプログラムが擬似会話型モードではなく、Natural が会話型モードである場合に該当します。
この場合、Natural は終了されずに再度起動されますが、起動パラメータの最初のパラメータは Natural トランザクション ID なので、このときはフロントエンドプログラムによって呼び出されたことは検出されません。