Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/EE/Message Control Extension 使用の手引


トランザクションインタフェース情報

ここでは,次に示す内容について説明します。

上記以外のトランザクションインタフェース情報の詳細については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」を参照してください。

〈このページの構成〉

MCP後処理トランザクション

MCP後処理トランザクションはMCP固有のトランザクション種別です。MCP後処理トランザクションは,次に示すタイミングで起動します。

トランザクション種別がRLの場合に参照できるトランザクションインタフェース情報を次の表に示します。各トランザクションインタフェース情報については,マニュアル「TP1/Server Base Enterprise Option プログラム作成の手引」を参照してください。

表5‒5 トランザクション種別がRLの場合のトランザクションインタフェース情報

項番

トランザクションインタフェース情報

参照可否

1

情報長(trn_len)

2

サービスグループ名長(group_len)

3

サービスグループ名(servicegroup)

4

サービス名長(service_len)

5

サービス名(service)

6

トランザクション種別(trn_id)

7

自動閉塞有無(auto_block)

×

8

コミット有無(commit_inf)

×

9

処理スレッド通番(thread_no)

10

エラー要因コード(err_code)

×

11

ユーザIFAエリアサイズ(uifa_len)

12

ユーザIFAエリアポインタ(*uifa)

13

ユーザSATエリアサイズ(usat_len)

14

ユーザSATエリアポインタ(*usat)

15

応答要否(ans_inf)

×

16

メッセージ状態(msg_inf)

17

プロセス起動要因(start_inf)

×

18

前回プロセス終了要因(before_end_inf)

×

19

プロセス終了要因(end_inf)

×

20

スレッドダウン種別(thread_down_inf)

×

21

異常発生トランザクション種別(uap_errtrn_inf)

×

22

拡張トランザクション種別(trninf_ex)

×

23

リソースマネジャ数(rm_no)

24

リソースマネジャ接続状態(rm_inf)

25

送信サービスグループ名長(es_group_len)

×

26

送信サービスグループ名(es_servicegroup)

×

27

送信サービス名長(es_service_len)

×

28

送信サービス名(es_service)

×

29

異常発生処理スレッド通番(abn_thread_no)

×

30

拡張トランザクションインタフェース情報(ex_inf)

×

31

XTC拡張トランザクションインタフェース情報(*xtc_pt)

32

MCP拡張トランザクションインタフェース情報(*mcp_pt)

33

メッセージ種別(msg_type)

×

34

エラートランザクション要因(errtrn_factor)

×

35

拡張ユーザIFAエリアサイズ(uifa_large_len)

36

拡張ユーザSATエリアサイズ(usat_large_len)

37

トランザクション起動要因(run_inf)

×

38

サーバ再起動回数(rerun_cnt)

×

39

トランザクション起動時刻(start_time)

40

送信元のノード識別子(node_id)

×

41

トランザクションレベル名長(trnlevel_len)

42

トランザクションレベル名(trnlevel)

(凡例)

○:参照できます。

×:参照できません。

△:XTCを使用している場合だけ参照できます。

エラートランザクション(ERRTRNS)

トランザクション種別がESの場合に,TP1/EEと設定値が異なるエラー要因コード(err_code)を次に示します。

■エラー要因コード
EEMCPER_MEMORY_SHORT

メモリ不足が発生しました。

EEMCPER_SENDER

送信障害が発生しました。

EEMCPER_TERM_HOLD

論理端末が閉塞中です。

EEMCPER_TIME

送信タイムアウトが発生しました。

EEMCPER_UOC_ERR

出力メッセージ編集UOCがエラーリターンしました。

EEMCPER_UOC_INVALID

出力メッセージ編集UOCで障害が発生しました。

次のトランザクションインタフェース情報についてはTP1/EEからSPPに渡されません。

MCP拡張トランザクションインタフェース情報

MCP拡張トランザクションインタフェース情報は,MCPエリアポインタmcp_ptに設定される情報です。次に示す場合に参照できます。

MCPエリアポインタmcp_ptが示す構造体(TRNINF_SERVICE_MCP)の形式を次に示します。

TRNINF_SERVICE_MCP {
  EELONG       cn_name_len;
  char         cn_name[9];
  char         yobi_1[3];
  EELONG       le_name_len;
  char         le_name[9];
  char         yobi_2[3];
  EELONG       pro_kind;
  EELONG       kind;
  EELONG       reason; 
  char         yobi_3[4];
  void         *data1; 
  void         *lebuf;
  EEULONG      lebuf_size;
  char         yobi_4[4];
  unsigned char  r_ipaddr[16];
  unsigned char  o_ipaddr[16];
  unsigned short r_port;
  unsigned short o_port;
  char         yobi[28];
}

●cn_name_len

コネクションIDのサイズが設定されます。

●cn_name

コネクションIDが設定されます。

●le_name_len

メッセージの入出力論理端末名のサイズが設定されます。

●le_name

メッセージの入出力論理端末名が設定されます。

●pro_kind

プロトコル種別として,次の値が設定されます。

EEMCP_UOC_PRO_TCP:TCP/IPプロトコル

EEMCP_UOC_PRO_UDP:UDPプロトコル

●kind

種別として,次の値が設定されます。

EEMCP_CN_OPEN:コネクションの確立通知

EEMCP_CN_CLOSE:コネクションの解放通知

EEMCP_LE_FREE:論理端末の閉塞解除通知

EEMCP_LE_HOLD:論理端末の閉塞通知

●reason

kindで設定される値のreason値の意味を次の表に示します。

表5‒6 各kindで設定される値のreason値の意味

項番

kind設定値

reason値

reason値

(数値)

意味

プロトコル

1

EEMCP_CN_OPEN

EEMCP_BY_API

1

ee_mcp_actcn関数またはee_mcp_actcn_to関数によるコネクションの確立

T

2

EEMCP_BY_COMMAND

2

eemcpactcnコマンドまたはeemcpactcntoコマンドによるコネクションの確立

T

3

EEMCP_BY_SYSTEM

5

システムによるコネクションの確立

T

4

EEMCP_CN_CLOSE

EEMCP_BY_API

1

ee_mcp_dctcn関数(EEMCPNRM設定時)によるコネクションの解放

T

5

EEMCP_BY_COMMAND

2

eemcpdctcnコマンドによるコネクションの解放

T

6

EEMCP_BY_API_F

3

ee_mcp_dctcn関数(EEMCPFRC設定時)によるコネクションの強制解放

T

7

EEMCP_BY_COMMAND_F

4

eemcpdctcnコマンド(-fオプションを指定時※1)によるコネクションの強制解放

T

8

EEMCP_BY_SYSTEM

5

システムによるコネクションの解放

T

9

EEMCP_BY_SYSTEM_F

6

システムによるコネクションの強制解放

T

10

EEMCP_RSN_CNNC

101

コネクション確立不可※2

T

11

EEMCP_RSN_CNER

102

コネクション解放(相手システムからの解放)

T

12

EEMCP_RSN_CNCL

103

コネクション解放(自システムからの解放)

T

13

EEMCP_RSN_RBOV

104

受信バッファオーバフロー

T

14

EEMCP_RSN_NOBF

105

受信バッファ不足

T

15

EEMCP_RSN_NTTO

106

後続メッセージ受信タイムアウト

T

16

EEMCP_RSN_RPLC

107

コネクションリプレースによる切断

T

17

EEMCP_RSN_INTV

108

タイマ値不正

T

18

EEMCP_RSN_TICD

109

タイマセット指示種別不正

T

19

EEMCP_RSN_SGED

110

セグメント完/未完種別不正

T

20

EEMCP_RSN_NTSZ

111

次メッセージのサイズ不正

T

21

EEMCP_RSN_NTAD

112

次メッセージの先頭アドレス不正

T

22

EEMCP_RSN_NWSZ

113

該当メッセージのサイズ不正

T

23

EEMCP_RSN_NWSS

114

残留該当メッセージのサイズ不正

T

24

EEMCP_RSN_NRTO

121

無通信状態監視タイムアウト

T

25

EEMCP_RSN_SRTO

122

同期型メッセージの送受信タイムアウト

T

26

UOCからのリターンコード

UOCからのリターンコード

入力セグメント判定UOCエラーリターン

T

27

EEMCP_LE_FREE

EEMCP_BY_API

1

ee_mcp_actle関数による論理端末の閉塞解除

T,U

28

EEMCP_BY_COMMAND

2

eemcpactleコマンドによる論理端末の閉塞解除

T,U

29

EEMCP_BY_SYSTEM

5

システムによる論理端末の閉塞解除

T,U

30

EEMCP_LE_HOLD

EEMCP_BY_API

1

ee_mcp_dctle関数による論理端末の閉塞

T,U

31

EEMCP_BY_COMMAND

2

eemcpdctleコマンドによる論理端末の閉塞

T,U

32

EEMCP_BY_SYSTEM

5

システムによる論理端末の閉塞

T,U

33

EEMCP_RSN_RBOV

104

受信バッファオーバフロー

T,U

34

EEMCP_RSN_NOBF

105

送受信バッファ不足

T,U

35

EEMCP_RSN_SBOV

115

送信バッファオーバフロー

T,U

36

EEMCP_RSN_BCNT

116

使用バッファ数不正

T,U

37

EEMCP_RSN_SEGM

117

有効セグメント不正

T,U

38

EEMCP_RSN_BADR

118

編集バッファアドレス不正

T,U

39

EEMCP_RSN_LENF

119

論理端末の閉塞解除不可※2

T,U

40

EEMCP_RSN_LECL

120

送受信失敗による論理端末の閉塞

T,U

41

UOCからのリターンコード

UOCからのリターンコード

入力メッセージ編集UOCまたは出力メッセージ編集UOCエラーリターン

T,U

(凡例)

T:pro_kindがEEMCP_UOC_PRO_TCP(TCP/IP)

U:pro_kindがEEMCP_UOC_PRO_UDP(UDP)

注※1

eemcpcn定義コマンドの-fオプションのcnreleaseオペランドにrstを指定する必要があります。

注※2

前に出力されたメッセージを確認してください。

●data1

MCPが使用する領域です。

●lebuf

MCPが使用する領域です。

●lebuf_size

MCPが使用する領域です。

●r_ipaddr

自システムのIPアドレスが設定されます。

下位4バイトに次の形式で設定されます。

[図データ]

●o_ipaddr

相手システムのIPアドレスが設定されます。

設定形式はr_ipaddrを参照してください。

●r_port

自システムのポート番号が設定されます。

ポート番号はホストバイトオーダー形式の数値で設定されます。

●o_port

相手システムのポート番号が設定されます。

ポート番号はホストバイトオーダー形式の数値で設定されます。

r_ipaddr,o_ipaddr,r_port,o_portは次の条件をすべて満たした場合に設定されます。

  • pro_kindがEEMCP_UOC_PRO_TCP(TCP/IPプロトコル)

  • kindがEEMCP_CN_CLOSE(コネクション解放通知)以外