Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


ee_mch_cmtsend_get【XTC限定】

〈このページの構成〉

名称

一方送信メッセージ情報の取得

形式

ANSI C,C++の形式

#include <eemch.h>
int ee_mch_cmtsend_get(EEULONG *msg_cnt, EEMCHMSG *eemchmsg,
                       EELONG type, EELONG flags)
 
typedef struct ee_mch_msg_t{     /*メッセージ情報取得構造体        */
        EEULONG group_size;      /*送信先サービスグループ名長      */
        char group[32];          /*送信先サービスグループ名        */
        EEULONG service_size;    /*送信先サービス名長              */
        char service[32];        /*送信先サービス名                */
        char otq_dct;            /*出力キュー(OTQ)の自動閉塞有無 */
        char dummy1[3];          /*予備                            */
        EEULONG send_sts;        /*送信結果                        */
        char dummy2[4];          /*予備                            */
        EEULONG send_size;       /*送信メッセージサイズ            */
        char *msg;               /*送信メッセージポインタ          */
        char dummy3[160];        /*予備                            */
} EEMCHMSG;

機能

メッセージ送信に失敗(未送信も含む)したトランザクション同期の一方送信メッセージとトランザクション非同期の一方送信メッセージのメッセージ情報を取得します。リターン値がEE_OK(次のメッセージ情報なし)になるまで,この関数を連続して呼び出すことによって,同一トランザクションで一方送信メッセージの送信要求を行ったすべてのメッセージ情報を取得できます。リターン値がEE_OKの状態でこの関数を呼び出した場合は,最初からメッセージ情報を取得します。

一方送信メッセージのメッセージ情報は,ERRTRNRのタイミングで取得できます。

UAPで値を設定する引数

●msg_cnt

参照できるメッセージ情報の件数を格納する変数アドレスを設定します。

●eemchmsg

メッセージ情報を格納するための構造体ポインタのアドレスを設定します。

●type

参照したい一方送信メッセージの要求種別を設定します。

EEMCH_CMTSEND

ee_mch_cmtsend関数

EEMCH_CMTSEND_SYNC

ee_mch_cmtsend_sync関数

●flags

EENOFLAGSを設定します。

TP1/EEから値が返される引数

●msg_cnt

参照できるメッセージ情報の件数が設定されます。0の場合は,eemchmsg構造体の内容は参照できません。

●eemchmsg

情報格納構造体に次の情報が設定されます。

  • 送信先サービスグループ名長

    送信先サービスグループ名の長さが返されます。

  • 送信先サービスグループ名

    送信先サービスグループ名が返されます。

  • 送信先サービス名長

    送信先サービス名の長さが返されます。

  • 送信先サービス名

    送信先サービス名が返されます。

  • 出力キュー(OTQ)の自動閉塞有無

    出力キューの自動閉塞有無が次のコードで返されます。

    EEMCH_OTQ_NOBLOCKADE

    出力キューの自動閉塞なし

    EEMCH_OTQ_BLOCKADE_GROUP

    サービスグループレベルの出力キューの自動閉塞あり

    EEMCH_OTQ_BLOCKADE_SERVICE

    サービスレベルの出力キューの自動閉塞あり

  • 送信結果

    送信結果が次のコードで返されます。

    EEMCH_SEND_NORMAL

    送信正常

    EEMCH_SEND_ERR_PACKET

    送信障害(パケットサイズ不正などのRPC関連定義の不正)

    EEMCH_SEND_ERR_RESOURCE

    送信障害(リソース不足)

    EEMCH_SEND_ERR_STATUS

    送信障害(送信先受信不可状態)

    EEMCH_SEND_ERR

    送信障害(上記以外)

    EEMCH_SEND_ERR_ACK_TIMEOUT

    送達確認待ちタイムアウト

    EEMCH_SEND_ERR_ACK_ERR

    送達確認待ち受信障害

    EEMCH_SEND_ERR_ACK_RESOURCE

    送達確認エラーメッセージ受信(リソース不足)

    EEMCH_SEND_ERR_ACK_CLSYNC

    送達確認エラーメッセージ受信(CL同期エラー)

    EEMCH_SEND_ERR_ACK_HOLD

    送達確認エラーメッセージ受信(送信先サービス閉塞),または自プロセスのサービス閉塞

    EEMCH_SEND_ERR_ACK_GRP

    送達確認エラーメッセージ受信(送信先サービスグループ名の不正)

    EEMCH_SEND_ERR_ACK_SRV

    送達確認エラーメッセージ受信(送信先サービス名の不正)

    EEMCH_SEND_ERR_ACK_TYPE

    送達確認エラーメッセージ受信(メッセージ送信形態不正またはオプションの不正)

    EEMCH_SEND_ERR_ACK

    送達確認エラーメッセージ受信(上記以外)

    EEMCH_SEND_OTQ_BLOCKADE

    出力キューの閉塞中

    EEMCH_SEND_MYPROC_PUTPCE

    処理キューの登録失敗

    EEMCH_SEND_BEFORE

    未送信

  • 送信メッセージサイズ

    送信メッセージのサイズが返されます。

  • 送信メッセージポインタ

    送信メッセージのポインタが返されます。

リターン値

リターン値

意味

EE_OK

正常に終了しました(次のメッセージ情報なし)。

EE_CONTINUE

正常に終了しました(次のメッセージ情報あり)。

EECOMER_CNDBPP

オフラインバッチプロセスから発行しているため,この機能は使用できません。

EECOMER_CNDUOC

UOCから発行しているため,この機能は使用できません。

EECOMER_ENVIRON

TP1/EEの環境下にありません。

EEMCHER_ARGUMENT

引数に設定した値が間違っています。

EEMCHER_CONDITION

発行条件が不正です。

EEMCHER_MEMORY_SHORT

メモリが不足しました。

ee_mch_cmtsend_get関数がエラーになる場合

メモリ関連定義のsystem_work_sizeオペランドで指定したシステムワーク領域が不足した場合

ee_mch_cmtsend_get関数はEEMCHER_MEMORY_SHORTのリターン値でエラーリターンします。