Netcompo アプリケーション会話サービス 2.1 LU6.2会話サービス編 - Solaris - |
目次
索引
![]() ![]() |
#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バーブに通知されます。
appc_openバーブによって通知されたLU識別子を指定します。
0を指定します。
会話開始要求の受信を監視する、自トランザクションプログラム名を指定します。パラメタの0バイト目に0を指定した場合、lu_idパラメタで指定した自LUに対する全ての会話開始要求を監視する、"無差別モード"になります。
1を指定します。
自トランザクションプログラムで使用する、会話の同期レベルを指定します。以下の値が指定できます。
- SYNC_NONE:
- トランザクションプログラムが、この会話においてconfirmバーブ、mc_confirmバーブ、あるいはsync_point(未サポート)バーブを発行せず、確認および同期点処理を行わないことを指定します。
- SYNC_CONFIRM:
- トランザクションプログラムがこの会話においてsync_point(未サポート)バーブを発行せず、同期点処理を行わないが、確認処理は行うことを指定します。
- SYNC_SYNCPT:
- 未サポートです。
MAPPED_CONVERSATIONを指定します。
0を指定します。
0を指定します。
0を指定します。
復帰値が通知されます。以下のような値が通知されます。
- 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会話サービスで異常が発生しました。
listen識別子が通知されます。listen識別子は、相手トランザクションプログラムからの会話開始要求を受信するために、appc_acceptバーブで指定します。
appc_acceptバーブがUNSUCCESSFUL_RETRY以外の復帰値で終了したとき、そこで指定したlisten識別子が無効になることがあります。appc_acceptバーブを同一のlisten識別子を指定して複数回発行したときに、STATE_CHECK_BAD_STATEで復帰してくる場合には、listen識別子を再度獲得するために、本バーブを再発行しなければいけません。
目次
索引
![]() ![]() |