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

ユーザープログラムからの Natural の起動

Natural CICS インターフェイスドキュメントのこのセクションでは、ユーザープログラムから Natural を起動するさまざまな方法について説明します。

内容は以下のとおりです。


Natural セッションをアクティブ化するコマンド

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

Natural セッションは、次のコマンドのいずれかを使ってユーザーのフロントエンドプログラムからアクティブ化することができます。

または同等の CICS マクロレベル要求。

EXEC CICS XCTL または EXEC CICS LINK の使用

EXEC CICS XCTL/LINK を使用する場合、Natural によって使用されるパラメータは、CICS COMMAREA または TWA で渡すことができます。

フロントエンドプログラムを適切に識別するには、フロントエンドパラメータリストの最初の 4 バイトが現在のトランザクション ID を示している必要があります。

フロントエンドプログラムに関連するトランザクション ID には、Natural の TWA サイズ以上の TWA サイズが必要です。「ncitransact」も参照してください(Natural の『インストール』ドキュメントの「Natural CICS インターフェイスのインストール」の手順 20)。

EXEC CICS START の使用

EXEC CICS START を使用する場合、Natural によって使用されるフロントエンドおよびダイナミックパラメータは、EXEC CICS START コマンドの FROM (...) および LENGTH (...) で渡すことができます。 これらのパラメータについては、次のページで説明します。

分散プログラムリンク(DPL)の使用

リモートリージョンをポイントする SYSID パラメータで EXEC CICS LINK を使用する場合、Natural によって使用されるフロントエンドおよびダイナミックパラメータは CICS COMMAREA で渡す必要があります。 また、Natural の要件を満たす TWA サイズのミラートランザクションのトランザクションコードを指定する TRANSID パラメータも指定する必要があります。

非同期 Natural セッションと同じ制限が、DPL を介して起動される Natural セッションに適用されることに注意する必要があります。つまり、入力は不可能であり(したがって、同じダイナミックパラメータ設定を推奨)、呼び出し元は Natural セッションの終了後に制御を受け取ります。

サンプルプログラム

さまざまなプログラミング手法に対応するサンプルプログラムを、Natural CICS ソースライブラリで提供しています。「Natural CICS のサンプルプログラム」も参照してください。

外部サブルーチン CMTASK の使用

外部サブルーチン CMTASK を呼び出すことによって、Natural プログラムから Natural セッションを開始することができます。 ライブラリ SYSEXTP で Natural のサンプルプログラム ASYNCICS を参照してください。

Top of page

フロントエンドパラメータ

ユーザーのフロントエンドプログラムから Natural を起動するためには、次のパラメータリストを入力します。

場所 内容
1 - 4
トランザクション ID の起動

この値は現在のトランザクション ID と等しい必要があります。 呼び出しているトランザクション ID から、Natural はユーザーのフロントエンドプログラムによって呼び出されたことを識別します。

XCTL で呼び出されている場合は、リターンプログラム名が指定されていない限り、トランザクションは RETURNTRANS ID により Natural セッションの終了時に再スタートされます(5 つ目のパラメータを参照)。

5 - 8
ダイナミックパラメータ文字列のアドレス/オフセット

ダイナミックパラメータの上書きが評価される場合は、この値は、ダイナミックパラメータ割り当て文字列の 12 バイト前に位置するアドレスに設定する必要があります。

START または DPL で呼び出される場合は、フィールドは、ダイナミックパラメータ割り当て文字列の 12 バイト前に位置するアドレスのオフセット(フロントエンドパラメータリストの開始位置に相対的)に設定する必要があります。

9 - 10
ダイナミックパラメータ文字列の長さ

ゼロはパラメータが渡されないことを示します。 許可される最大長は 32760 です。 最大値を超えると、セッションが終了して対応するエラーメッセージが表示されます。

11 - 14
Natural トランザクション ID

指定された値は、START または XCTL で呼び出されるときに、擬似会話型 Natural セッションの制御に使用されるトランザクション ID です。 このトランザクションは、Natural セッションが擬似会話型モードで、つまり各端末 I/O で再スタートされるたびに起動されます。

Natural トランザクション ID が指定されていない場合は、Natural は、現在の CICS タスクを開始したトランザクション ID を再スタートして、フロントエンドプログラムは各擬似会話型 I/O の後に制御を回復します。

15 - 22
バックエンドプログラム名

この 8 バイトの値は、Natural セッションの終了時に制御が転送されるプログラム名です。この場合、RETURNTRANSID を使ってトランザクション ID の呼び出しを再開するのではなく、CICS XCTL コマンドが使用されます。

このフィールドの最初のバイトが数値の場合は、Natural はバックエンドをアクティブにすることなく単に RETURN を実行します。 このフィールドの代わりに、Natural プロファイルパラメータ PROGRAM を使用することもできます。

Natural 以外のバックエンドプログラムを呼び出すための規則については、Natural の『オペレーション』ドキュメントを参照してください。

Top of page

LINK を介して起動されたフロントエンド

フロントエンドに戻るときに、Natural は TWA で、セッションが終了したかどうかを示します。セッションが終了した場合は、TWA に通常のバックエンド情報が保持されます(『オペレーション』ドキュメントの「バックエンドプログラムの呼び出し規則」を参照)。それ以外の場合は、Natural は TWA の最初の 4 バイトに NEXTTRANSID を出力します。

Natural が擬似会話型モード(プロファイルパラメータ PSEUDOON に設定)で実行されており、EXEC CICS LINK(または同等の CICS マクロレベル要求)によって起動された場合、Natural が端末に書き込みを行い入力を待つたびに、オリジナルの呼び出し側のトランザクションが起動されます。つまり、Natural は再スタート情報を CICS 一時ストレージに書き込んだ後に "論理" CICS RETURN TRANSID (..) を発行します。

呼び出し側のトランザクションはこの状況を認識して(例えば NEXTTRANSID が送信されたかどうかをチェックしたり、NCOMxxxx TS レコードの存在によって認識する。NCOM は Natural CICS パラメータ生成オプションで、xxxx は端末 ID)、制御を Natural に渡す必要があります。

この方法の利点として、セッション中にフロントエンドプログラムは、制御を別のアプリケーション(例えば COBOL)に渡して後で Natural セッションを再開することを決定できます。

詳細については、『パラメータリファレンス』ドキュメントで PSEUDO パラメータの説明を参照してください。

設計によって、Natural はセッション終了時に LINK フロントエンドプログラムをバックエンドプログラムとして処理します。つまり、バックエンドプログラムの呼び出し規則が適用されます。

CICSplex 環境

参加しているすべての CICS AOR が、(例えば適切な CICS TST 定義を介して)NCOMxxxx TS レコードにアクセスできることを確認してください。

または、LINK フロントエンドプログラムが、タスク終了時に CICS 一時ストレージ内の NCI セッション再スタート情報を取得し、それを CICS COMMAREA で渡すこともできます。そのような COMMAREA は、セッション再開のために Natural を起動する前に、CICS 一時ストレージに再度出力される必要があります。

Top of page

START を介して起動されたフロントエンド

Natural セッションが開始されたタスクである場合は(つまり、START を実行されたフロントエンドユーザープログラムによる EXEC CICS START または EXEC CICS LINK/XCTL コマンドによって起動された場合)、Natural は、最初に COMMAREA によって提供された起動パラメータ、次に TWA のパラメータをスキャンして、最後に EXEC CICS RETRIEVE コマンドによって必要なパラメータを取得しようとします。

Top of page

XCTL を介して起動されたフロントエンド

Natural セッションが XCTL を使ってフロントエンドプログラムから開始され、リターンプログラムが指定されていない場合(つまりセッション起動パラメータの 5 番目のパラメータの指定も、Natural ダイナミックパラメータまたは NTPRM マクロの PROGRAM 指定もされていない場合)、Natural は内部的に PROGRAM='RET=xxx' 指定をシミュレートすることによって RETURNTRANSID を介してセッション終了時にユーザーフロントエンドトランザクションを再スタートします。ここで xxx はフロントエンドトランザクションコードです。

ループ状況を回避するために、新しいセッションを開始するか、古いセッションを再開するかを決定するロジックがユーザーのフロントエンドルーチンに含まれている必要があります。

Top of page

分散プログラムリンク(DPL)を介して起動されたフロントエンド

Natural セッションが DPL を介して起動された場合、Natural は最初に、サーバーリージョンで直接起動されたか、ローカルフロントエンドプログラムによって EXEC CICS LINK/XCTL を介して間接的に起動されたかを判別します。 直接起動された場合は、Natural は CICS COMMAREA から起動パラメータを取得します。 間接的に起動された場合は、Natural は COMMAREA で提供された起動パラメータをスキャンし、次に TWA 内のパラメータをスキャンます。 リターン時に、ローカル LINK フロントエンドプログラムが使用可能な場合は、Natural は通常のバックエンドデータを TWA で渡します。それ以外の場合は、終了メッセージと潜在的なバックエンドデータをリモートクライアントの COMMAREA で返します。

Top of page

フロントエンドプログラムをバックエンドとして起動

Natural セッションがフロントエンドプログラムから開始され、このプログラムがリターンプログラムとしても指定されている場合、ユーザーのフロントエンドは、開始するトランザクション ID もチェックする必要があります。

この状況は特に、フロントエンドプログラムが擬似会話型モードではなく、Natural が会話型モードである場合に該当します。

この場合、Natural は終了されずに再度起動されますが、起動パラメータの最初のパラメータは Natural トランザクション ID なので、このときはフロントエンドプログラムによって呼び出されたことは検出されません。

Top of page