破棄不能メッセージ出口ルーチンにより、異常終了した IMS アプリケーション プログラムに関連付けられた入力メッセージの処理方法を Enterprise Server に指定できます。この出口ルーチンは、入力メッセージの処理中にアプリケーションが異常終了した場合に制御を引き受けます。破棄不能メッセージ出口が存在しない場合は、Enterprise Server によって入力メッセージが破棄されます。
注: データは、破棄不能メッセージ出口との間で常に ASCII 形式で渡されます。
呼び出し
破棄不能メッセージ出口ルーチンは、入力メッセージの処理中にアプリケーションが異常終了した場合に呼び出されます。
コーディング要件
- ファイル名と場所
- 出口ルーチン プログラム DFSNDMX0.cbl を指定する必要があります。また、このプログラムが ES_IMS_EXITPATH 環境変数によって指定されたディレクトリにある必要があります。
- 処理オプション
- 以下の処理オプションが有効です。
- 通常の処理を続行する
- 通常の処理を続行するオプションは、デフォルトのオプションです。このオプションを要求するには、エンタープライズ サーバーに戻る前に戻りコードをゼロに設定します。このオプションを要求すると、エンタープライズ サーバーはこの出口ルーチンが呼び出されなかったときのように続行します。エンタープライズ
サーバーは、アプリケーションの異常終了時に処理されていたトランザクションを停止して、システムから入力メッセージを削除し、発信元ターミナルに DFS555I メッセージを発行します (可能な場合)。
- 入力メッセージをシステムから削除する
- このオプションを要求するには、エンタープライズ サーバーに戻る前に戻りコードを 4 に設定します。このオプションを要求すると、エンタープライズ サーバーは処理されていたトランザクションを停止して、システムから入力メッセージを削除し、発信元ターミナルに
DFS555I メッセージを発行します。
- 入力メッセージを一時停止キューに移動する
- このオプションを要求するには、エンタープライズ サーバーに戻る前に戻りコードを 8 に設定します。このオプションを要求すると、エンタープライズ サーバーは処理されていたトランザクションを停止して、入力メッセージをトランザクションの一時停止キューに移動し、発信元ターミナルに
DFS555I メッセージを発行します。
- 入力メッセージを元のトランザクションのキューに再登録する
- このオプションを要求するには、エンタープライズ サーバーに戻る前に戻りコードを 12 に設定します。このオプションを要求すると、エンタープライズ サーバーは、処理されていたトランザクションの正常処理キューに入力メッセージを再登録します。エンタープライズ
サーバーは、NDM インターフェイス ブロックの NDMTRNST フィールドの内容によって処理を行うことを指示されない限り、トランザクションを停止して DFS555I メッセージを発行します (以下を参照)。
- 代替の宛先に入力メッセージをキューする
- このオプションを要求するには、エンタープライズ サーバーに戻る前に、戻りコードを 16 に設定し、有効な送信先を NDM インターフェイス ブロックの NDMDEST フィールドに入力します。代替の宛先には、トランザクション コードまたは LTERM
名を指定できます。このオプションを要求すると、エンタープライズ サーバーは処理されていたトランザクションを停止して、入力メッセージを代替の宛先にキューし、エンタープライズ サーバー コンソールに成功メッセージを発行し、発信元ターミナルに DFS555I
メッセージを発行します。NDMDEST に無効な宛先 (ゼロや空白など) またはエンタープライズ サーバーにとって未知の宛先が含まれている場合、エンタープライズ サーバーは要求を無視して宛先を変更し通常の処理を続行します。
- Enterprise Server との通信
- Enterprise Server との通信を有効にするには、出口ルーチンでは標準のユーザー出口パラメーター リストからパラメーターを指定し、破棄不能メッセージ (NDM) インターフェイス ブロックを使用する必要があります。詳細については、「標準ユーザー出口パラメーター リスト」および「破棄不能メッセージ (NDM) インターフェイス ブロック」を参照してください。
- 戻りコード
- Enterprise Server に戻る前に、出口ルーチンで次の戻りコードのいずれかを設定する必要があります。
戻りコード |
説明 |
0 |
通常の処理を続行する。 |
4 |
入力メッセージをシステムから削除する。 |
8 |
入力メッセージを一時停止キューに移動する。 |
12 |
入力メッセージを元のトランザクションのキューに再登録する。 |
16 |
入力メッセージを代替の宛先にキューする。この宛先は NDM インターフェイス ブロックの NDMDEST フィールドに指定されます。 |