Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引


定義情報の作成手順

TP1/Message Queueの定義は,MQAサービス定義,MQTサービス定義およびMQT通信構成定義に分けられます。

MQAサービス定義およびMQTサービス定義は,OpenTP1システム定義の中の,システムサービス定義の一部に当たります。

MQT通信構成定義は,OpenTP1システム定義の中の,メッセージキュー定義に当たります。

また,TP1/Message Queueを使用するために,OpenTP1のシステムサービス定義のシステムサービス構成定義,ロックサービス定義,ネームサービス定義,ジャーナルサービス定義,およびチェックポイントダンプサービス定義を使用します。

TP1/Message Queueの定義の体系について,次の図に示します。

図4‒2 TP1/Message Queueの定義の体系

[図データ]

注※

関連製品であるTP1/Message Queue Accessの使用時に作成する定義です。OpenTP1システム定義の中の,システムサービス定義の一部に当たります。TP1/Message Queue Accessを使用しない場合は,作成不要です。

〈このページの構成〉

TP1/Message Queueの定義情報の作成手順

MQAサービス定義を作成する場合は,テキストエディタを使用して,定義ファイルを作成します。

MQT通信構成定義を作成する場合は,オンライン開始前にオブジェクトファイルを作成しておく必要があります。オブジェクトファイルは,テキストエディタによって作成したソースファイルを,ユティリティで変換して作成します。MQT通信構成定義の中のMQT共通定義およびTCP定義は,それぞれ個別のソースファイルに作成し,個別のオブジェクトファイルを作成します。

注意事項
  • OpenTP1ファイル(ジャーナルファイル,チェックポイントダンプファイル,ステータスファイル,キューファイル)および共用メモリの見積もりを行い,その結果に応じて定義情報を作成してください。見積もり値よりも定義で指定した値のほうが少ない場合,各種資源が不足し,オンライン中にエラーが発生したりOpenTP1が強制停止したりします。

  • MQT通信構成定義は,オブジェクトファイルでのバージョン互換性を保証しません。そのため,バージョン,またはOSが異なる環境で作成したMQT定義オブジェクトファイルを使用した場合の動作は保証できません。

定義の規則

定義を指定する場合の規則を説明します。

MQAサービス定義

MQAサービス定義には,set形式およびコマンド形式があります。どちらの定義形式も同一定義ファイルに格納します。

同一定義内では,set形式を定義してからコマンド形式を定義してください。

set形式ではOpenTP1システム開始時に値が決定されます。

コマンド形式ではOpenTP1システム開始時に値が決定されても,オンライン中に運用コマンドを入力すると,OpenTP1システム開始時に決定された値を変更できます。

MQTサービス定義

MQTサービス定義には,set形式があります。

set形式ではOpenTP1システム開始時に値が決定されます。

MQCサービス定義

関連製品であるTP1/Message Queue Accessの使用時に作成する定義です。

MQCサービス定義には,コマンド形式があります。

コマンド形式ではOpenTP1システム開始時に値が決定されても,オンライン中に運用コマンドを入力すると,OpenTP1システム開始時に決定された値を変更できます。

MQCゲートウェイサーバユーザサービス定義

関連製品であるTP1/Message Queue Accessの使用時に作成する定義です。

MQCゲートウェイサーバユーザサービス定義には,set形式があります。

set形式ではOpenTP1システム開始時に値が決定されます。

システム環境定義(env)

default_value_option=システム定義のデフォルト値選択オプション 〜〈符号なし整数〉((0〜1))《1》

表4-1,および表4-2に示すTP1/Message Queueのオペランドについて,07-50より前のデフォルト値で動作させるか,07-50以降のデフォルト値で動作させるかを指定します。

  • 07-50より前のデフォルト値で動作させる場合

    default_value_optionオペランドを0で指定します。

上記の指定によって,デフォルト値が変更されるTP1/Message Queueのオペランドを次の表に示します。

表4‒1 デフォルト値が変更されるTP1/Message Queueのオペランド(07-50より前のデフォルト値で動作させる場合)

オペランド

変更後のデフォルト値

mqttcp定義コマンド

(TCP構成定義)

-t disk

no

-t bufcnt

100

mqttcpcs定義コマンド

(クラスタセンダTCP構成定義)

-t disk

no

-t bufcnt

100

mqttcpcr定義コマンド

(クラスタレシーバTCP構成定義)

-t disk

no

-t bufcnt

100

  • 07-50以降のデフォルト値で動作させる場合

    default_value_optionオペランドを1で指定します。

上記の指定によって,デフォルト値が変更されるTP1/Message Queueのオペランドを次の表に示します。

表4‒2 デフォルト値が変更されるTP1/Message Queueのオペランド(07-50以降のデフォルト値で動作させる場合)

オペランド

変更後のデフォルト値

mqttcp定義コマンド

(TCP構成定義)

-t disk

yes

-t bufcnt

2500

mqttcpcs定義コマンド

(クラスタセンダTCP構成定義)

-t disk

yes

-t bufcnt

2500

mqttcpcr定義コマンド

(クラスタレシーバTCP構成定義)

-t disk

yes

-t bufcnt

2500

システムサービス構成定義

TP1/Message Queueを使用するためには,mqa_confオペランドにYを指定してください。

ロックサービス定義

TP1/Message Queueを使用するためには,lck_limit_formqaオペランドに,MQAサーバの最大同時排他要求数を指定してください。ここで指定する値は,同一ノード上にあるMQAサーバから発生する排他要求数の最大値です。

次の計算式で最大同時排他要求数を見積もってください。

A+S+T+E+1※1+R※2
A:

MQOO_INPUT_AS_Q_DEF,MQOO_INPUT_SHAREDまたはMQOO_INPUT_EXCLUSIVEを指定したMQOPEN発行数(MQCLOSE未発行)(mqcgwpクライアントアプリケーションを含みます)

S:

同時に確立する送信側のチャネル数(自動定義クラスタセンダチャネルmqttcpcsを含みます)

T:

MQAサービス定義のプロトコル名称がmqttcpのmqamqtnamコマンド定義数

E:
  • メッセージ保持時間機能を使用する場合,1(set mqa_expiry=Yの場合)

  • メッセージ保持時間機能を使用しない場合,0(set mqa_expiry=N,または省略した場合)

注※1

mqadelmsgコマンドおよび,mqarmコマンドによるMQOPEN発行数(二つのコマンドを同時に実行した際は,動作するのはどちらか一つとなり,もう一方は待たされます)。

注※2

クラスタ機能を使用する場合,次の計算式の結果をRの値として加えてください。

R=5+(4×mqrsppプロセス数)

なお,MQAサーバでの排他には,lck_wait_timeoutオペランドを使用しません。このため,lck_wait_timeoutオペランドの指定値によるエラーリターンは発生しません。

ネームサービス定義

TP1/Message Queueを使用するためには,name_total_sizeオペランドにMQAサーバ分として,次の式で見積もった値を加算してください。

(4+MQAサービス定義のmqa_ioproc_numオペランドの指定値
+mqamqtnam定義コマンドの定義数)×528(単位:バイト)

クラスタ機能を使用する場合は,OpenTP1のname_total_sizeオペランドの指定値の見積もり式に含まれる「SPP数」に1を加算してください。見積もり式については,マニュアル「OpenTP1 システム定義」のTP1/Server Base用の共用メモリの見積もり式の,ネームサーバの説明を参照してください。

トランザクションサービス定義

関連製品であるTP1/Message Queue Accessの使用時に作成する定義です。

MQCサーバ機能で,TP1/Message Queue Accessからグローバルトランザクションを使用するかどうかを指定します。

TP1/Message Queue Accessからグローバルトランザクションを使用する場合は,trn_crm_useオペランドにYを指定してください。Yを指定しないでTP1/Message Queue Accessからグローバルトランザクションを使用した場合の処理の流れを次に示します。

  1. TP1/Message Queue Accessからグローバルトランザクションを開始します。

  2. MQPMO_MQSYNCPOINT,またはMQGMO_SYNCPOINTを指定して,MQPUT命令,MQPUT1命令,およびMQGET命令を発行します。

  3. 理由コードMQRC_UNEXPECTED_ERRORがTP1/Message Queue Accessへ返却されます。また,MQCサーバ側にKFCA00910-Eメッセージが出力されます。

ジャーナルサービス定義

MQAサービス定義にmqamqtnam定義コマンドで,MQTデーモンの構成を定義した場合,MQAサーバはチェックポイントダンプを取得します。MQAサーバ用のチェックポイントダンプサービス定義のファイル名をjnldfsv定義コマンドで指定してください。

チェックポイントダンプサービス定義

MQAサービス定義にmqamqtnam定義コマンドで,MQTデーモンの構成を定義した場合,MQAサーバはチェックポイントダンプを取得します。MQAサーバ用のチェックポイントダンプサービス定義を作成してください。jnl_objservernameオペランドには,対象となるシステムサービス名として_mqaを指定してください。

mqamqtnam定義コマンドを指定しないでMQAサーバ用のチェックポイントダンプサービス定義を作成した場合,OpenTP1起動時に,「KFCA01125-E 理由コード=908-0」が出力されて起動に失敗します。

MQT通信構成定義

MQT通信構成定義では,各定義内での記述順序が決まっています。

MQT通信構成定義には,コマンド形式だけがあります。

旧製品のMQAサービス定義を使用する場合の注意事項

TP1/Message Queue 05-15以降および05-14以降では,MQAサービス定義の指定を省略した場合の解釈値を変更しました。TP1/Message Queue 05-14以前または05-13以前の定義を使用する場合,動作が異なることがありますので注意してください。変更内容をそれぞれ表4-3および表4-4に示します。

表4‒3 TP1/Message Queue 05-15以降で変更したMQAサービス定義の省略時の解釈値

定義コマンド名およびオプション名

TP1/Message Queue 05-14以前で省略した場合の解釈値

TP1/Message Queue 05-15以降で省略した場合の解釈値

mqaquemgr -t

150

999999999

トリガ起動によるチャネル確立を行う環境で次に示す状態の場合,運用に合ったトリガ間隔を指定するか,または05-14以前でトリガ間隔を省略した場合の解釈値(150ミリ秒)を指定してください。

表4‒4 TP1/Message Queue 05-14以降で変更したMQAサービス定義の省略時の解釈値

定義コマンド名およびオプション名

TP1/Message Queue 05-13以前で省略した場合の解釈値

TP1/Message Queue 05-14以降で省略した場合の解釈値

mqaquegrp -m

100

0

TP1/Message Queue 07-50以降では,MQT通信構成定義に指定するTCP定義の省略値の解釈を変更しました。TP1/Message Queue 07-01以前の定義を使用する場合,動作が異なることがありますので注意してください。変更内容を次の表に示します。

表4‒5 TP1/Message Queue 07-50以降で変更したMQT通信構成定義の省略時の解釈値

定義コマンド名およびオプション名

TP1/Message Queue 07-01以前で省略した場合の解釈値

TP1/Message Queue 07-50以降で省略した場合の解釈値

mqttcp -t disk

no

yes

mqttcp -t bufcnt

100

2500

mqttcpcs -t disk

no

yes

mqttcpcs -t bufcnt

100

2500

mqttcpcr -t disk

no

yes

mqttcpcr -t bufcnt

100

2500