分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSI-TP編

[目次][用語][索引][前へ][次へ]

サービスプリミティブ

TP1/NET/OSI-TPが提供するサービスプリミティブのインタフェースについて説明します。

サービスプリミティブとは,OSIが規定するOSI参照モデルで,それぞれの階層が利用するサービスです。TP1/NET/OSI-TPでは,サービスプリミティブを利用して,メッセージの送受信をします。

サービスプリミティブは,UAPのコーディング時に設定します。このとき,まずUAPの引数を設定してから,使用するサービスプリミティブの領域と具体的な指定値を設定します。また,サービスプリミティブは複数連結して送信できます。

TP1/NET/OSI-TPがメッセージ送受信で提供する基本サービスプリミティブを表3-4に,サービスプリミティブとUAPとの対応を表3-5に,サービスプリミティブの連結パターンとUAPとの対応を表3-6に示します。

表3-4 基本サービスプリミティブ

サービスプリミティブ 機能 全二重 半二重
制御権あり 制御権なし
送信 受信 送信 受信
TP-BEGIN-DIALOGUEreq/ind ダイアログ開始要求/指示
TP-BEGIN-DIALOGUErsp/cnf ダイアログ開始応答/確認
TP-END-DIALOGUEreq/ind ダイアログ終了要求/指示 × ×
TP-END-DIALOGUErsp/cnf ダイアログ終了応答/確認 × ×
TP-U-ERRORreq/ind エラー発生の通知要求/指示





  • TP-HANDSHAKEreq確認型
  • TP-END-DIALOGUEreq
  • TP-HANDSHAKE-AND-GRANT-CONTROLreqに対する拒否応答
TP-U-ABORTreq/ind UAPでのダイアログ異常終了要求/指示
TP-P-ABORTind TP1/NET/OSI-TPでのダイアログ異常終了指示
TP-HANDSHAKEreq/ind ハンドシェイク要求/指示 × ×
TP-HANDSHAKErsp/cnf ハンドシェイク応答/確認 × ×
TP-DATAreq/ind データ転送要求/指示 × ×
TP-GRANT-CONTROLreq/ind 制御権委譲要求/指示 × × ×
TP-REQUEST-CONTROLreq/ind 制御権要求要求/指示 × × ×
TP-HANDSHAKE-AND-GRANT-CONTROLreq/ind 制御権委譲付きハンドシェイク要求/指示 × × ×
TP-HANDSHAKE-AND-GRANT-CONTROLrsp/cnf 制御権委譲付きハンドシェイク応答/確認 × × ×
(凡例)
○:使用できます。
×:使用できません。
−:該当しません。

表3-5 サービスプリミティブとUAPとの対応

サービス プリミティブ UAP サービスプリミティブ種別コード
C言語 COBOL言語1 データ操作
言語
TP-BEGIN-DIALOGUE req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
ENABLE BDR
ind receive RECEIVE RECEIVE BDI
rsp(受諾)
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
ENABLE BDPA
rsp(拒否) sendsync SENDSYNC DISABLE BDPN
cnf
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE BDC
TP-END-DIALOGUE req
  • sendsync
  • sendrecv2

  • SENDSYNC
  • SENDRECV2
DISABLE EDR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE EDI
rsp
  • sendsync

  • SENDSYNC
DISABLE EDP
cnf
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE EDC
TP-U-ERROR req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND UER
ind recvsync RECVSYNC RECEIVE UEI
TP-U-ABORT req sendsync SENDSYNC DISABLE UAR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE UAI
TP-P-ABORT ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE PAI
TP-HANDSHAKE req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND HSR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE HSI
rsp
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND HSP
cnf
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE HSC
TP-DATA req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND TDR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE TDI
TP-GRANT-CONTROL req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND GCR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE GCI
TP-REQUEST-CONTROL req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND RCR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE RCI
TP-HANDSHAKE-AND-GRANT-CONTROL req
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND HGR
ind
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE HGI
rsp
  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND HGP
cnf
  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE HGC
注※1
COBOL言語のインタフェースは,プログラム名CBLDCMCFで使用するデータ名を示します。
注※2
サービスプリミティブのパラメタConfirmationが'True'の場合だけ使用できます。

表3-6 サービスプリミティブの連結パターンとUAPとの対応

サービスプリミティブ連結パターンの分類
(サービスプリミティブ連結パターン例)
UAP
C言語 COBOL言語1 データ操作言語
先頭がBDRまたはBDPA
(BDR+TDR,BDPA+TDRなど)

  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
ENABLE
先頭がBDI
(BDI+TDI,BDI+TDI+EDIなど)
receive RECEIVE RECEIVE
先頭がBDRまたはBDPAで最後がEDR
(BDPA+TDR+EDR,BDR+TDR+EDR3など)

  • sendsync
  • sendrecv2

  • SENDSYNC
  • SENDRECV2
DISABLE
最後がEDR
(TDR+EDR,BDPA+EDR,HSP+EDRなど)

  • sendsync
  • sendrecv2

  • SENDSYNC
  • SENDRECV2
DISABLE
その他の送信
(TDR+HSR,TDR+TDRなど)

  • sendsync
  • sendrecv

  • SENDSYNC
  • SENDRECV
SEND
その他の受信
(TDI+EDI,BDC+TDI,BDC+EDI,BDC+TDI+EDI,TDI+TDIなど)

  • recvsync
  • sendrecv

  • RECVSYNC
  • SENDRECV
RECEIVE
注※1
COBOL言語のインタフェースは,プログラム名CBLDCMCFで使用するデータ名を示します。
注※2
サービスプリミティブのパラメタConfirmationが'True'の場合だけ使用できます。
注※3
この組み合わせではBDRは拒否応答型だけ,EDRは確認型だけ使用できます。

メッセージの形式

送受信メッセージ

TP1/NET/OSI-TPで送受信するメッセージの形式を次の図に示します。送受信メッセージは,UAPで複数のAPDUを連結し,一括して処理できます。

図3-1 送受信メッセージの形式

[図データ]

セグメント

セグメントは,UAPが送受信するデータ単位です。セグメントは一つ以上のサービスプリミティブから構成されます。

サービスプリミティブ

サービスプリミティブは,制御情報,パラメタ,およびユーザ情報から構成されます。また,サービスプリミティブは複数連結できます。連結をしない場合,セグメントとサービスプリミティブは1対1に対応し,連結をする場合は1対nに対応します。

パラメタおよびユーザ情報がない場合,または指定しない場合は,LL2またはLL3に(0002)16を設定します。

サービスプリミティブの形式を次の図に示します。

図3-2 サービスプリミティブの形式

[図データ]

制御情報

制御情報は,転送手順とサービスプリミティブ種別コードから構成されます。サービスプリミティブ種別コードについては,表3-5を参照してください。

制御情報の形式を次の図に示します。

図3-3 制御情報の形式

[図データ]

パラメタ

パラメタの形式を次の図に示します。該当するパラメタを指定しない場合は,そのパラメタに対応するLLに(0002)16を設定します。

図3-4 パラメタの形式

[図データ]

ユーザ情報

ユーザ情報は,APDU連結状態とユーザデータから構成されます。

ユーザ情報の形式を,次の図に示します。

図3-5 ユーザ情報の形式

[図データ]

APDU連結状態は,次に示す値を16進数字で設定します。
(A0):単一APDU(構造化されている)
(80):単一APDU(構造化されていない)
(A1):連結APDU(構造化されている)
(81):連結APDU(構造化されていない)
(A2):ビット列データ(構造化されている)
(82):ビット列データ(構造化されていない)

ユーザデータは,任意のデータを転送構文形式で設定します。

パラメタとの関係

サービスプリミティブは,機能ごとに,設定するパラメタが異なります。

省略した場合,省略したパラメタに対応する領域の長さは(0002)16となります。

サービスプリミティブとパラメタとの対応を次の表に示します。

表3-7 サービスプリミティブとパラメタとの対応

サービス プリミティブ パラメタ1 パラメタ2 パラメタ3 パラメタ4 パラメタ5 パラメタ6 パラメタ7 ユーザ情報の設定
TP-BEGIN-DIALOGUE req (1)1 (2)1 (3)1 (4)2 (5)1 (6)2 (7)2
ind (1)3 (4)2 (7)2
rsp (8)2
cnf (4)3 (8)2 (9)3 (10)2
TP-END-DIALOGUE req (7)2 ×
ind (7)2 ×
rsp ×
cnf ×
TP-U-ERROR req ×
ind ×
TP-U-ABORT req
ind (10)2
TP-P-ABORT ind (9)2 (10)2 ×
TP-HANDSHAKE req (11)3 ×
ind ×
rsp ×
cnf ×
TP-DATA req
ind
TP-GRANT-CONTROL req ×
ind ×
TP-REQUEST-CONTROL req ×
ind ×
TP-HANDSHAKE-AND-GRANT-CONTROL req (11)2 ×
ind ×
rsp ×
cnf ×
(凡例)
(1):Initiating-TPSU-Title
(2):Recipient-AP-Title
(3):Recipient-TPSU-Title
(4):Functional-Units
(5):Quality-of-Service
(6):Application-Context-Name
(7):Confirmation
(8):Result
(9):Diagnostic
(10):Rollback
(11):Confirmation-Urgency
◎:設定は必須です。
○:設定できます。
×:設定できません。
−:該当しません。
注※1
ユーザが選択して設定できます。設定しない場合は,領域だけを確保してください。
注※2
必ず設定します。
注※3
条件が一致する場合だけ設定できます。

パラメタの詳細

Initiating-TPSU-TitleおよびRecipient-TPSU-Title

[図データ]

●型コード
TPSU名称の型を設定します。
61:T61 String(T61文字列)
PR:Printable String(印字可能文字列)
IN:Integer(整数)
●TPSU-Title
TPSU名称を設定します。名称の長さは最大64バイトです。
Initiating-TPSU-Title:起動側TPSU名称
Recipient-TPSU-Title:受信側TPSU名称

Recipient-AP-Title

[図データ]

●Recipient-AP-Title
受信側AP名称を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。

Functional-Units

[図データ]

●FU
使用する機能単位を16進数字で設定します。
(40)16:全二重機能を使用します。
(48)16:全二重機能およびハンドシェイク機能を使用します。
(80)16:半二重機能を使用します。
(88)16:半二重機能およびハンドシェイク機能を使用します。
●予備領域
TP1/NET/OSI-TPが使用する領域です。1バイトの長さの領域を設定してください。

Quality-of-Service

[図データ]

●Quality-of-Service
サービス品質を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。

Application-Context-Name

[図データ]

●Application-Context-Name
アプリケーションコンテキスト名を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。

Confirmation

[図データ]

●Confirmation
ダイアログ開始および終了の要求に対して,応答が必要かどうかを確認するための値を設定します。
  • ダイアログ開始(TP-BEGIN-DIALOGUE)の場合
    AL:すべての要求に対して,応答が必要です。
    NE:要求を拒否する場合だけ,応答が必要です。
  • ダイアログ終了(TP-END-DIALOGUE)の場合
    TR:応答が必要です。
    FA:応答は必要ありません。

Result

[図データ]

●Result
サービスの要求に対して,受け入れたかどうかの結果を示す値を設定します。
AC:要求を受け入れました。
RP:要求を拒否しました(TP1/NET/OSI-TP)。
RU:要求を拒否しました(UAP)。

Diagnostic

[図データ]

●Diagnostic
診断を示す値を16進数字で設定します。
  • ダイアログ開始(TP-BEGIN-DIALOGUE)の場合
    (0001)16:受信側TPSU名称が定義されていません。
    (0002)16:TPSUが利用できません(永続的)。
    (0003)16:TPSUが利用できません(一時的)。
    (0004)16:受信側TPSU名称の指定が必要です。
    (0005)16:機能単位が提供されていません。
    (0006)16:機能単位の組み合わせが提供されていません。
    (0008)16:その他の理由
  • ダイアログ異常終了(TP-P-ABORT)の場合
    (0001)16:永続的障害が発生しました。
    (0002)16:トランザクションの開始を拒否します。
    (0003)16:一時的障害が発生しました。
    (0004)16:プロトコルエラーです。
    (0005)16:ダイアログ終了同士の衝突が発生しました。

Rollback

[図データ]

●Rollback
ロールバックするかどうかを示す値を設定します。
FA:ロールバックしません。

Confirmation-Urgency

[図データ]

●Confirmation-Urgency
即時確認をするかどうかを示す値を設定します。
ただし,半二重でのハンドシェイク(TP-HANDSHAKE)の場合,設定できません。
UR:即時確認をします。
NR:即時確認をしません。

突き合わせ項目

メッセージを送受信する場合,TP1/NET/OSI-TPは,相手システムから受信したサービスプリミティブを,自システムで設定したパラメタと突き合わせます。突き合わせたパラメタが一致しない場合は,該当するサービスプリミティブを処理しないで,相手システムに異常を通知します。

サービスプリミティブの突き合わせ項目を,表3-8および表3-9に示します。

表3-8 サービスプリミティブの突き合わせ項目(コネクション確立時)

突き合わせ項目 チェック内容
protocol-version version1が設定されていること。
contention-winner-assignment MCF通信構成定義(mcftalccn -y)で指定した値と対応していること。
注※
MCF通信構成定義との対応については,「5. システム定義」の「相手システムの通信定義と関連づける内容」を参照してください。

表3-9 サービスプリミティブの突き合わせ項目(ダイアログ開始時)

突き合わせ項目 チェック内容
Functional-Units Shared Controlまたは
Polarized Control
どちらかが設定されていること。
Handshake 設定されていること,または設定されていないこと。