3.3.2 パラメタ
MCAは,次の図に示すパラメタをパラメタリストアドレス(parm)に設定し,UOCの呼び出し時に渡します。
各パラメタの内容について説明します。
各領域の後ろの括弧は,その領域のデータタイプです。データタイプについては,マニュアル「TP1/Message Queue プログラム作成リファレンス」を参照してください。
データタイプの次に,その領域の「向き」を示します。つまり,その領域を何が使用し,何が設定するかです。
- input
-
MQTからUOCへ,値が入力される領域です。ユーザは値を変更しないでください。
- output
-
UOCからMQTへ,値を出力するための領域です。
- 〈この項の構成〉
(1) UOCパラメタリスト(dcmtcq_uoc_parmlist)
UOCパラメタリストは,UOCに渡されるパラメタを管理しています。
- dcmtcq_uoc_parmlistの宣言形式
typedef struct { MQCHAR4 StructId; /* 構造体識別子 */ MQLONG Version; /* 構造体バージョン番号 */ dcmtcq_uoc_mqcxp *mqcxp_adr; /* チャネル出口パラメタブロックアドレス */ dcmtcq_uoc_mqcd *mqcd_adr; /* チャネルデータ定義ブロックアドレス */ dcmtcq_uoc_bufflist *tbuflist_adr; /* 送受信バッファリストアドレス */ dcmtcq_uoc_bufflist *ebuflist_adr; /* 編集バッファリストアドレス */ MQCHAR Reserve1[8]; /* 予備 */ } dcmtcq_uoc_parmlist;
- 注
-
64ビット版の場合は,次の形式になります。
: MQCHAR Reserve1[24]; /* 予備 */ } dcmtcq_uoc_parmlist;
-
StructId(MQCHAR4型) −input
構造体識別子(DCMTCQ_MQCXPL_STRUC_ID)
UOCパラメタリストのための識別子が格納されます。
定数DCMTCQ_MQCXPL_STRUC_ID_ARRAYは,DCMTCQ_MQCXPL_STRUC_IDと同じ値です。ただし,前者は文字配列,後者は文字列です。
-
Version(MQLONG型) −input
構造体バージョン番号(32ビット版の場合:DCMTCQ_MQCXPL_VERSION_1,64ビット版の場合:DCMTCQ_MQCXPL_VERSION_2)
UOCパラメタリストのためのバージョン番号が格納されます。
-
mqcxp_adr(dcmtcq_uoc_mqcxpポインタ型) −input
チャネル出口パラメタブロックについては,「3.3.2(2) チャネル出口パラメタブロック(dcmtcq_uoc_mqcxp)」を参照してください。
-
mqcd_adr(dcmtcq_uoc_mqcdポインタ型) −input
チャネルデータ定義ブロックについては,「3.3.2(3) チャネルデータ定義ブロック(dcmtcq_uoc_mqcd)」を参照してください。
-
tbuflist_adr(dcmtcq_uoc_bufflistポインタ型) −input
送受信バッファリストについては,「3.3.2(4) バッファリスト(dcmtcq_uoc_bufflist)」を参照してください。
出口へのExitReasonがDCMTCQ_MQXR_ALTの場合,このアドレスは設定されません。
-
ebuflist_adr(dcmtcq_uoc_bufflistポインタ型) −input
編集用バッファリストについては,「3.3.2(4) バッファリスト(dcmtcq_uoc_bufflist)」を参照してください。
出口へのExitReasonがDCMTCQ_MQXR_ALTの場合,このアドレスは設定されません。
(2) チャネル出口パラメタブロック(dcmtcq_uoc_mqcxp)
チャネル出口パラメタブロックは,UOCの処理を決定したり,UOCがMCAの動作を制御したりするために使用されます。
チャネル出口パラメタブロックには,UOCへの入力領域とUOCからの出力領域が両方とも存在するので注意してください。
- dcmtcq_uoc_mqcxpの宣言形式
typedef struct { MQCHAR4 StructId; /* 構造体識別子 */ MQLONG Version; /* 構造体バージョン番号 */ MQLONG ExitId; /* 出口のタイプ */ MQLONG ExitReason; /* 出口を呼び出すための理由 */ MQLONG ExitReason2; /* 出口を呼び出すための二次理由 */ MQLONG ExitResponse; /* 出口からの応答 */ MQLONG ExitResponse2; /* 出口からの二次応答 */ MQLONG Feedback; /* フィードバックコード */ MQLONG MaxSegmentLength; /* セグメント最大長 */ MQCHAR Reserve1[4]; /* 予約領域 */ MQBYTE16 ExitUserArea; /* 出口ユーザ領域 */ MQCHAR32 ExitData; /* 出口データ */ MQCHAR PartnerName[52]; /* 相手システムのキューマネジャ名 */ MQLONG FAPLevel; /* プロトコルレベル */ MQLONG CapabilityFlags; /* 機能フラグ */ } dcmtcq_uoc_mqcxp;
- 注
-
64ビット版の場合は,次の形式になります。
: MQLONG CapabilityFlags; /* 機能フラグ */ MQCHAR Reserve1[8]; /* 予備 */ } dcmtcq_uoc_mqcxp;
-
StructId(MQCHAR4型) −input
チャネル出口パラメタブロックのための識別子が格納されます。
定数DCMTCQ_MQCXP_STRUC_ID_ARRAYは,DCMTCQ_MQCXP_STRUC_IDと同じ値です。ただし,前者は文字配列,後者は文字列です。
-
Version(MQLONG型) −input
構造体バージョン番号(32ビット版の場合:DCMTCQ_MQCXP_VERSION_2,64ビット版の場合:DCMTCQ_MQCXP_VERSION_3)
チャネル出口パラメタブロックのためのバージョン番号(バージョン2)が格納されます。バージョン2の構造体だけに存在する領域については,各領域の説明で示します。
なお,新しいバージョンの構造体では,旧バージョンの領域名,および属性は変わりません。したがって,Versionの値がUOCに必要な領域を含む最低バージョンの番号以上かどうか,UOC側で検査する必要があります。
-
ExitId(MQLONG型) −input
呼び出されるUOCのタイプが格納されます。
-
DCMTCQ_MQXT_CHANNEL_MSGEDT_EXIT
メッセージ編集出口UOCを示します。
-
-
ExitReason(MQLONG型) −input
UOCが呼び出された理由が格納されます。
なお,各理由でUOCが呼び出されるタイミングについては,「3.4 UOC呼び出しの流れ」を参照してください。
-
DCMTCQ_MQXR_ALT
属性変更
開始するチャネルが使用するチャネル属性を変更する必要がある場合に,変更するための契機を出口に与えるために呼び出されます。
この呼び出しはクラスタチャネル(クラスタセンダおよびクラスタレシーバ)にだけ実行されます。
-
DCMTCQ_MQXR_INIT
初期化
UOCが使用する作業領域の確保,およびイニシャライズを実行するために呼び出されたことを示します。
-
DCMTCQ_MQXR_TERM
終了
UOCが使用した作業領域の解放のために呼び出されたことを示します。
-
DCMTCQ_MQXR_MSG
メッセージ処理
メッセージ処理のために呼び出されたことを示します。
-
-
ExitReason2(MQLONG型) −input
UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG),呼び出された理由の詳細が格納されます。メッセージ編集出口UOCでは,この値は意味を持ちません。
-
ExitResponse(MQLONG型) −output
UOCが,MCAへの応答を格納する領域です。
-
DCMTCQ_MQXCC_OK
正常に続行することをMCAに依頼します。
UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG)は,ExitResponse2領域に追加情報を設定してください。
-
DCMTCQ_MQXCC_SUPPRESS_FUNCTION
メッセージをデッドレターキューに登録することをMCAに依頼します。
この値は,UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG)に有効です。
デッドレターキューに登録できない場合,送信側の処理中メッセージは転送キューに格納され,受信側の処理中メッセージは破棄され,チャネルが終了されます。
また,メッセージをデッドレターキューに登録する場合は,次に示す二つの領域を設定してください。
・Feedback領域
・ExitResponse2領域
-
DCMTCQ_MQXCC_SUPPRESS_EXIT
UOCの呼び出しを抑止することをMCAに依頼します。
MCAは,チャネル終了時(ExitReason=DCMTCQ_MQXR_TERM)まで,UOCの呼び出しを抑止します。ただし,属性変更時(ExitReason=DCMTCQ_MQXR_ALT)にこの応答が返された場合,チャネル終了時(ExitReason=DCMTCQ_MQXR_TERM)にも,UOCを呼び出しません。
UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG)は,ExitResponse2領域に追加情報を設定してください。
-
DCMTCQ_MQXCC_CLOSE_CHANNEL
チャネルの終了をMCAに依頼します。
送信側の処理中メッセージは転送キューに格納され,受信側の処理中メッセージは破棄され,チャネルが終了されます。
-
-
ExitResponse2(MQLONG型) −output
UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG),UOCからMCAへのメッセージの返却領域を指定する情報を格納します。
-
DCMTCQ_MQXR2_USE_TRAN_BUFFER
返却するメッセージが送受信バッファに格納されていることを示します。
-
DCMTCQ_MQXR2_USE_EDIT_BUFFER
返却するメッセージが編集用バッファに格納されていることを示します。
DCMTCQ_MQXR2_USE_TRAN_BUFFERとDCMTCQ_MQXR2_USE_EDIT_BUFFERは,どちらか一方を指定できます。
-
-
Feedback(MQLONG型) −output
UOCがメッセージ処理のために呼び出された場合(ExitReason=DCMTCQ_MQXR_MSG),メッセージがデッドレターキューに登録される理由を識別するためのフィードバックコードを格納します。
-
MQFB_STOPPED_BY_MSG_EXIT
メッセージがUOCによって止められたことを示します。
-
-
MaxSegmentLength(MQLONG型) −input
単一伝送で送信できる最大バイト長が格納されます。
セグメント最大長は,通信構成定義で指定されたセグメント長を基に,チャネル確立時にMCA間のネゴシエーションによって決定された値です。
ExitReasonがDCMTCQ_MQXR_INITまたはDCMTCQ_MQXR_ALTの場合,この値は意味を持ちません。
-
ExitUserArea(MQBYTE16型) −intput/output
UOCが自由に利用できる領域です。
出口ユーザ領域は,UOCが最初に呼び出された時(ExitReason=DCMTCQ_MQXR_ALTまたはDCMTCQ_MQXR_INIT),2進数の0で初期化されています。UOC内で出口ユーザ領域を更新すると,その値は次の呼び出しまで保持されます。ただし,再度チャネルが開始され,UOCを属性更新指示または初期化指示(ExitReason=DCMTCQ_MQXR_ALTまたはDCMTCQ_MQXR_INIT)で呼び出す時,出口ユーザ領域は初期化されます。
-
ExitData(MQCHAR*32型) −input
mqtalccha定義コマンドの-x metexdataオペランドで指定された,メッセージ編集出口ユーザデータが格納されます。
ただし,チャネルタイプがクラスタセンダの場合でリポジトリ情報を取得している時は,接続相手のクラスタレシーバの定義で指定されているユーザデータ(データ変換なし)が格納されます。
この領域の長さは,DCMTCQ_MQ_EXIT_DATA_LENGTHから取得できます。ユーザデータの長さが領域の長さよりも短かった場合,ユーザデータの後ろにスペースが補われます。また,指定を省略した場合,領域はスペースで埋められます。
-
PartnerName(MQCHAR*52型) −input
チャネルの接続先になる相手システムのキューマネジャ名です。
コーラ側でExitReasonがDCMTCQ_MQXR_ALTまたはDCMTCQ_MQXR_INIT である場合は,このフィールドの値は意味を持ちません。これは,チャネルの接続が完了するまで相手システムのキューマネジャ名を特定できないからです。
領域は名称の後ろに\0が付けられ,定義で指定できるキューマネジャ名の最大サイズより4バイト大きくなっているので注意が必要です。
この領域は,バージョン番号2(Version=DCMTCQ_MQCXP_VERSION_2)以降の構造体で使用できます。
-
FAPLevel(MQLONG型) −input
接続先とのネゴシエーションで決定された,このチャネルで使用する通信プロトコル(FAP)のレベルです。
DCMTCQ_MQFL_FPL:プロトコルレベル1
DCMTCQ_MQFL_FPL4:プロトコルレベル4
コーラ側でExitReasonがDCMTCQ_MQXR_ALTまたはDCMTCQ_MQXR_INITである場合は,このフィールドの値は意味を持ちません。これは,チャネルの確立が完了するまで相手システムとの間で使用するFAPレベルが決定しないからです。
この領域は,バージョン番号2(Version=DCMTCQ_MQCXP_VERSION_2)以降の構造体で使用できます。
-
CapabilityFlags(MQLONG型) −input
相手システムとの間で使用する機能によって,次に示す値が定義されます。
-
DCMTCQ_MQCF_NONE
フラグなし
-
DCMTCQ_MQCF_DIST_LIST
マルチキャスト機能を使用することを示します。
コーラ側でExitReasonがDCMTCQ_MQXR_ALTまたはDCMTCQ_MQXR_INITである場合は,このフィールドの値は意味を持ちません。これは,チャネルの確立が完了するまで相手システムとの間で使用する機能が決定しないからです。
この領域は,バージョン番号2(Version=DCMTCQ_MQCXP_VERSION_2)以降の構造体で使用できます。
-
(3) チャネルデータ定義ブロック(dcmtcq_uoc_mqcd)
チャネルデータ定義構造体はチャネルの属性を示すパラメタを持ちます。各領域の内容は特に記述のないかぎり,チャネル定義の内容と同じです(ここでは,TCP定義のmqtalccha定義コマンドの該当するオプションを〔 〕で示します)。また,名称を格納する領域は後ろに\0を格納し,定義で指定できるサイズより大きくなるので注意してください。
また,このパラメタのすべての領域は出口へのExitReasonがDCMTCQ_MQXR_ALTの場合を除き出口の入出力領域です。ExitReasonがDCMTCQ_MQXR_ALTでない場合にUOCが更新すると,その後のチャネルの動作は保証しません。
DCMTCQ_MQXR_ALTの場合に更新できる領域については次の表を参照してください。UOCが更新した値が各領域の指定としては不正であるときは,更新された値を無視して変更前の値でチャネル処理を続行します。
属性 |
sender |
server |
receiver |
requester |
clussdr |
clusrcvr |
連絡属性※1 |
自動定義のクラスタセンダの仮定値 |
注意事項 |
---|---|---|---|---|---|---|---|---|---|
ChannelName |
● |
● |
● |
● |
● |
● |
あり |
− |
− |
Version |
● |
● |
● |
● |
● |
● |
− |
DCMTCQ_MQCD_VERSION_7 |
− |
ChannelType |
● |
● |
● |
● |
● |
● |
あり |
− |
− |
ClusterName |
− |
− |
− |
− |
● |
● |
あり |
− |
− |
BatchSize |
● |
● |
● |
● |
○ |
○ |
あり |
− |
事前定義クラスタセンダチャネルの場合は,定義値よりも大きくすることはできません。 自動定義クラスタセンダチャネルの場合は,計算値※2よりも大きくすることはできません。 |
XmitQName |
● |
● |
− |
− |
● |
● |
あり |
− |
クラスタチャネルはSYSTEM.CLUSTER.TRANSMIT.QUEUE固定です。 |
MaxMsgLength |
● |
● |
● |
● |
○ |
○ |
あり |
− |
BufTypeがメッセージ方式(DCMTCQ_MQBUFT_MSG)の場合は,メッセージ送受信バッファのバッファ長よりも大きくすることはできません。 |
MaxSegLength |
● |
● |
● |
● |
○ |
○ |
− |
8192 |
BufTypeがセグメント方式(DCMTCQ_MQBUFT_SEG)の場合は,メッセージ送受信バッファのバッファ長よりも大きくすることはできません。 |
SeqNumberWrap |
● |
● |
● |
● |
○ |
○ |
あり |
− |
− |
BufType |
● |
● |
● |
● |
● |
● |
− |
msg |
− |
SendBufGroup |
● |
● |
− |
− |
○ |
− |
− |
1 |
− |
ReceiveBufGroup |
− |
− |
● |
● |
− |
○ |
− |
− |
− |
MsgEdtBufGroup |
● |
● |
● |
● |
○ |
○ |
− |
− |
− |
MsgEdtBufCount |
● |
● |
● |
● |
○ |
○ |
− |
− |
− |
StartType |
● |
● |
● |
● |
● |
● |
− |
auto |
− |
LongRetryType |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
LongRetryCount |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
LongRetryInterval |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
OwnIPAddr |
● |
● |
− |
● |
○ |
● |
あり※3 |
− |
両方指定された場合OwnIPAddr指定値が優先されます。 |
OwnHostName |
● |
● |
− |
● |
○ |
● |
あり※3 |
− |
|
OwnPortNum |
● |
● |
− |
● |
○ |
● |
あり※3 |
− |
両方指定された場合OwnPortNum指定値が優先されます。 clusrcvrではOwnServNameはポート番号で相手システムへ連絡します。 |
OwnServName |
● |
● |
− |
● |
○ |
● |
− |
− |
|
PartnerIPAddr |
● |
● |
− |
● |
○ |
− |
あり |
− |
両方指定された場合PartnerIPAddr指定値が優先されます。 事前定義クラスタセンダだけ変更できます。 |
PartnerHostName |
● |
● |
− |
● |
○ |
− |
あり |
− |
|
PartnerPortNum |
● |
● |
− |
● |
○ |
− |
あり |
− |
両方指定された場合PartnerPortNum指定値が優先されます。 clussdrではPartnerServNameはポート番号で相手システムへ連絡します。 事前定義クラスタセンダだけ変更できます。 |
PartnerServName |
● |
● |
− |
● |
○ |
− |
− |
− |
|
ConRspRecvInterval |
● |
● |
− |
● |
○ |
− |
− |
30 |
− |
RspMsgRecvInterval |
● |
● |
− |
− |
○ |
− |
− |
30 |
− |
NextSegRecvInterval |
− |
− |
● |
● |
− |
○ |
− |
− |
− |
DiscInterval |
● |
● |
− |
− |
− |
− |
− |
− |
転送キュー監視方式がタイマ方式の場合に有効です。 |
DiscIntervalCount |
● |
● |
− |
− |
− |
− |
− |
− |
転送キュー監視方式がタイマ方式の場合に有効です。 |
DiscInterval2 |
● |
● |
− |
− |
○ |
● |
あり |
− |
転送キュー監視方式がイベント方式の場合に有効です。 またはクラスタチャネルで有効です。 |
DiscInterval2Effect |
● |
● |
− |
− |
● |
● |
あり |
− |
|
TimeoutConRetry |
● |
● |
− |
● |
○ |
− |
− |
YES |
− |
NextMsgRecvInterval |
− |
− |
● |
● |
− |
○ |
− |
− |
− |
HeartbeatInterval |
● |
● |
● |
● |
○ |
○ |
あり |
− |
− |
BatchInterval |
● |
● |
− |
− |
○ |
● |
あり |
− |
− |
MsgEdtUserData |
● |
● |
● |
● |
○ |
○ |
あり |
− |
バッファ方式がメッセージ方式の場合に有効です。 |
SendUserData |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
ReceiveUserData |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
TcpSendBufLength |
● |
● |
● |
● |
○ |
○ |
− |
− |
− |
TcpRecvBufLength |
● |
● |
● |
● |
○ |
○ |
− |
− |
− |
ConvCCSID |
● |
● |
− |
− |
○ |
● |
あり |
− |
クラスタレシーバチャネルでは,システム定義に値を指定すると相手システムがTP1/Message QueueのCCSIDに変更します。 ただし,相手システムはIBM MQだけです。 |
NonPersistentMsgSpeed |
● |
● |
● |
● |
○ |
○ |
あり |
− |
− |
TranQMonType |
● |
● |
− |
− |
● |
− |
− |
event |
クラスタセンダチャネルの場合は,event固定です。 |
NetworkPriority |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
AlterTime |
● |
● |
● |
● |
● |
● |
あり |
− |
− |
MsgChaProRetry |
● |
● |
− |
● |
○ |
● |
− |
− |
− |
AdoptCheck |
● |
● |
● |
● |
− |
● |
− |
− |
− |
ShortRetryType |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
ShortRetryCount |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
ShortRetryInterval |
● |
● |
− |
● |
○ |
● |
あり |
− |
− |
SecurityUserData |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
SendExit |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
RcvExit |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
MsgExit |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
ScyExit |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
Descr |
● |
● |
● |
● |
○ |
○ |
あり |
− |
− |
MCAUser |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
MCAType |
− |
− |
− |
− |
− |
● |
あり |
− |
− |
TcpRetryCount |
● |
● |
− |
● |
○ |
− |
− |
10 |
− |
TcpRetryInterval |
● |
● |
− |
● |
○ |
− |
− |
1 |
− |
StrucLength |
△ |
△ |
△ |
△ |
△ |
△ |
− |
− |
− |
SndJnlIO |
● |
● |
− |
− |
○ |
− |
− |
flush |
− |
BatchMilInterval |
● |
● |
− |
− |
○ |
● |
あり |
− |
− |
OwnPortAltNum |
● |
● |
− |
● |
○ |
− |
− |
1 |
OwnPortNum属性(自システムのポート番号)またはOwnServName属性(自システムのサービス名)の指定がある場合に有効です。 |
- dcmtcq_uoc_mqcdの宣言形式
typedef struct { MQCHAR ChannelName[24]; /* チャネル名 */ MQLONG Version; /* 構造体バージョン番号 */ MQLONG ChannelType; /* チャネルタイプ */ MQCHAR ClusterName[52]; /* クラスタ名 */ MQLONG BatchSize; /* バッチサイズ */ MQCHAR XmitQName[52]; /* 転送キュー名 */ MQLONG MaxMsgLength; /* 最大メッセージ長 */ MQLONG MaxSegLength; /* 最大セグメントサイズ */ MQLONG SeqNumberWrap; /* メッセージシーケンス番号の 最大値 */ MQLONG BufType; /* バッファ方式 */ MQLONG SendBufGroup; /* 送信バッファグループ番号 */ MQLONG ReceiveBufGroup; /* 受信バッファグループ番号 */ MQLONG MsgEdtBufGroup; /* メッセージ編集出口バッファ グループ番号 */ MQLONG MsgEdtBufCount; /* メッセージ編集出口バッファ数 */ MQLONG StartType; /* チャネル確立方式 */ MQLONG LongRetryType; /* 長期確立再試行の要否 */ MQLONG LongRetryCount; /* 長期確立再試行の回数 */ MQLONG LongRetryInterval; /* 長期確立再試行の間隔 */ MQCHAR OwnIPAddr[16]; /* 自ホストのIPアドレス */ MQCHAR OwnHostName[256]; /* 自ホストのホスト名 */ MQCHAR OwnPortNum[8]; /* 自ホストのポート番号 */ MQCHAR OwnServName[36]; /* 自ホストのサービス名 */ MQCHAR PartnerIPAddr[16]; /* 相手ホストのIPアドレス */ MQCHAR PartnerHostName[256]; /* 相手ホストのホスト名 */ MQCHAR PartnerPortNum[8]; /* 相手ホストのポート番号 */ MQCHAR PartnerServName[36]; /* 相手ホストのサービス名 */ MQLONG ConRspRecvInterval; /* 開始要求応答受信監視 タイマ値 */ MQLONG RspMsgRecvInterval; /* 確認メッセージ受信監視 タイマ値 */ MQLONG NextSegRecvInterval; /* 継続セグメント受信監視 タイマ値 */ MQLONG DiscInterval; /* 転送キュー監視間隔 */ MQLONG DiscIntervalCount; /* 転送キュー監視回数 */ MQLONG DiscInterval2; /* 切断時間間隔 */ MQLONG DiscInterval2Effect; /* 切断時間間隔使用の有無 */ MQLONG TimeoutConRetry; /* タイムアウト時チャネル確立 再試行の要否 */ MQLONG NextMsgRecvInterval; /* 継続メッセージ受信監視 タイマ値 */ MQLONG HeartbeatInterval; /* ハートビート間隔 */ MQLONG BatchInterval; /* バッチ終了待ちタイマ値 */ MQCHAR MsgEdtUserData[32]; /* メッセージ編集出口 ユーザデータ */ MQCHAR SendUserData[32]; /* 送信出口ユーザデータ */ MQCHAR ReceiveUserData[32]; /* 受信出口ユーザデータ */ MQLONG TcpSendBufLength; /* TCP/IP出力用バッファサイズ */ MQLONG TcpRecvBufLength; /* TCP/IP入力用バッファサイズ */ MQLONG ConvCCSID; /* 変換後CCSID */ MQLONG NonPersistentMsgSpeed; /* 非永続メッセージ転送速度 */ MQLONG TranQMonType; /* 転送キュー監視方式 */ MQLONG NetworkPriority; /* ネットワーク接続優先順位 */ MQCHAR AlterTime[12]; /* チャネル定義の更新時刻 */ MQLONG MsgChaProRetry; /* MQプロトコルエラー時の チャネル確立再試行の有無 */ MQLONG AdoptCheck; /* チャネル状態の不一致時の 強制再接続条件 */ MQLONG ShortRetryType; /* 短期確立再試行の要否 */ MQLONG ShortRetryCount; /* 短期確立再試行の回数 */ MQLONG ShortRetryInterval; /* 短期確立再試行の間隔 */ MQCHAR SecurityUserData[32]; /* セキュリティ出口ユーザデータ */ MQCHAR SendExit[128]; /* チャネル送信出口名 */ MQCHAR RcvExit[128]; /* チャネル受信出口名 */ MQCHAR MsgExit[128]; /* メッセージ出口名 */ MQCHAR ScyExit[128]; /* セキュリティ出口名 */ MQCHAR Descr[64]; /* 注釈 */ MQCHAR MCAUser[64]; /* MCAユーザID */ MQLONG MCAType; /* MCAタイプ */ MQLONG TcpRetryCount; /* TCP/IP確立確認の回数 */ MQLONG TcpRetryInterval; /* TCP/IP確立確認の間隔 */ MQLONG StrucLength; /* チャネルデータ定義ブロック (dcmtcq_uoc_mqcd)の長さ */ MQLONG SndJnlIO; /* 送信チャネルジャーナル出力条件 */ MQLONG BatchMilInterval; /* バッチ終了待ちタイマ(ミリ秒) */ MQLONG FastSndMsg; /* 予約領域 */ MQLONG OwnPortAltNum; /* 自システムのポート番号使用数 */ MQCHAR Reserve[288]; /*予約領域 */ } dcmtcq_uoc_mqcd;
-
ChannelName(MQCHAR*24型)
領域の長さはDCMTCQ_MQ_CHANNEL_NAME_LENGTHによって与えられます。
-
Version(MQLONG型)
構造体バージョン番号(DCMTCQ_MQCD_VERSION_7)
構造体のバージョンは7です。バージョン2以降の構造体だけに存在するフィールドについては,後述のフィールドの説明で示します。新しいバージョンの構造体では旧バージョンの予備領域以外のフィールド名および属性は変わりません。したがって,出口ではバージョン番号が,出口に必要なフィールドを含む最低バージョンの番号以上であるかどうかを検査する必要があります。
予約領域については予告なく変更することがあります。
-
ChannelType(MQLONG型)
次に示すどれかの値が設定されます。
-
DCMTCQ_MQCHT_SENDER:センダ
-
DCMTCQ_MQCHT_SERVER:サーバ
-
DCMTCQ_MQCHT_RECEIVER:レシーバ
-
DCMTCQ_MQCHT_REQUESTER:リクエスタ
-
DCMTCQ_MQCHT_CLUSSDR:クラスタセンダ
-
DCMTCQ_MQCHT_CLUSRCVR:クラスタレシーバ
-
-
ClusterName(MQCHAR*52型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
この領域の長さはDCMTCQ_MQ_CLUSTER_NAME_LENGTHによって与えられます。
領域は名称の後ろに\0を格納し,定義で指定できるクラスタ名の最大サイズよりも大きくなるので注意してください。
-
BatchSize(MQLONG型)
チャネル開始時のネゴシエーション前に出口が呼び出された場合,チャネル定義のバッチサイズが設定されます。ネゴシエーション後に呼び出された場合は,ネゴシエーションの結果が設定されます。
-
XmitQName(MQCHAR*52型)
TCP定義のmqtalccha定義コマンドの-qオプションで定義した値が格納されます。
この領域の長さはDCMTCQ_MQ_Q_NAME_LENGTHによって与えられます。
-
MaxMsgLength(MQLONG型)
チャネル開始時のネゴシエーション前に出口が呼び出された場合,チャネル定義の最大メッセージ長が設定されます。ネゴシエーション後に呼び出された場合は,ネゴシエーションの結果が設定されます。
-
MaxSegLength(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
チャネル開始時のネゴシエーション前に出口が呼び出された場合,チャネル定義最大セグメントサイズが設定されます。ネゴシエーション後に呼び出された場合は,ネゴシエーションの結果が設定されます。
-
SeqNumberWrap(MQLONG型)
-
BufType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQBUFT_SEG:セグメント方式
-
DCMTCQ_MQBUFT_MSG:メッセージ方式
-
-
SendBufGroup(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
ReceiveBufGroup(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
MsgEdtBufGroup(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
MsgEdtBufCount(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
StartType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
次に示すどれかの値が設定されます。
-
DCMTCQ_MQSTART_AUTO:トリガ起動またはネットワークリクエストによってチャネルを自動確立します。
-
DCMTCQ_MQSTART_AUTO2:MQTサーバのサービス開始直後にチャネルを自動確立します。
-
DCMTCQ_MQSTRAT_MANUAL:チャネルをmqtstachaコマンド入力によって確立します。
-
-
LongRetryType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQLRTY_YES:長期確立再試行を実行します。
-
DCMTCQ_MQLRTY_NO:長期確立再試行を実行しません。
-
-
LongRetryCount(MQLONG型)
-
LongRetryInterval(MQLONG型)
-
OwnIPAddr(MQCHAR*16型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_IP_ADDR_LENGTHによって与えられます。
形式は"nnn.nnn.nnn.nnn"の文字型です。nnnには0〜255の文字が設定されます。nnnの値として先頭に0を指定した場合は,8進数値として扱われます。
また,データを格納する領域のあとに\0を付けます。
-
OwnHostName(MQCHAR*256型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_HOST_NAME_LENGTHによって与えられます。
また,データを格納する領域のあとに\0を付けます。
-
OwnPortNum(MQCHAR*8型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_PORT_NUM_LENGTHによって与えられます。
-
OwnServName(MQCHAR*36型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_SERV_NAME_LENGTHによって与えられます。
また,データを格納する領域のあとに\0を付けます。
-
PartnerIPAddr(MQCHAR*16型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_IP_ADDR_LENGTHによって与えられます。
形式は"nnn.nnn.nnn.nnn"の文字型です。nnnには0〜255の文字が設定されます。nnnの値として先頭に0を指定した場合は,8進数値として扱われます。
また,データを格納する領域のあとに\0を付けます。
-
PartnerHostName(MQCHAR*256型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_HOST_NAME_LENGTHによって与えられます。
また,データを格納する領域のあとに\0を付けます。
-
PartnerPortNum(MQCHAR*8型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_PORT_NUM_LENGTHによって与えられます。
-
PartnerServName(MQCHAR*36型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
領域の長さはDCMTCQ_MQ_SERV_NAME_LENGTHによって与えられます。
また,データを格納する領域のあとに\0を付けます。
-
ConRspRecvInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
RspMsgRecvInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
NextSegRecvInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
DiscInterval(MQLONG型)
-
DiscIntervalCount(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
DiscInterval2(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_3で追加)
-
DiscInterval2Effect(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_3で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_DINT2EFC_YES:切断時間間隔(DiscInterval2)による監視をします。
-
DCMTCQ_DINT2EFC_NO:切断時間間隔(DiscInterval2)による監視をしません。
-
-
TimeoutConRetry(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
タイムアウト時チャネル確立再試行の要否〔-v vretry〕
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQTIMO_YES:チャネル確立再試行を実行します。
-
DCMTCQ_MQTIMO_NO:チャネル確立再試行を実行しません。
-
-
NextMsgRecvInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
HeartbeatInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_2で追加)
チャネル開始時のネゴシエーション前に出口が呼び出された場合,チャネル定義のハートビート間隔が設定されます。ネゴシエーション後に呼び出された場合は,ネゴシエーションの結果が設定されます。
-
BatchInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_3で追加)
-
MsgEdtUserData(MQCHAR*32型)(Version=DCMTCQ_MQCD_VERSION_2で追加)
これは,dcmtcq_uoc_mqcxpパラメタのExitData領域に設定されて出口に渡されます。
メッセージ編集出口ユーザデータは,32バイト固定です。32バイトに満たない
場合は,スペースで補われます。
この領域の長さはDCMTCQ_MQ_EXIT_DATA_LENGTHによって与えられます。
-
SendUserData(MQCHAR*32型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
これは,dcmtcq_uoc_mqcxpパラメタのExitData領域に設定されて出口に渡されます。
送信出口ユーザデータは,32バイト固定です。32バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_DATA_LENGTHによって与えられます。
-
ReceiveUserData(MQCHAR*32型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
これは,dcmtcq_uoc_mqcxpパラメタのExitData領域に設定されて出口に渡されます。
受信出口ユーザデータは,32バイト固定です。32バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_DATA_LENGTHによって与えられます。
-
TcpSendBufLength(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
TcpRecvBufLength(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
ConvCCSID(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
NonPersistentMsgSpeed(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_2で追加)
チャネル開始時のネゴシエーション前に出口が呼び出された場合,チャネル定義の非永続メッセージの送信速度が設定されます。ネゴシエーション後に呼び出された場合は,ネゴシエーションの結果が設定されます。
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQNPMS_NORMAL:標準速度
-
DCMTCQ_MQNPMS_FAST:高速度
-
-
TranQMonType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQTRNQS_TIMER:タイマ方式
-
DCMTCQ_MQTRNQS_EVENT:イベント方式
これは,ChannelTypeがDCMTCQ_MQCHT_SENDER,またはDCMTCQ_MQCHT_SERVERの場合に有効です。
-
-
NetworkPriority(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
-
AlterTime(MQCHAR*12型)(Version=DCMTCQ_MQCD_VERSION_4で追加)
チャネル定義の作成および更新の日付/時刻が,通算の秒数で設定されます。
-
MsgChaProRetry(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
MQプロトコルエラー時のチャネル確立再試行の有無〔-b bretrymcp〕
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQMCP_NO:チャネル確立再試行をしません。
-
DCMTCQ_MQMCP_YES:チャネル確立再試行をします。
-
-
AdoptCheck(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
チャネル状態の不一致時の強制再接続条件〔-f adoptchk〕
次に示すどれかの値が設定されます。
-
DCMTCQ_MQADPCK_OFF:強制再接続はできません。
-
DCMTCQ_MQADPCK_NAME:強制再接続を受け付けます。
-
DCMTCQ_MQADPCK_QMGR:同じキューマネジャ名の要求で強制再接続を受け付けます。
-
DCMTCQ_MQADPCK_IPADDR:同じIPアドレスの要求で強制再接続を受け付けます。
-
DCMTCQ_MQADPCK_ALL:同じキューマネジャ名とIPアドレスの要求で強制再接続を受け付けます。
-
-
ShortRetryType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQSRTY_YES:短期確立再試行を実行します。
-
DCMTCQ_MQSRTY_NO:短期確立再試行を実行しません。
-
-
ShortRetryCount(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
-
ShortRetryInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
-
SecurityUserData(MQCHAR*32型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
これは,dcmtcq_uoc_mqcxpパラメタのExitData領域に設定されて出口に渡されます。
セキュリティ出口ユーザデータは,32バイト固定です。32バイトに満たない場合は,スペースで補われます。この領域の長さは,DCMTCQ_MQ_EXIT_DATA_LENGTHによって与えられます。
-
SendExit(MQCHAR*128型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
チャネル送信出口名は,128バイト固定です。128バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_NAME_LENGTHによって与えられます。
-
RcvExit(MQCHAR*128型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
チャネル受信出口名は,128バイト固定です。128バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_NAME_LENGTHによって与えられます。
-
MsgExit(MQCHAR*128型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
メッセージ出口名は,128バイト固定です。128バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_NAME_LENGTHによって与えられます。
-
ScyExit(MQCHAR*128型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
セキュリティ出口名は,128バイト固定です。128バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_EXIT_NAME_LENGTHによって与えられます。
-
Descr(MQCHAR*64型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
注釈は,64バイト固定です。64バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_DESCR_LENGTHによって与えられます。
-
MCAUser(MQCHAR*64型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
MCAユーザIDは,64バイト固定です。64バイトに満たない場合は,スペースで補われます。
この領域の長さは,DCMTCQ_MQ_MCAUSER_LENGTHによって与えられます。
-
MCAType(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_MQMCATYPE_PROCESS:MCAは独立のプロセスとして動作します。
-
DCMTCQ_MQMCATYPE_THREAD:MCAは独立のスレッドとして動作します。
-
-
TcpRetryCount(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
-
TcpRetryInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
-
StrucLength(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_5で追加)
-
SndJnlIO(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_6で追加)
次に示すどちらかの値が設定されます。
-
DCMTCQ_SNDJNL_FLUSH:即時フラッシュ(ディスク出力)します。
-
DCMTCQ_SNDJNL_NOFLUSH:即時フラッシュ(ディスク出力)しません。
-
-
BatchMilInterval(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_6で追加)
-
FastSndMsg(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_7で追加)
システムで使用するための予約領域です。
-
OwnPortAltNum(MQLONG型)(Version=DCMTCQ_MQCD_VERSION_7で追加)
(4) バッファリスト(dcmtcq_uoc_bufflist)
バッファリストは,メッセージを格納した送受信バッファや,それを編集する場合に使用する編集バッファをやり取りするために使用されます。
- dcmtcq_uoc_bufflistの宣言形式
typedef struct { MQLONG Buff_num; /* バッファ数 */ MQLONG Data_buff_num; /* データを格納する編集用バッファエントリ番号 */ dcmtcq_uoc_buffinf Buffinf_array[DCMTCQ_UOC_BUFF_MAX]; /* バッファ情報領域 */ } dcmtcq_uoc_bufflist; typedef struct { MQLONG Buff_length; /* バッファ長 */ MQLONG Used_buff_length; /* 使用バッファ長 */ MQCHAR *Buffer_addr; /* バッファアドレス */ MQCHAR Reserve1[4]; /* 予約領域 */ } dcmtcq_uoc_buffinf;
- 注
-
64ビット版の場合は,次の形式になります。
: MQCHAR *Buffer_addr; /* バッファアドレス */ } dcmtcq_uoc_buffinf;
-
Buff_num(MQLONG型) −input
バッファ情報の数が格納されます。
送受信バッファの場合,必ず1が格納されます。
編集用バッファの場合,MQT通信構成定義に編集用バッファを指定しないときは,0が格納されます。
-
Data_buff_num(MQLONG型) −output
UOCからメッセージを編集用バッファに格納した(ExitResponse2=DCMTCQ_MQXR2_USE_EDIT_BUFFER)場合,データを格納したバッファのエントリ番号を格納します。
指定が省略された場合(Data_buff_num=0)は,編集用バッファの第1エントリがメッセージとして扱われます。また,複数の編集バッファに分割して格納できません。
-
Buffinf_array(dcmtcq_uoc_buffinf型) −intput/output
UOCとの間でやり取りされるメッセージが格納される領域です。
次に示す領域から構成されます。
-
Buff_length(MQLONG型) −input
チャネル出口パラメタブロックのExitReasonに,DCMTCQ_MQXR_MSGが指定された場合にだけ有効な領域です。
UOC内でバッファとして使用できる長さが格納されます。
送受信バッファリストの場合,MQXQH構造体の長さを含みます。
-
Used_buff_length(MQLONG型) −intput/output
チャネル出口パラメタブロックのExitReasonに,DCMTCQ_MQXR_MSGが指定された場合にだけ有効な領域です。
Buff_lengthで指定された長さのうち,使用している有効な領域長(先頭からの長さ)が格納されます。UOC処理後に有効な領域長が変化した場合は,UOCのリターン前に更新してください。更新する値には,MQXQH構造体の長さを含めてください。
Buff_lengthの値よりも大きい値を格納した場合は,UOCが異常終了します。
-
Buffer_addr(MQCHARポインタ型) −input
データが格納されている領域のアドレスが格納されます。格納されているデータは,UOCから作成,および更新できます。データ形式については,「3.2.2 UOCに渡されるデータ形式」を参照してください。
-