次の方法で共有


Implied Forget

LU 6.2 同期ポイント セッションでは、暗黙的な忘れと呼ばれる設計済みメッセージ フローの最適化を使用できます。 プロトコルで FORGET プレゼンテーション ヘッダー (PS) が必要と指定されている場合、セッションの次のデータ フローは、FORGET が受信されていないことを意味します。 通常の状況では、TP は、データが同期ポイントの会話のいずれかで受信または送信されるときに、次のデータ フローを認識します。

ただし、フローの最後のメッセージは、会話の割り当てが解除されたことが原因である可能性があります。 この場合、TP は、セッションで次のデータ フローが発生したときに認識されません。 この通知を TP に提供するために、 DEALLOCATE 動詞と MC_DEALLOCATE 動詞が変更され、TP が呼び出されるコールバック関数を登録できるようになります。

  • 会話で使用されるセッションを介した最初の通常のフロー送信 (要求または応答)。

  • セッションが他のデータ フローの前にバインドされていない場合。

  • データ リンク制御 (DLC) の停止が原因でセッションが異常終了した場合。

    プロシージャのアドレスが APPC DLL に渡されるため、コールバック プロシージャは任意の名前を取ることができます。

    コールバック ルーチンが呼び出される前に、 DEALLOCATE 動詞と MC_DEALLOCATE 動詞が完了する可能性があることに注意してください。 会話は RESET 状態であると見なされ、会話識別子を使用してそれ以上動詞を発行することはできません。 アプリケーションがセッションの次のデータ フローの前に TP_ENDED 動詞を発行した場合、コールバック ルーチンは呼び出されません。

    DEALLOCATE 動詞とMC_DEALLOCATE動詞は、暗黙的な忘れをサポートするように次のように変更されます。

  • 割り当てを解除する会話で使用されているセッションの次のデータ フローで呼び出す関数のアドレスを TP が指定できるように、新しいメンバー コールバックが追加されます。 このメンバーが NULL の場合、通知は提供されません。 ベンダーは通常、このコールバック関数を指定します。

  • DEALLOCATE およびMC_DEALLOCATE動詞には、コールバック関数の呼び出し時にパラメーターの 1 つとして返される相関メンバーも含まれます。 アプリケーションでは、このパラメーターを任意の方法で使用できます (たとえば、アプリケーション内のコントロール ブロックへのポインターとして)。

    Host Integration Server では、SEND_DATAの メンバーとMC_SEND_DATA動詞を AP_SEND_DATA_DEALLOC_FLUSH、AP_SEND_DATA_DEALLOC_SYNC_LEVEL、AP_SEND_DATA_DEALLOC_ABENDAP_SEND_DATA_DEALLOC_CONFIRMとして指定することで、TP はデータ送信直後に会話の割り当てを解除できます。 ただし、 SEND_DATA 動詞と MC_SEND_DATA 動詞には、暗黙的な忘れコールバック関数は含まれていません。 暗黙的な忘れ通知を受信する TP は、 DEALLOCATE または MC_DEALLOCATE 動詞を明示的に発行する必要があります。