Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/EE/Message Control Extension 使用の手引


1.2.1 一方送信メッセージ

一方送信メッセージには,非同期一方送信と同期一方送信の2種類があります。

非同期一方送信

非同期一方送信は,トランザクションと連動して相手システムにメッセージを送信する場合に使用します。一つのトランザクションで複数のメッセージを非同期一方送信した場合でも,トランザクションが決着するまで相手システムへメッセージは送信されません。つまり,トランザクションがコミットした場合にだけメッセージを送信し,トランザクションがロールバックした場合にはメッセージを送信しません。

同期一方送信

同期一方送信は,メッセージの送信要求と相手システムへのメッセージ送信処理を同期させる場合に使用します。一つのトランザクションで複数のメッセージを同期一方送信した場合は,メッセージの送信要求のたびに相手システムへメッセージが送信されます。つまり,トランザクションのコミット,ロールバックに関係なく送信要求のたびに相手システムへメッセージを送信します。

使用するプロトコルに関係なく,デフォルトで送信できるメッセージのサイズは,32キロバイトまでです。

ただし,送信メッセージの最大サイズは,TCP/IPプロトコルを使用する場合は8メガバイト,UDPプロトコルを使用する場合は64キロバイトまで拡張できます。送信メッセージの最大サイズを拡張する場合は,eemcpfunc定義コマンドのmsglenオペランドにextendを指定してください。

〈この項の構成〉

(1) 非同期一方送信

UAPからのメッセージ送信要求をMCPが受け付けたあと,UAPがリターンしてからメッセージを送信する形態です。メッセージを相手システムに非同期一方送信した場合に,障害(コネクション障害など)を検知したときは,送信障害トランザクション(ERRTRNS)を起動して出力メッセージを破棄します。

非同期一方送信でメッセージを送信する場合の処理の流れを次の図に示します。

図1‒2 非同期一方送信でメッセージを送信する場合の処理の流れ

[図データ]

  1. UAPは,MCPに対してメッセージ送信要求を行います。

  2. MCPは,UAPがリターン(トランザクションがコミット)したことを契機に,相手システムにメッセージを送信します。

(2) 同期一方送信

UAPからのメッセージ送信要求をMCPが受け付けるタイミングに合わせて,メッセージを送信する形態です。メッセージを相手システムに同期一方送信した場合に,障害(コネクション障害など)を検知したときは,呼び出し元にエラーリターンします。同期一方送信でメッセージを送信する場合の処理の流れを次の図に示します。

図1‒3 同期一方送信でメッセージを送信する場合の処理の流れ

[図データ]

  1. UAPは,MCPに対してメッセージ送信要求を行います。

  2. MCPは,UAPからのメッセージ送信要求を受け付けたことを契機に,相手システムにメッセージを送信します。