Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


3.6.1 メッセージの通信形態

〈この項の構成〉

(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‒8 アプリケーションの型と使えるメッセージ送受信関数

メッセージの形態

アプリケーションの型

メッセージを処理する関数

receive

send

reply

sendrecv

recvsync

sendsync

tempput,

tempget,

contend

問い合わせ応答形態

ans型

※1

※1

非問い合わせ応答形態(一方受信形態)

noans型

※2

継続問い合わせ応答形態

cont型

(凡例)

◎:必ず使います。

○:使えます。

△:プロトコル製品によって異なります。詳細については「3.6.1(4) 通信プロトコル対応製品と通信形態で使える関数」を参照してください。

−:使えません。

注※1

TP1/NET/User AgentまたはTP1/NET/OSAS-NIFを使った場合に呼び出せます。ただし,dc_mcf_recvsync関数は,複数セグメントを送信したdc_mcf_sendrecv関数を呼び出したときに,先頭セグメント以外のセグメントを受け取る目的にだけ使えます。

注※2

非応答型のMHPからの問い合わせ応答をする(UAP共通定義(mcfmuap)の-cオプションのnoansreplyオペランドにyesを指定)場合に呼び出せます。

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

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

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

関数名

通信プロトコル対応製品とアプリケーションの型

TP1/NET/OSAS-NIF

TP1/NET/OSI-TP

TP1/NET/SLU - TypeP2

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‒10 通信プロトコル対応製品と通信形態で使える関数2

関数名

通信プロトコル対応製品とアプリケーションの型

TP1/NET/TCP/IP

TP1/NET/User Agent

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‒11 通信プロトコル対応製品と通信形態で使える関数3

関数名

通信プロトコル対応製品とアプリケーションの型

TP1/NET/UDP

TP1/NET/XMAP3

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 プロトコル」の該当するプロトコル編を参照してください。