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

上へ第4章 Verbインタフェース
上へ4.2 マップ会話バーブインタフェース詳細

4.2.4 mc_deallocate

[記述形式]

#include  <lu62verb.h>
u_long  mc_deallocate(MC_DEALLOCATE *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    type;                                     /*[IN]*/
  u_char    rsvd[3];                                  /*[RESERVED]*/
  long      log_data_length;                          /*[RESERVED]*/
  u_char    *log_data;                                /*[RESERVED]*/
}MC_DEALLOCATE; 

[説 明]

指定されたマップ会話を終了し、会話で保有していた資源を解放します。会話の送信バッファは、本バーブのタイプに関係なくフラッシュされます。

[要求時のパラメタ]

SUB_FLUSH:
会話の送信バッファをフラッシュし、正常に会話を終了します。
SUB_SYNC_LEVEL:
mc_allocateバーブ発行時の同期レベルがSYNC_NONEであったならば、SUB_FLUSHと同様に動作します。また、mc_allocateバーブ発行時の同期レベルがSYNC_CONFIRMであったならば、SUB_CONFIRMと同様に動作します。
SUB_CONFIRM:
応答要求を送信し、それに対する相手トランザクションプログラムからの肯定応答を受信したときに正常終了します。もし、相手トランザクションプログラムから否定応答を受信した場合は会話は終了せずに、自トランザクションプログラムの会話は受信状態となります。SUB_CONFIRMは、会話が同期レベルSYNC_NONEで作成されたものであったときは指定できません。

上記の3つの値(SUB_FLUSH、SUB_SYNC_LEVEL、そしてSUB_CONFIRM)での本バーブの発行に際しては、会話は送信状態でなければいけません。 SUB_CONFIRMと、会話の同期レベルがSYNC_CONFIRMの時のSUB_SYNC_LEVELはともに、相手トランザクションプログラムから否定応答を受信した場合、復帰値PROG_ERROR_PURGINGを返して,自トランザクションプログラムの会話は受信状態になります。

SUB_ABEND:
会話を異常終了します。この値は、自トランザクションプログラムの会話が会話終了状態以外であれば指定することができます。もし、自トランザクションプログラムの会話が送信状態であれば、会話の送信バッファはフラッシュされます。会話が受信状態であれば、受信中のデータは廃棄されます。
SUB_LOCAL:
会話をローカルに終了します。この値は、自トランザクションプログラムの会話が会話終了状態のときにのみ指定することができます。

会話終了状態とは、以下のような状態をいいます。

[復帰時のパラメタ]

OK(0x00000000):
バーブが正常終了しました。
ALLOCATION_FAILURE_NO_RETRY(0x00040003):
一時的でない理由により、会話を割り当てることができませんでした。
DEALLOCATE_ABEND(0x00080001):
相手トランザクションプログラムが、サブタイプにSUB_ABENDを伴うmc_deallocateバーブを発行しました。
PARAMETER_ERROR(0x000A0000):
パラメタエラーが発生しました。
BAD_CONV_ID(0x000A0008):
指定された会話識別子が無効です。
STATE_CHECK_BAD_STATE(0x00100001):
状態エラーが発生しました。本バーブのサブタイプにSUB_FLUSH、SUB_CONFIRM、またはSUB_SYNC_LEVELを指定した場合は、会話の状態は送信状態でなければなりません。また、本バーブのサブタイプにSUB_LOCALを指定した場合は、会話の状態は会話終了状態でなければなりません。
SYNC_LEVEL_NOT_SUPPORTED_BY_CONV(0x000A0032):
会話が同期レベルSYNC_NONEで作成されているため、本バーブのサブタイプにSUB_CONFIRMを指定することはできません。
INVALID_SUB_VERB_TYPE(0x00070001):
会話終了のタイプに規定外の値が指定されました。
RESOURCE_FAILURE_NOT_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):
下位ドライバでリトライ不可能なエラーが発生しました。
PROG_ERROR_NO_TRUNC(0x00050001):
相手トランザクションプログラムが、送信状態の会話でタイプSUB_PROGのmc_send_errorバーブを発行しました。
PROG_ERROR_PURGING(0x00050003):
相手トランザクションプログラムが、タイプSUB_PROGのsend_errorバーブを発行し、かつ相手トランザクションプログラムの会話が送信状態になるまでのすべてのデータを廃棄しています。自トランザクションプログラムの会話が受信状態になったときに、相手トランザクションプログラムの会話は送信状態になります。
VCP_DEACTIVATE(0x00FF000D):
FNA-BASEが停止されました。
INCONSISTENCY_IN_LU62(0x00FF0008):
LU6.2会話サービスで異常が発生しました。

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

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