set形式のMQAサービス定義

set形式のMQAサービス定義について説明します。

形式

〔set watch_time = 最大応答待ち時間〕
〔set mqa_channel_inf_file_name_a = MQTサーバ用チャネル
                                      管理情報格納A系ファイルパス名〕
〔set mqa_channel_inf_file_name_b = MQTサーバ用チャネル
                                      管理情報格納B系ファイルパス名〕
〔set mqa_channel_inf_file = normal|tp1file〕
〔set mqa_max_quenum = オンライン中に使用するキューの最大数〕
〔set mqa_max_grpnum = オンライン中に使用する
                          キューファイルグループの最大数〕
〔set mqa_max_msg_recnum = 1メッセージの最大レコード数〕
〔set mqa_max_filnum = オンライン中に使用するキューファイルの最大数〕
〔set mqa_ioproc_num = 入出力プロセス起動数〕
〔set mqa_expiry = Y|N〕
〔set mqa_maxque_expiry = メッセージ保持時間対象サーチキュー数〕
〔set mqa_maxmsg_expiry = メッセージ保持時間対象削除メッセージ数〕
〔set mqa_quefil_inf = Y|N〕
〔set mqa_mqr_conf = Y|N〕
〔set mqa_local_ccsid = キューマネジャの文字セット識別子〕
〔set mqa_jnl_conf = Y|N〕
〔set mqa_mqc_conf = Y|N〕
〔set mqa_mqc_clientnum = オンライン中に同時に処理できる
                                クライアントの最大数〕
〔set mqa_mqc_trnnum = オンライン中に同時に実行できる
                                トランザクションの最大数〕
〔set mqa_mqo_conf = Y|N〕
〔set mqa_mqo_queuefile_alarm_level = キューファイル登録メッセージ
                                                    サイズしきい値〕
〔set mqa_mqo_queuefile_recover_level = キューファイル登録メッセージ
                                                    サイズ回復値〕
〔set mqa_mqo_queue_alarm_level = キュー登録メッセージ数しきい値〕
〔set mqa_mqo_queue_recover_level = キュー登録メッセージ数回復値〕
〔set mqa_msg_stay_time = メッセージ滞留時間〕
〔set max_socket_descriptors = ソケット用ファイル記述子の最大数〕
〔set mqa_pool_attri = free|fixed〕
〔set mqa_extend_rmshm_size = MQAサービス専用共用メモリの拡張領域サイズ〕
〔set mqa_getwait_timeout = low|high〕
〔set mqa_filerr_continue = Y|N〕
〔set mqa_prf_trace_level = 性能検証用トレース情報取得レベル〕

オペランド

● watch_time=最大応答待ち時間

 ~<符号なし整数>((0~65535))(単位:秒)

RPCによってプロセス間で通信する場合に,サービス要求を送ってからサービスの応答が返るまでの待ち時間の最大値を指定します。

指定時間を過ぎても応答がない場合は,RPCは送信タイムアウトと判断してエラーにします。

0を指定した場合は,応答を受信するまで無限に待ち続けます。

省略した場合は,OpenTP1のシステム共通定義のwatch_timeオペランドの値が設定されます。

● mqa_channel_inf_file_name_a=MQTサーバ用チャネル管理情報格納A系ファイルパス名

 ~<1~80バイトの文字列>または~<1~63バイトの文字列>

ユーザ情報を格納するA系ファイルパス名を指定します。

MQTサーバのチャネルについての情報を格納するファイルです。このファイルは,MQTサーバサービス開始時とMQTサーバサービス終了時に作成,更新される情報で,次回のオンラインに引き継ぎます。

MQTサーバ用チャネル管理情報格納ファイルを通常ファイルに作成する場合は,ファイルパス名は80バイト以内にしてください。OpenTP1ファイルシステム上のファイルに作成する場合は,ファイルパス名は63バイト以内,ファイル名はOpenTP1ファイル名にしてください。

ファイルパス名およびファイル名にスペースを指定しないでください。また,すべてのファイルパス名の"/"個所に"/"を追加したファイルのパス名を指定しないでください。指定した場合,動作は保証されません。

注意
MQTサーバ用チャネル管理情報格納ファイルを使用しない場合はチャネルの運用に注意が必要です。
チャネルを引き継がない場合の属性値および注意点について,「5.3 開始時のチャネル情報引き継ぎ」を参照してください。

● mqa_channel_inf_file_name_b=MQTサーバ用チャネル管理情報格納B系ファイルパス名

 ~<1~80バイトの文字列>または~<1~63バイトの文字列>

ユーザ情報を格納するB系ファイルパス名を指定します。

MQTサーバのチャネルについての情報を格納するファイルです。このファイルは,MQTサーバサービス開始時とMQTサーバサービス終了時に作成,更新される情報で,次回のオンラインに引き継ぎます。

MQTサーバ用チャネル管理情報格納ファイルを通常ファイルに作成する場合は,ファイルパス名は80バイト以内にしてください。OpenTP1ファイルシステム上のファイルに作成する場合は,ファイルパス名は63バイト以内,ファイル名はOpenTP1ファイル名にしてください。

ファイルパス名およびファイル名にスペースを指定しないでください。また,すべてのファイルパス名の"/"個所に"/"を追加したファイルのパス名を指定しないでください。指定した場合,動作は保証されません。

注意
MQTサーバ用チャネル管理情報格納ファイルを使用しない場合はチャネルの運用に注意が必要です。
チャネルを引き継がない場合の属性値および注意点について,「5.3 開始時のチャネル情報引き継ぎ」を参照してください。

● mqa_channel_inf_file=normal|tp1file

 ~《normal》

A系およびB系のMQTサーバ用チャネル管理情報格納ファイルの入出力形式を指定します。mqa_channel_inf_file_name_aオペランドまたはmqa_channel_inf_file_name_bオペランドが指定されている場合だけ有効です。

MQTサーバ開始前に,A系およびB系のMQTサーバ用チャネル管理情報格納ファイルを格納するためのOpenTP1ファイルシステムを初期設定してください。オンライン中に作成した場合は,チャネル引き継ぎ情報を維持できなくなることがありますので注意してください。

normalを指定して作成したMQTサーバ用チャネル管理情報格納ファイルとtp1fileを指定して作成したMQTサーバ用チャネル管理情報格納ファイルの互換性はありません。

tp1fileを指定して作成したMQTサーバ用チャネル管理情報格納ファイルがあるOpenTP1ファイルシステムの属性(セクタ長,容量,および最大ファイル数)を変更し,かつチャネル引き継ぎ情報を維持したい場合には次に示す手順を実行してください。

  1. OpenTP1ファイルシステムのバックアップファイルを作成します。
  2. バックアップ元のOpenTP1ファイルシステムを初期設定します。
  3. 2.で初期設定したファイルに,1.のバックアップファイルの内容をリストアします。

● mqa_max_quenum=オンライン中に使用するキューの最大数

 ~<符号なし整数>((2~20480))《4096》

オンライン中に使用するキューの最大数を指定します。

オンライン中に使用するキューには,定義済みキューおよび永続的動的キュー(キューファイルに登録するキュー),一時的動的キュー(メモリキュー),リモートキューのローカル定義で指定したキュー,および別名キューが含まれます。

このオペランドには,次に示す数の合計以上の値を指定してください。

クラスタ機能を使用する場合,システムで四つのキューを作成することを考慮した値を指定してください。

● mqa_max_grpnum=オンライン中に使用するキューファイルグループの最大数

 ~<符号なし整数>((1~4095))《16》

オンライン中に使用するキューファイルグループの最大数を指定します。

mqaquegrp定義コマンドで指定するキューファイルグループの合計以上の値を指定してください。

● mqa_max_msg_recnum=1メッセージの最大レコード数

 ~<符号なし整数>((1~65535))《32》

1メッセージを登録する場合の最大レコード数を指定します。

最大レコード数は,次に示す計算式の最大値を指定してください。

[図データ]

キューファイルのレコード長は,mqainitコマンドの-sオプション(メッセージ長)と,キューファイルのセクタ長で算出した値です。レコード長の計算については,6章の「mqainit(キューファイルの割り当て)」を参照してください。

TP1/Message Queueは,開始時にこの値からジャーナルに取得するレコードデータの最大長を計算し,OpenTP1のシステムジャーナルサービス定義(jnl_max_datasizeオペランド)で指定された値以下かどうかをチェックします。エラーになった場合,OpenTP1のシステムジャーナルサービス定義(jnl_max_datasizeオペランド)の最大レコードデータ長の指定値を見直してください。

● mqa_max_filnum=オンライン中に使用するキューファイルの最大数

 ~<符号なし整数>((1~4095))《16》

オンライン中に使用するキューファイルの最大数を指定します。

mqaquegrp定義コマンドで指定するキューファイルグループおよびmqaaddコマンドで追加するキューファイル(バックアップキューファイルを含む)の合計以上の値を指定してください。

● mqa_ioproc_num=入出力プロセス起動数

 ~<符号なし整数>((1~64))《1》

MQPUT命令およびMQPUT1命令で登録したメッセージやMQGET命令で削除したメッセージの属性情報をキューファイルに出力する,入出力プロセスの最大起動数を指定します。

mqaquegrp定義コマンドに指定したキューファイルの数が,このオペランドの指定値よりも小さい場合は,キューファイルの数分の入出力プロセスが起動されます。ただし,二重化構成のキューファイルの場合,バックアップキューファイル(B系ファイル)の数は含まれません。

● mqa_expiry=Y|N

 ~《N》

メッセージ保持時間機能を使用するかどうかを指定します。

● mqa_maxque_expiry=メッセージ保持時間対象サーチキュー数

 ~<符号なし整数>((1~20480))《3》

メッセージ保持時間が終了したメッセージが存在するキューから,1回の監視でメッセージ削除の対象とするキュー数を指定します。

TP1/Message Queueは一定間隔(10秒)でキューを監視して,メッセージ保持時間が終了したメッセージをキューから削除します。

例えば,mqa_maxque_expiryオペランドに10,mqa_maxmsg_expiryオペランドに5が指定されている環境で,メッセージ保持時間が終了したメッセージが存在するキューが100個ある場合,1回の監視で10個のキューが対象となり,1キュー当たり最大で5個のメッセージが削除されます。

● mqa_maxmsg_expiry=メッセージ保持時間対象削除メッセージ数

 ~<符号なし整数>((1~65535))《3》

mqa_maxque_expiryオペランドで対象となったキューから,メッセージ保持時間が終了したメッセージを削除するメッセージ数を指定します。

メッセージ保持時間が終了したメッセージ数が,mqa_maxmsg_expiryオペランドで指定したメッセージ数を超えた場合は,超えた分のメッセージは,次回の対象になるまで削除されません。

● mqa_quefil_inf=Y|N

 ~《N》

キュー/キューファイルのしきい値,および回復値に達した場合,メッセージを出力するかどうかを指定します。

● mqa_mqr_conf=Y|N

 ~《N》

このノードでクラスタ機能を使用するかどうかを指定します。

● mqa_local_ccsid=キューマネジャの文字セット識別子

 ~<符号なし整数>((1~65535))《850》

キューマネジャの文字セット識別子(CodedCharSetId属性)を指定します。

指定する文字セット識別子が表す文字セットには,SBCS(1バイト文字セット)の場合もDBCS(2バイト文字セット)の場合も,必ずASCII文字列が含まれている必要があります。

省略値(850)を変更してチャネルを接続する場合,相手キューマネジャと同じ文字セット識別子,または相手キューマネジャが変換可能な文字セット識別子を指定してください。

指定した値は次に示す個所で使用されます。

相手キューマネジャとのチャネル接続に使用される文字セットは,MQMD構造体のCodedCharSetIdフィールドで指定する文字セット識別子と関係ありません。アプリケーションがMQMD構造体のCodedCharSetIdフィールドにMQCCSI_Q_MGR以外の値を指定してアプリケーションデータを作成してもチャネル接続には影響しません。

● mqa_jnl_conf=Y|N

 ~《N》

メッセージ登録時にメッセージデータの内容をジャーナルに取得するかどうかを指定します。

メッセージデータの内容をジャーナルに取得する場合は,次に示す制限事項に従ってシステムを構築してください。

● mqa_mqc_conf=Y|N

 ~《N》

このノードでMQCサーバ機能を使用するかどうかを指定します。MQCサーバ機能を使用する場合,必ずYを指定してください。

関連製品であるTP1/Message Queue - Accessを使用する場合に指定するオペランドです。

● mqa_mqc_clientnum = オンライン中に同時に処理できるクライアントの最大数

 ~<符号なし整数>((1~256))《16》

オンライン中に同時に処理できるクライアントの最大数を指定します。

mqcgwpnam定義コマンドの合計以上の値を指定してください。

指定値がmqcgwpnam定義コマンドの合計よりも小さい場合,MQCサービス開始時にKFCA30823-Eメッセージを出力して異常終了します。

関連製品であるTP1/Message Queue - Accessを使用する場合に指定するオペランドです。

● mqa_mqc_trnnum = オンライン中に同時に実行できるトランザクションの最大数

 ~<符号なし整数>((0~256))《0》

クライアントがXA接続した場合,オンライン中に同時に実行できるトランザクションの最大数を指定します。

指定値以上のトランザクションを開始しようとした場合,KFCA30855-Eメッセージを出力してトランザクションの開始を中断します。

この値を変更するときは,ジャーナルファイル容量の見積もりを見直してください。

関連製品であるTP1/Message Queue - Accessを使用する場合に指定するオペランドです。

● mqa_mqo_conf=Y|N

 ~《N》

このノードでMessage Queue - Operation - Agentを使用するかどうかを指定します。Message Queue - Operation - Agentについては,マニュアル「Message Queue - Operation 使用の手引」を参照してください。

● mqa_mqo_queuefile_alarm_level=キューファイル登録メッセージサイズしきい値

 ~<符号なし整数>((10~100))《80》(単位:%)

各キューファイルのメッセージ格納域全容量に対する,メッセージ格納域登録率のしきい値を指定します。

キューファイルの登録率がこのオペランドで指定したしきい値を上回った場合,mqa_quefil_infオペランドにYが指定されていれば,KFCA31055-Iメッセージが出力されます。

また,mqa_mqo_confオペランドにYが指定されていれば,Message Queue - Operation - Centerに状態が通知されます。

● mqa_mqo_queuefile_recover_level=キューファイル登録メッセージサイズ回復値

 ~<符号なし整数>((10~100))《70》(単位:%)

各キューファイルのメッセージ格納域全容量に対する,メッセージ格納域登録率の回復値を指定します。

キューファイルの登録率がこのオペランドで指定した回復値を下回った場合,mqa_quefil_infオペランドにYが指定されていれば,KFCA31056-Iメッセージが出力されます。

また,mqa_mqo_confオペランドにYが指定されていれば,Message Queue - Operation - Centerに状態が通知されます。

● mqa_mqo_queue_alarm_level=キュー登録メッセージ数しきい値

 ~<符号なし整数>((10~100))《80》(単位:%)

各キューに登録できる最大メッセージ数に対する,メッセージ登録率のしきい値を指定します。

キューのメッセージ登録率がこのオペランドで指定したしきい値を上回った場合,mqa_quefil_infオペランドにYが指定されていれば,KFCA31053-Iメッセージが出力されます。

また,mqa_mqo_confオペランドにYが指定されていれば,Message Queue - Operation - Centerに状態が通知されます。

● mqa_mqo_queue_recover_level=キュー登録メッセージ数回復値

 ~<符号なし整数>((10~100))《70》(単位:%)

各キューに登録できる最大メッセージ数に対する,メッセージ登録率の回復値を指定します。

キューのメッセージ登録率がこのオペランドで指定した回復値を下回った場合,mqa_quefil_infオペランドにYが指定されていれば,KFCA31054-Iメッセージが出力されます。

また,mqa_mqo_confオペランドにYが指定されていれば,Message Queue - Operation - Centerに状態が通知されます。

● mqa_msg_stay_time=メッセージ滞留時間

 ~<符号なし整数>((0~2147483647))《0》(単位:秒)

メッセージが滞留したと判断する時間を指定します。この指定した時間以上メッセージがキューにある場合に,キューに対応するKFCA31065-Iメッセージが出力されます。メッセージ登録時から,メッセージの削除が有効になるまでが監視対象になります。0を指定した場合,滞留状態はチェックされません。このオペランドに0以外を指定した場合に,監視サーバプロセスが起動します。滞留状態の検知は遅れる場合があります。KFCA31065-Iメッセージが出力されたあとに,キューからすべてのメッセージが取り出されるとKFCA31066-Iメッセージが出力されます。

このオペランドを指定する場合は,監視対象にするキューについて,mqaqueatl定義コマンドの-vオプションにonを指定してください。

また,mqa_mqo_confオペランドにYが指定されていれば,Message Queue - Operation - Centerに状態が通知されます。

● max_socket_descriptors=ソケット用ファイル記述子の最大数

 ~<符号なし整数>((Linux以外の場合:32~2032,Linuxの場合:32~1008))

Linux以外の場合《514》

Linuxの場合《64》

OpenTP1の制御下のプロセスで,ソケット用に使用するファイル記述子の最大数を指定します。次に示す計算式で求めた値を指定してください。

↑(mqa_ioproc_numの指定値×2+7)/0.8↑

(凡例)
↑↑:小数点以下を切り上げます。

● mqa_pool_attri=free|fixed

 ~《free》

MQAサービス専用共用メモリをメモリプールに固定するかどうかを指定します。

このオペランドでfixedを指定する場合は,MQAサービス専用共用メモリがメモリプールに固定されるため,実装するメモリの容量や,全使用容量に対する共用メモリの割合などを考慮してください。

● mqa_extend_rmshm_size=MQAサービス専用共用メモリの拡張領域サイズ

 ~<符号なし整数>((0~2000000000))《0》(単位:バイト)

オンライン中に組み込むキューファイルで使用する共用メモリのサイズを指定します。TP1/Message Queueの開始時に指定したサイズでMQAサービス専用共用メモリの拡張領域を確保します。省略した場合,TP1/Message Queueの開始時にMQAサービス専用共用メモリの拡張領域は確保されないため,オンライン中に新しくキューファイルを組み込めません。

MQAサービス定義のmqaquegrp定義コマンドで指定したキューファイル以外の新規キューファイルをオンライン中に組み込むと,組み込むキューファイルで使用するサイズ分のMQAサービス専用共用メモリの拡張領域を使用します。一度,新規キューファイルを組み込むと,mqarmコマンドでキューファイルを切り離してもMQAサービス専用共用メモリの拡張領域は予約された状態のままとなります。したがって,同一のキューファイルを組み込む場合だけMQAサービス専用共用メモリの拡張領域の予約された部分を使用できます。

● mqa_getwait_timeout=low|high

 ~《low》

MQGMO_WAITを指定したMQGET命令でメッセージが到着しなかった場合に,タイムアウトする時間の精度を指定します。

メッセージが到着してからMQGET命令の待ち合わせが解除されるまでの遅延を小さくしたい場合は,lowを指定してください。highは,複数メッセージを取り出してから一括処理するような場合でキューが空になってから次のメッセージ到着までを秒以下の精度で待ち合わせたいときに使用できます。

● mqa_filerr_continue=Y|N

 ~《Y》

キューファイルに入出力エラーが発生した場合,オンラインを継続させるかどうかを指定します。

このオペランドを省略した場合または"Y"を指定した場合,キューファイルに入出力エラーが発生すると,キューファイルの状態を一時的障害閉塞としてオンラインを継続させます。

このオペランドに"N"を指定する場合,キューファイル入出力エラー発生時にKFCA31191-Eメッセージを出力してオンラインを異常終了させることができます。異常終了時は再開始前に障害要因を取り除くことによって,再開始時にキューファイルがジャーナルによって回復されます。そのため,障害閉塞しないでキューファイルの整合性が保たれます。

このオペランドに"N"を指定する場合,次に示す点に注意してください。
  • キューファイル二重化構成の場合,両系が障害となった時点でOpenTP1が異常終了します。
  • OpenTP1が異常終了したあと,このオペランドにNを指定したまま障害要因を取り除かないでOpenTP1を再開始した場合,再び入出力エラーでOpenTP1が異常終了するおそれがあります。
  • OpenTP1が異常終了したあと,このオペランドを"Y"に変更してOpenTP1を再開始したときに再び入出力エラーが発生すると,キューファイルは障害閉塞になります。

● mqa_prf_trace_level=性能検証用トレース情報取得レベル

 ~<16進数字>((00000000~00000001))《00000000》

性能検証用トレース情報を取得するレベルを指定します。取得する場合はシステム共通定義のprf_traceオペランドにYを指定してください。Nを指定した場合,mqa_prf_trace_levelオペランドに00000001を指定しても性能検証用トレース情報は取得されません。

性能検証用トレース情報の詳細を見るためのトレース情報ファイルの取得(prfgetコマンド)およびトレース情報ファイルの編集出力(prfedコマンド)など,性能検証用トレースに関する運用については,マニュアル「OpenTP1 運用と操作」を参照してください。OpenTP1の開始モードに関係なく,OpenTP1開始時にMQAサービス定義に指定されている値が有効となります。

イベントID別の取得内容を次に示します。

表4-4 イベントID別の取得内容

イベントIDキュー名称(48)メッセージトークン(内部登録時間)(8)リターンコード(4)メッセージ識別子(32)相関識別子(32)ユーザデータ(32)メッセージ滞留時間(16)
0xd000
0xd001
0xd002
0xd003
(凡例)
○:情報を取得します。
-:情報を取得しません。
括弧内:取得バイト数
注※
prfedコマンドに-dオプションを指定した場合に出力される,詳細情報と出力順序を示しています。