Netcompo アプリケーション会話サービス 2.1 LU6.2会話サービス編 - Solaris -
目次 索引 前ページ次ページ

上へ第4章 Verbインタフェース
上へ4.4 トランザクションプログラム制御バーブインタフェース詳細

4.4.4 appc_listen

[記述形式]

#include  <lu62verb.h>
u_long  appc_listen(APPC_LISTEN *parm);

[パラメタブロックの形式]

typedef struct {
  u_char    sys_rsvd0;                                      /*[RESERVED]*/
  u_char    sys_rsvd1;                                      /*[RESERVED]*/
  u_short   sys_rsvd2;                                      /*[RESERVED]*/
  u_char    sys_rsvd3[8];                                   /*[RESERVED]*/
  u_long    return_code;                                    /*[OUT]*/ 
  u_long    listen_conv_id;                                 /*[OUT]*/ 
  u_long    lu_id;                                          /*[IN]*/
  u_char    tp_name_is_iso;                                 /*[IN]*/
  u_char    tp_name[MAX_TP_NAME+1];                         /*[IN]*/
  u_char    queue _depth;                                   /*[IN]*/
  u_char    sync_level;                                     /*[IN]*/
  CONV_TYPE conv_type;                                      /*[IN]*/
  SECURITY_REQUIRED security_required;                      /*[IN]*/
  SECURITY_USER_ID  security_userids[MAX_CONV_PER_TP];     /*[IN]*/
  SECURITY_PROFILE   security_profiles[MAX_CONV_PER _TP];   /*[IN]*/
}APPC_LISTEN; 

[説 明]

tp_nameパラメタで指定した自トランザクションプログラムに対する、相手トランザクションプログラムからの会話開始要求の受信を監視します。指定した自トランザクションプログラムに対して受信した会話開始要求は、自トランザクションプログラムが、本バーブの通知するlisten識別子を指定したappc_acceptバーブを発行したときに通知されます。

本バーブで通知されたlisten識別子は、appc_acceptバーブが正常終了したときには常に無効となります。またappc_acceptバーブがUNSUCCESSFUL_RETRY以外の復帰値で異常終了した場合にも、無効となることがあります。したがって、appc_acceptバーブが復帰値STATE_CHECK_BAD_STATEで復帰する場合には、自トランザクションプログラムは本バーブを再度発行し、新たにlisten識別子を獲得すべきです。

相手トランザクションプログラムからの会話開始要求を受信した時点で、自トランザクションプログラムによるappc_listenバーブの発行がされていなかった場合、LU6.2会話サービスはその受信した会話開始要求を拒否します。

複数のトランザクションプログラムが、同じトランザクションプログラム名を指定して本バーブを発行した場合、受信した会話開始要求は、本バーブを発行した順に、対応するappc_acceptバーブに通知されます。

[要求時のパラメタ]

SYNC_NONE:
トランザクションプログラムが、この会話においてconfirmバーブ、mc_confirmバーブ、あるいはsync_point(未サポート)バーブを発行せず、確認および同期点処理を行わないことを指定します。
SYNC_CONFIRM:
トランザクションプログラムがこの会話においてsync_point(未サポート)バーブを発行せず、同期点処理を行わないが、確認処理は行うことを指定します。
SYNC_SYNCPT:
未サポートです。

[復帰時のパラメタ]

OK(0x00000000):
バーブが正常終了しました。
ENVIRONMENT_ERROR_NO_RETRY(0x00FF000F):
LU6.2会話サービス環境設定で定義された情報が存在しないか、または定義された内容に異常があります。
ALLOCATION_FAILURE_NO_RETRY(0x00040003):
一時的でない理由により、会話を割り当てることができませんでした。
FD_FAILURE (0x00FF0001):
ファイルディスクリプタの獲得に失敗しました。
PARAMETER_ERROR(0x000A0000):
パラメタエラーが発生しました。
INVALID_CONV_TYPE(0x000A0020):
会話のタイプに規定外の値が指定されました。
INVALID_SUB_VERB_TYPE(0x00070001):
会話の同期レベルに規定外の値が指定されました。
STATE_CHECK_BAD_STATE(0x00100001):
状態エラーが発生しました。本バーブで指定するLU識別子は、appc_openバーブを使用して獲得したものでなければいけません。
RESOURCE_FAILURE_NO_RETRY(0x000E0001):
リトライ不可能なエラーが発生しました。
LU62_DEACTIVATE(0x00FF0007):
LU6.2会話サービスが非活性化状態です。
SESSION_DEACTIVATED(0x00FF0005):
セションが切断されました。
SYSTEM_ERROR_NO_RETRY(0x00FF0009):
システムでリトライ不可能なエラーが発生しました。
VCP_ERROR_NO_RETRY(0x00FF000C):
FNA-BASEでリトライ不可能なエラーが発生しました。
DLC_ERROR_NO_RETRY(0x00150010):
下位ドライバでリトライ不可能なエラーが発生しました。
VCP_DEACTIVATE(0x00FF000D):
FNA-BASEが停止されました。
INCONSISTENCY_IN_LU62(0x00FF0008):
LU6.2会話サービスで異常が発生しました。

[使用上の注意]

appc_acceptバーブがUNSUCCESSFUL_RETRY以外の復帰値で終了したとき、そこで指定したlisten識別子が無効になることがあります。appc_acceptバーブを同一のlisten識別子を指定して複数回発行したときに、STATE_CHECK_BAD_STATEで復帰してくる場合には、listen識別子を再度獲得するために、本バーブを再発行しなければいけません。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2002