Netcompo アプリケーション会話サービス 2.1 LU6.2会話サービス編 - Solaris - |
目次
索引
![]() ![]() |
#include <lu62verb.h> u_long mc_receive_immediate(MC_RECEIVE_IMMEDIATE *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 conv_id; /*[IN]*/ u_char request_to_send_received; /*[OUT]*/ u_char what_received_data_type; /*[OUT]*/ u_char what_received_flag_type; /*[OUT]*/ u_char type; /*[IN]*/ long rsvd0; /*[RESERVED]*/ long length; /*[IN/OUT]*/ u_char map_name[MAX_MAP_NAME+1]; /*[IN]*/ u_char rsvd1[3]; /*[RESERVED]*/ u_char *data; /*[IN/OUT]*/ }MC_RECEIVE_IMMEDIATE;
相手トランザクションプログラムからの情報を受信します。受信バッファに受信すべき有効な情報がない場合は、復帰値UNSUCCESSFUL_RETRYで直ちに復帰します。
通知される情報は、データ、what_received_flag_typeの状態、あるいはエラー復帰コードです。
本バーブは、会話が受信状態のときにのみ発行することができます。本バーブを発行することによって、会話の状態は変更されません。
lengthパラメタは、会話がポスト状態になったことを決定するためにappc_waitバーブで使用されるポスト条件を変更します。トランザクションプログラムは、ポスト条件を変更するためにmc_post_on_receiptバーブを発行することもできます。
会話識別子を指定します。
相手トランザクションプログラムから応答要求を受信したときに、自動的に肯定応答を送信するか否かを指定します。以下の値が指定できます。
- SUB_NONE:
- 何も行いません.
- SUB_CONFIRMED_ON_CONFIRM:
- 応答要求受信時に、自動的に肯定応答を送信します。この値を指定した場合,本バーブの復帰パラメタであるwhat_received_flag_typeパラメタで示される値がWR_CONFIRM、WR_CONFIRM_SEND、またはWR_CONFIRM_DEALLOCATEであった場合でも、mc_confirmedバーブを発行する必要がなくなります。
自トランザクションプログラムが受信できる、データの最大のサイズを指定します。
0を指定します。
受信したデータの格納先を指定します。
復帰値が通知されます。以下のような値が通知されます。
- OK(0x00000000):
- バーブが正常終了しました。
- ALLOCATION_FAILURE_NO_RETRY(0x00040003):
- 一時的でない理由により、会話を割り当てることができませんでした。
- DEALLOCATE_ABEND(0x00080001):
- 相手トランザクションプログラムが、サブタイプにSUB_ABENDを伴うmc_deallocateバーブを発行しました。
- DEALLOCATE_NORMAL(0x00080005):
- 相手トランザクションプログラムの発行したmc_deallocateバーブにより、会話が正常に終了しました。
- SHM_FAILURE (0x00FF0003):
- 共用メモリに関する処理で異常が発生しました。
- PARAMETER_ERROR(0x000A0000):
- パラメタエラーが発生しました。
- BAD_CONV_ID (0x000A0008):
- 指定された会話識別子が無効です。
- STATE_CHECK_BAD_STATE(0x00100001):
- 状態エラーが発生しました。本バーブは、会話の状態が受信状態のときにのみ発行することができます。
- SYNC_LEVEL_NOT_SUPPORTED_BY_CONV (0x000A0032):
- typeパラメタにSUB_CONFIRMED_ON_CONFIRMが指定されており、相手トランザクションプログラムから応答要求を受信しましたが、会話が同期レベルSYNC_NONEで割り当てられているため、肯定応答の送信ができません。
- RESOURCE_FAILURE_NO_RETRY(0x00E0001):
- リトライ不可能なエラーが発生しました。
- 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):
- 下位ドライバでリトライ不可能なエラーが発生しました。
- PROG_ERROR_NO_TRUNC(0x00050001):
- 相手トランザクションプログラムが、送信状態の会話でタイプSUB_PROGのsend_errorバーブを発行しました。
- PROG_ERROR_PURGING(0x00050003):
- 相手トランザクションプログラムが、タイプSUB_PROGのsend_errorバーブを発行し、かつ相手トランザクションプログラムの会話が送信状態になるまでのすべてのデータを廃棄しています。自トランザクションプログラムの会話が受信状態になったときに、相手トランザクションプログラムの会話は送信状態になります。
- LL_FORMAT_ERROR (0x00FF000E):
- 相手トランザクションプログラムから受信したGDS変数のフォーマットに異常を検出しました。
- VCP_DEACTIVATE(0x00FF000D):
- FNA-BASEが停止されました。
- UNSUCCESSFUL_RETRY(0x00110001):
- 本バーブに対する有効な情報を受信していません。
- INCONSISTENCY_IN_LU62(0x00FF0008):
- LU6.2会話サービスで異常が発生しました。
相手トランザクションプログラムから、request_to_send(送信権の要求)を受信したか否かが通知されます。以下のような値が通知されます。
- REQUEST_TO_SEND_NOT_RECEIVED:
- request_to_sendを受信していません。
- REQUEST_TO_SEND_RECEIVED:
- request_to_sendを受信しました。
受信したデータのタイプが通知されます。以下のような値が通知されます。
- WR_NONE:
- データを受信していません。
- WR_DATA_COMPLETE:
- 相手トランザクションプログラムから完全なGDS変数かまたはその最後の部分を受信しました。
- WR_DATA_INCOMPLETE:
- 相手トランザクションプログラムから受信したGDS変数が不完全です。
状態の変更、または相手トランザクションプログラムからの応答要求を受信したとき、そのタイプが通知されます。以下のような値が通知されます。
- WR_NONE:
- 状態の変更、および相手トランザクションプログラムからの応答要求は受信していません。
- WR_SEND:
- 相手トランザクションプログラムから、送信権を受信しました。自トランザクションプログラムは、mc_send_dataバーブを使用してデータを送信することができます。
- WR_CONFIRM:
- 相手トランザクションプログラムからの応答要求を受信しました。本バーブのtypeパラメタにSUB_CONFIRMED_ON_CONFIRMを指定していない自トランザクションプログラムは、mc_confirmedバーブによる肯定応答か、またはmc_send_errorバーブによる否定応答を送信することができます。
- WR_CONFIRM_SEND:
- 相手トランザクションプログラムから、送信権と応答要求を同時に受信しました。本バーブのtypeパラメタにSUB_CONFIRMED_ON_CONFIRMを指定していない自トランザクションプログラムは、mc_confirmedバーブによる肯定応答か、またはmc_send_errorバーブによる否定応答を送信することができます。
- WR_CONFIRM_DEALLOCATE:
- 相手トランザクションプログラムから、会話終了要求と応答要求を同時に受信しました。本バーブのtypeパラメタにSUB_CONFIRMED_ON_CONFIRMを指定していない自トランザクションプログラムは、mc_confirmedバーブによる肯定応答か、またはmc_send_errorバーブによる否定応答を送信することができます。
受信したデータの長さが通知されます。ただし、それは本バーブ発行時にlengthパラメタに指定した値を超えることはありません。
受信したデータが通知されます。
目次
索引
![]() ![]() |