mqainit(キューファイルの割り当て)
機能
キューに登録したメッセージを格納するためのファイル(キューファイル)を割り当てます。
このコマンドで割り当てるキューファイルは,メッセージの管理情報を格納するメッセージ情報管理ファイルとメッセージ本体を格納するメッセージファイルの二つで構成されます。それぞれキューファイル名.cntとキューファイル名.msgの名前が付けられ,一つのOpenTP1ファイルシステム上に作成されます。
作成されるキューファイルのファイルの構造について,次の図に示します。
|
オプション
● -r
指定したファイルがすでにあり,再びキューファイルを割り当てる場合に指定します。このオプションの指定を省略すると,指定したファイルがすでにあった場合にエラーになります。
また,このオプションを指定する場合,既存のキューファイルは削除されません。そのため,新しいキューファイルを作成するだけの空き容量が確保されていることを確認してください。空き容量がない場合,KFCA04384-Eメッセージが出力されます。
● -q キュー数
〜((1〜20480))《32》
指定したキューファイルに登録するキューの最大数を指定します。
キュー数に20480を指定した場合,メッセージ数とメッセージ長は,それぞれ最大値を指定できません。指定値は,-sオプションの説明で示されている計算式で算出してください。
キュー数には,一時的および永続的なキューを合わせた数を指定してください。
● -m メッセージ数
〜((1〜1048560))《4096》
指定したキューファイルに登録するメッセージの最大数を指定します。
メッセージ数には,非永続性および永続性のメッセージを合わせた数を指定してください。
登録するメッセージのメッセージ長が-sオプションで指定した値より大きい場合,実際に登録できるメッセージ数は,このオプションで指定した値より少なくなります。
● -s メッセージ長
〜((1〜128000000))《100000》(単位:バイト)
指定したキューファイルに登録するメッセージの平均メッセージ長を指定します。この場合,指定した値を基にキューファイルのレコード長が決定されます。
レコード長の計算式を次に示します。
このオプションで指定した値より長いメッセージの登録もできます。ただし,その場合一つのメッセージで複数のレコードを使用するため,-mオプションで指定したメッセージ数より,実際に登録できるメッセージ数は少なくなります。最大で幾つのレコードを使用するかは,MQAサービス定義のmqa_max_msg_recnumオペランドで指定できます。
MQAサービスでは,1レコードに複数のメッセージは格納しないため,メッセージ長が極端に異なるメッセージを一つのキューに格納すると媒体効率が低下します。このような場合,メッセージを登録するキューを分け,キューを格納するキューファイルグループも分けると媒体効率が向上します。
また,転送キューを作成するキューファイルを割り当てるときには,付加情報(MQXQH構造体)の長さを考慮した値を指定してください。
コマンド引数
● キューファイル名
〜<1〜59文字の文字列>
キューファイルとして割り当てるファイル名を完全パス名で指定します。
キューファイル名に指定している最後の"/"以降の文字列長を10文字以内としてください。
キューファイルパス名およびキューファイル名にスペースを指定しないでください。また,ファイルパス名の"/"個所に"/"を追加したキューファイルパス名を指定しないでください。指定した場合,動作は保証されません。
注意事項
-
mqainitコマンドを入力する前にOpenTP1ファイルシステムの初期設定をしていない場合は,初期設定をしてください。
-
複数のキューファイルを一つのキューファイルグループに対応づける場合,キューファイル名で指定するOpenTP1ファイルシステムを物理的に別ディスクにすることをお勧めします。別ディスクにすると,一つのキューに複数のアプリケーションからの操作が重なった場合に,性能が良くなります。
-
キューファイル名.cntまたはキューファイル名.msgの片方だけを削除した場合は,処理を保証しません。
-
-m,-sオプションで指定した値を基に,TP1/Message Queueに必要な共用メモリを,MQAサービス専用共用メモリに確保します。したがって,-m,-sオプションでは,MQAサービス専用の共用メモリの算出式を基に値を指定してください。
-
mqainitコマンドを入力する前に,キャラクタ型スペシャルファイルまたはUNIXファイルのアクセス権は,所有者およびグループにリード・ライト権を付与してください。また,OpenTP1ファイルシステムのアクセス権はユーザ用に設定してください。アクセス権を正しく設定していない場合,KFCA31184-Eメッセージが出力されてOpenTP1の起動に失敗します。
-
キューファイルの最大格納容量は,メッセージ情報管理ファイルとメッセージファイルの合計で,2ギガバイト以内です。最大格納容量を超えてキューファイルを作成した場合,動作は保証しません。そのため,キューファイルを作成したあとに,メッセージ情報管理ファイルとメッセージファイルの合計が2ギガバイトを超えていないことを確認してください。
-
キューファイルの最大格納容量を2ギガバイト以上にする場合,複数のキューファイルをキューファイルグループにすれば,最大格納容量の上限がキューファイル数×キューファイルの最大格納容量になります。
-
キューファイルを割り当てる場合は,OpenTP1ファイルシステム領域の中で,連続した領域を確保する必要があります。連続した空き領域が確保できない場合は,OpenTP1ファイルシステムのガーベジコレクション(OpenTP1ファイルシステム中の使用中の領域を集中させ,空き領域を連続させること)が必要となります。
詳細については,マニュアル「OpenTP1 運用と操作」を参照してください。