受信する通信イベントの形式

アソシエーションの状態を示す通信イベントの形式について説明します。通信イベントを受信するときは,通信イベント処理用SPPサービスグループ名とサービス名XATMI通信サービス定義に指定しておきます。このとき,どのオペランドにサービスグループ名とサービス名を指定するかで,受け取れる通信イベントが異なります。

xat_aso_con_event_svcnameオペランド
アソシエーションの確立通知の通信イベント
xat_aso_discon_event_svcnameオペランド
アソシエーションの正常解放の通信イベント
xat_aso_failure_event_svcnameオペランド
アソシエーションの異常解放の通信イベント

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

通信イベントは,構造体で通知されます。通信イベントの構造体は,ヘッダファイル<dcxat.h>で定義してあります。通信イベント処理用SPPでは,#includeで<dcxat.h>をインクルードしてください。

struct dc_xat_event_type{
    int     event_code;       … 通信イベント識別コード
    char    aso_name[9];      … アソシエーション名
    char    reserve1[3];      … 予備領域1
    int     aso_initiative;   … アソシエーション発呼,着呼種別
    DCULONG reason_code;      … 理由コード
    char    xatc_svcname[9];  … XATMI通信サービス名
    char    reserve2[63];     … 予備領域2
};

引数の内容

●event_code

通信イベントを識別するコードが設定されます。( )内は該当するコードの数値表示(10進数)を示します。

DCXAT_ASO_CONNECT(00000001)
アソシエーションの確立
DCXAT_ASO_DISCONNECT(00000002)
アソシエーションの正常解放
DCXAT_ASO_FAILURE(00000003)
アソシエーションの異常解放

●aso_name

通信イベントで状態が通知されるアソシエーションの,アソシエーション名が設定されます。

●reserve1

予備の領域です。

●aso_initiative

確立したアソシエーションで,自システムが発呼となるか着呼となるかを示す値が設定されます。()内は該当するコードの数値表示(10進数)を示します。

DCXAT_ASO_INIT(00000001)
自システムが発呼側
DCXAT_ASO_RESP(00000002)
自システムが着呼側

●reason_code

アソシエーションが解放されたときの,理由コードが設定されます。( )内は該当するコードの数値表示(10進数)を示します。

アソシエーションの正常解放の場合は次の値のどれかが設定されます。

DCXAT_RSN_COMMAND(00000001)
コマンド実行によるアソシエーションの解放
DCXAT_RSN_XATMI(00000005)
XATMIによるアソシエーションの解放
DCXAT_RSN_REMOTE(00000007)
相手システムからのアソシエーションの正常解放
DCXAT_RSN_TP_NORMAL(00000008)
TP層によるアソシエーションの正常解放

アソシエーションの異常解放の場合は次の値のどれかが設定されます。

DCXAT_RSN_COMMAND(00000001)
コマンド実行によるアソシエーションの強制解放
DCXAT_RSN_LOWER(00000003)
下位層の障害(回線障害,通信管理の障害など)
DCXAT_RSN_OSITP(00000004)
TP1/NET/OSI-TP-Extendedの障害(プロトコルエラーなど)
DCXAT_RSN_XATMI(00000005)
XATMI通信サービスによるアソシエーションの強制解放
DCXAT_RSN_FAILURE(00000006)
アソシエーション確立の失敗
DCXAT_RSN_REMOTE(00000007)
相手システムからのアソシエーションの強制解放

●xatc_svcname

XATMI通信サービス名が設定されます。

●reserve2

予備の領域です。