3.4 論理端末の閉塞と閉塞解除

ここでは,UAPからの関数の発行による論理端末の閉塞と閉塞解除について説明します。運用コマンドによる論理端末の閉塞と閉塞解除については,マニュアル「OpenTP1 運用と操作」を参照してください。

<この節の構成>
(1) 論理端末の状態表示
(2) 論理端末の閉塞と閉塞解除
(3) 論理端末の出力キュー削除
(4) APIと運用コマンドの機能差異(論理端末の閉塞と閉塞解除)

(1) 論理端末の状態表示

論理端末の状態は,dc_mcf_tlsle関数CBLDCMCF('TLSLE ')で表示できます。表示できる内容は,MCF識別子,論理端末名称,論理端末状態(閉塞状態,または閉塞解除状態)などです。

論理端末の状態はUAP中で指定した領域に格納されます。

(2) 論理端末の閉塞と閉塞解除

論理端末の閉塞状態とは,UAPが送信要求したメッセージを,相手システムに送信できない状態です。この状態でUAPが送信要求した場合,送信要求は正常に受け付けられますが,送信メッセージは出力キューに滞留します。また,この状態のとき,相手システムからの受信メッセージのスケジュールは,正常に行われます。

論理端末を閉塞するには,dc_mcf_tdctle関数CBLDCMCF('TDCTLE ')を使用します。閉塞中の一方送信メッセージの送信要求は,出力キューに滞留します。なお,論理端末は障害によって閉塞することもあります。

一方,論理端末の閉塞解除状態とは,論理端末が持つ機能を使用できる状態です。

論理端末の閉塞を解除するには,dc_mcf_tactle関数CBLDCMCF('TACTLE ')を使用します。閉塞が解除されると,出力キューに残っているメッセージが送信されます。なお,コネクションが未確立の場合は,論理端末の閉塞解除はできません。

(3) 論理端末の出力キュー削除

コネクションの確立後,出力キューに残っているメッセージを破棄するには,dc_mcf_tdlqle関数CBLDCMCF('TDLQLE ')を使用します。

dc_mcf_tdlqle関数を発行すると,ディスクキューとメモリキューの出力キューに残っているすべてのメッセージを削除し,削除したメッセージごとにMCFイベントを起動します。ただし,dc_mcf_tdlqle関数を発行するためには,あらかじめmcftdctleコマンドまたはdc_mcf_tdctle関数で論理端末を閉塞しておく必要があります。

(4) APIと運用コマンドの機能差異(論理端末の閉塞と閉塞解除)

論理端末の閉塞と閉塞解除で使用する関数と運用コマンドの機能差異について,次の表に示します。

表3-5 関数と運用コマンドの機能差異(論理端末の閉塞と閉塞解除)

関数名運用コマンド機能差異
dc_mcf_tactlemcftactle
  1. 一つの論理端末に閉塞解除を要求します。論理端末の複数指定,および一括指定はできません。
  2. 論理端末の端末状態,およびキュー状態の,両方の閉塞を解除します。どちらか片方だけを指定することはできません。
dc_mcf_tdctlemcftdctle
  1. 一つの論理端末に閉塞を要求します。論理端末の複数指定,および一括指定はできません。
  2. 論理端末の端末状態およびキュー状態の両方を閉塞します。どちらか片方だけを指定することはできません。
dc_mcf_tdlqlemcftdlqle
  1. 一つの論理端末に出力キューの削除を要求します。論理端末の複数指定,および一括指定はできません。
  2. ディスクキューおよびメモリキューの,両方を削除します。どちらか片方だけを指定することはできません。
  3. MCFアプリケーション定義に未処理送信メッセージ廃棄通知イベント(ERREVTA)が定義されている場合,ERREVTAを通知します。通知を抑止することはできません。
dc_mcf_tlslemcftlsle
  1. 一つの論理端末の状態を取得します。論理端末の複数指定,および一括指定はできません。
  2. 論理端末状態だけを取得できます。その他の付加情報は取得できません。
  3. 最大未送信メッセージ数をリセットできません。