Hitachi

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


2.10.2 通信イベント処理用SPP

OSI TPを使ったクライアント/サーバ形態の通信をする場合,アソシエーションの確立と解放を知るためのSPPを作成する必要があります。このSPPを通信イベント処理用SPPといいます。通信イベント処理用SPPを作成すると,アソシエーションの障害解放を通知する通信イベントを受信できます。この通信イベントを受信することで,アソシエーションの再確立のきっかけを知ることができます。また,通信イベント処理用SPPでは,通知された通信イベントの詳細情報から,アソシエーションの属性や状態について知ることができます。

アソシエーションが確立または解放されると,XATMI通信サービスは非応答型RPCでサービス要求する様式で,通信イベント処理用SPPを起動します。通信イベントは,自システムが発呼側か着呼側かどうかに関係なく通知されます。

通信イベント処理用SPPが受信する情報の内容については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

通信イベント処理用SPPの概要を次の図に示します。

図2‒57 通信イベント処理用SPPの概要

[図データ]

〈この項の構成〉

(1) 通信イベント処理用SPPに関連するシステム定義

通信イベント処理用SPPが通信イベントを受信できるようにするには,通信イベント処理用SPPサービスグループ名サービス名を,あらかじめXATMI通信サービス定義に指定しておきます。このとき,どのオペランドにサービスグループ名とサービス名を指定するかで,受け取れる通信イベントが異なります。

xat_aso_con_event_svcnameオペランド

アソシエーションの確立通知の通信イベント

xat_aso_discon_event_svcnameオペランド

アソシエーションの正常解放の通信イベント

xat_aso_failure_event_svcnameオペランド

アソシエーションの異常解放の通信イベント

複数のオペランドに同じサービスグループ名とサービス名を指定すると,一つの通信イベント処理用SPPが複数の通信イベントを受信できるようになります。

通信イベント処理用SPPのユーザサービス定義のserver_typeオペランドには,"betran"を指定してください。

(2) 通信イベント処理用SPPのアソシエーションの確立

通信イベント処理用SPPから関数を呼び出して,アソシエーションを確立できます。アソシエーションを確立するときは,dc_xat_connect関数【CBLDCXAT('CONNECT ')】を呼び出します。dc_xat_connect関数がリターンすると,正常に確立したことを受信する通信イベント処理用SPPでアソシエーションに関する情報を受け取れます。

dc_xat_connect関数で確立できるアソシエーションは,自システムが発呼側の場合だけです。また,関数のリターンとアソシエーションの確立は同期しないため,dc_xat_connect関数を呼び出したサービス関数では,確立を通知する通信イベントは受信できません。

(3) アソシエーションの状態が通知されるタイミング

通知されるアソシエーションの確立には,次に示す場合があります。

通知されるアソシエーションの解放には,次に示す場合があります。