3.6.1 メッセージの通信形態

<この項の構成>
(1) MHPで使えるメッセージの通信形態
(2) MHPの各通信形態,およびSPPで任意に使えるメッセージ通信機能
(3) メッセージの通信形態とアプリケーションの型
(4) 通信プロトコル対応製品と通信形態で使える関数

(1) MHPで使えるメッセージの通信形態

MHPで使えるメッセージの通信形態を次に示します。使えるメッセージの通信形態は,通信プロトコル別で異なります。

メッセージの通信形態を次の図に示します。

図3-6 メッセージの通信形態

[図データ]

(2) MHPの各通信形態,およびSPPで任意に使えるメッセージ通信機能

MHPとSPPで任意に使えるメッセージ通信機能を次に示します。

SPPからdc_mcf_send関数を呼び出す場合は,そのSPPの処理はトランザクションとして稼働していることが前提です。

(3) メッセージの通信形態とアプリケーションの型

メッセージ送受信機能を使うMHPは,使うメッセージの通信形態によってアプリケーションの型を指定しておきます。アプリケーションの型は,MCFアプリケーション定義アプリケーション属性定義(mcfaalcap)のtypeオペランドで指定します。アプリケーションの型には次の三つがあります。

dc_mcf_receive関数で受信したメッセージを,dc_mcf_send関数で入力元の論理端末に送信する形態も,noans型とします。

MHPには,メッセージを処理する形態に合ったアプリケーションの型を指定してください。

指定したアプリケーションの型とメッセージを処理する形態に矛盾がある場合は,メッセージ送受信の関数がエラーリターンするか,またはMHPの処理がロールバックされます。矛盾がある例を次に示します。

MCFイベント処理用MHPのアプリケーションの型は,通知されたMCFイベントによって決まります。MCFイベント処理用MHPのアプリケーションの型については,「3.10 MCFイベント」を参照してください。

アプリケーションの型と使えるメッセージ送受信関数を次の表に示します。

表3-9 アプリケーションの型と使えるメッセージ送受信関数

メッセージの形態アプリケーションの型メッセージを処理する関数
receivesendreplysendrecvrecvsyncsendsynctempput,
tempget,
contend
問い合わせ応答形態ans型11
非問い合わせ応答形態(一方受信形態)noans型2※31
4
44
継続問い合わせ応答形態cont型
(凡例)
◎:必ず使います。
○:使えます。
-:使えません。
論理端末の端末タイプは,プロトコルによって異なります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。
注※1
TP1/NET/User Agentを使った場合に呼び出せます。ただし,dc_mcf_recvsync関数は,複数セグメントを送信したdc_mcf_sendrecv関数を呼び出したときに,先頭セグメント以外のセグメントを受け取る目的にだけ使えます。
注※2
SPPからはdc_mcf_receive関数を呼び出せません。
注※3
非応答型のMHPからの問い合わせ応答をする(UAP共通定義(mcfmuap)の-cオプションのnoansreplyオペランドにyesを指定)場合に呼び出せます。
注※4
TP1/NET/OSI-TPを使った場合に呼び出せます。

(4) 通信プロトコル対応製品と通信形態で使える関数

通信プロトコル対応製品と通信形態別で使える関数の対応を,以降の表に示します。

表3-10 通信プロトコル対応製品と通信形態で使える関数1

関数名通信プロトコル対応製品とアプリケーションの型
TP1/NET/User AgentTP1/NET/OSI-TPTP1/NET/TCP/IP
noans型ans型cont型noans型ans型cont型noans型ans型cont型
dc_mcf_commit×
dc_mcf_receive
dc_mcf_execap×
dc_mcf_reply×××
dc_mcf_rollback
dc_mcf_send×
dc_mcf_resend×
dc_mcf_sendrecv
dc_mcf_sendsync××
dc_mcf_recvsync×
dc_mcf_contend××××
dc_mcf_tempget××××
dc_mcf_tempput××××
(凡例)
○:該当する通信プロトコル対応製品で使えます。
×:使えません。
□:通信プロトコル対応製品で固有な使い方をします。
-:該当する通信プロトコル対応製品では使えない通信形態です。
注※
通信プロトコル対応製品によって,関数の使い方が異なる場合があります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。

表3-11 通信プロトコル対応製品と通信形態で使える関数2

関数名通信プロトコル対応製品とアプリケーションの型
TP1/NET/XMAP3TP1/NET/HNA-560/20TP1/NET/HNA-560/20 DTS
noans型ans型cont型noans型ans型cont型noans型ans型cont型
dc_mcf_commit××××××
dc_mcf_receive
dc_mcf_execap
dc_mcf_reply××
dc_mcf_rollback
dc_mcf_send
dc_mcf_resend
dc_mcf_sendrecv×××××××××
dc_mcf_sendsync×××××××××
dc_mcf_recvsync×××××××××
dc_mcf_contend××××××
dc_mcf_tempget××××××
dc_mcf_tempput××××××
(凡例)
○:該当する通信プロトコル対応製品で使えます。
△:非応答型のMHPからの問い合わせ応答をする(UAP共通定義(mcfmuap)の-cオプションのnoansreplyオペランドにyesを指定)場合に使えます。
×:使えません。
注※
通信プロトコル対応製品によって,関数の使い方が異なる場合があります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。

表3-12 通信プロトコル対応製品と通信形態で使える関数3

関数名通信プロトコル対応製品とアプリケーションの型
TP1/NET/OSAS-NIFTP1/NET/HNA-NIFTP1/NET/HSC(1)TP1/NET/HSC(2)
noans型ans型cont型noans型ans型cont型noans型ans型cont型noans型ans型cont型
dc_mcf_commit
dc_mcf_receive
dc_mcf_execap×
dc_mcf_reply××××
dc_mcf_rollback
dc_mcf_send
dc_mcf_resend
dc_mcf_sendrecv×××
dc_mcf_sendsync××××
dc_mcf_recvsync××
dc_mcf_contend×××××
dc_mcf_tempget×××××
dc_mcf_tempput×××××
(凡例)
○:該当する通信プロトコル対応製品で使えます。
×:使えません。
□:通信プロトコル対応製品で固有な使い方をします。
-:該当する通信プロトコル対応製品では使えない通信形態です。
注※
通信プロトコル対応製品によって,関数の使い方が異なる場合があります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。

表3-13 通信プロトコル対応製品と通信形態で使える関数4

関数名通信プロトコル対応製品とアプリケーションの型
TP1/NET/HDLCTP1/NET/X25TP1/NET/X25-Extended
noans型ans型cont型noans型ans型cont型noans型ans型cont型
dc_mcf_commit
dc_mcf_receive
dc_mcf_execap
dc_mcf_reply×××
dc_mcf_rollback
dc_mcf_send
dc_mcf_resend
dc_mcf_sendrecv×××
dc_mcf_sendsync×××
dc_mcf_recvsync×××
dc_mcf_contend×××
dc_mcf_tempget×××
dc_mcf_tempput×××
(凡例)
○:該当する通信プロトコル対応製品で使えます。
×:使えません。
-:該当する通信プロトコル対応製品では使えない通信形態です。
注※
通信プロトコル対応製品によって,関数の使い方が異なる場合があります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。

表3-14 通信プロトコル対応製品と通信形態で使える関数5

関数名通信プロトコル対応製品とアプリケーションの型
TP1/NET/SLU
- TypeP1
TP1/NET/SLU
- TypeP2
TP1/NET/NCSBTP1/NET/UDP
noans型ans型cont型noans型ans型cont型noans型ans型cont型noans型ans型cont型
dc_mcf_commit
dc_mcf_receive
dc_mcf_execap
dc_mcf_reply××××
dc_mcf_rollback
dc_mcf_send×
dc_mcf_resend×
dc_mcf_sendrecv××××
dc_mcf_sendsync××××
dc_mcf_recvsync××××
dc_mcf_contend×××××
dc_mcf_tempget×××××
dc_mcf_tempput×××××
(凡例)
○:該当する通信プロトコル対応製品で使えます。
×:使えません。
□:通信プロトコル対応製品で固有な使い方をします。
-:該当する通信プロトコル対応製品では使えない通信形態です。
注※
通信プロトコル対応製品によって,関数の使い方が異なる場合があります。詳細については,マニュアル「OpenTP1 プロトコル」の該当するプロトコル編を参照してください。