OSI TPを使ったクライアント/サーバ形態の通信をする場合,アソシエーションの確立と解放を知るためのSPPを作成する必要があります。このSPPを通信イベント処理用SPPといいます。通信イベント処理用SPPを作成すると,アソシエーションの障害解放を通知する通信イベントを受信できます。この通信イベントを受信することで,アソシエーションの再確立のきっかけを知ることができます。また,通信イベント処理用SPPでは,通知された通信イベントの詳細情報から,アソシエーションの属性や状態について知ることができます。
アソシエーションが確立または解放されると,XATMI通信サービスは非応答型RPCでサービス要求する様式で,通信イベント処理用SPPを起動します。通信イベントは,自システムが発呼側か着呼側かどうかに関係なく通知されます。
通信イベント処理用SPPが受信する情報の内容については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。
通信イベント処理用SPPの概要を次の図に示します。
図2-57 通信イベント処理用SPPの概要
通信イベント処理用SPPが通信イベントを受信できるようにするには,通信イベント処理用SPPのサービスグループ名とサービス名を,あらかじめXATMI通信サービス定義に指定しておきます。このとき,どのオペランドにサービスグループ名とサービス名を指定するかで,受け取れる通信イベントが異なります。
複数のオペランドに同じサービスグループ名とサービス名を指定すると,一つの通信イベント処理用SPPが複数の通信イベントを受信できるようになります。
通信イベント処理用SPPのユーザサービス定義のserver_typeオペランドには,"betran"を指定してください。
通信イベント処理用SPPから関数を呼び出して,アソシエーションを確立できます。アソシエーションを確立するときは,dc_xat_connect関数【CBLDCXAT('CONNECT ')】を呼び出します。dc_xat_connect関数がリターンすると,正常に確立したことを受信する通信イベント処理用SPPでアソシエーションに関する情報を受け取れます。
dc_xat_connect関数で確立できるアソシエーションは,自システムが発呼側の場合だけです。また,関数のリターンとアソシエーションの確立は同期しないため,dc_xat_connect関数を呼び出したサービス関数では,確立を通知する通信イベントは受信できません。
通知されるアソシエーションの確立には,次に示す場合があります。
通知されるアソシエーションの解放には,次に示す場合があります。