8.3.20 hrmmkque(転送キューの作成)
- 〈この項の構成〉
(1) 形式
hrmmkque -t transmit 〔-m {persistent|non_persistent}〕 〔-n 最大メッセージ数〕 〔-c キャッシュメッセージ数〕 〔-e メッセージ有効期間〕 -a あて先名 {-v 転送先キュー名|-y} 〔-i {normal|compatible}〕 〔-j {exactly_once|in_order}〕 〔-g 通信層のグループ有効期間〕 〔-s 通信層のメッセージ有効期間〕 〔-x 表示名〕 〔-r RDエリア名〕 〔-S システム名〕 キュー名
(2) 機能
指定されたキュー属性で,転送キューを作成します。
(3) オプション
- -t transmit
- -m {persistent|non_persistent}
-
〜《persistent》
-
persistent:永続キュー属性
-
non_persistent:非永続キュー属性
各属性を指定したときのメッセージの処理については,「2.3.1 キューの永続性」を参照してください。
-jオプションにin_orderを指定した場合,このオプションの指定はpersistent(永続キュー)だけとなります。-jオプションにin_orderを指定して,同時にキューモードにnon_persistent(非永続キュー)を指定した場合はエラーが発生します。
-
- -n 最大メッセージ数
-
〜<数字>((1〜65535))《1024》
キューに格納するメッセージの最大数を指定します。
- -c キャッシュメッセージ数
-
〜<数字>((0〜65535))《1024》
キャッシュに格納するメッセージの数を指定します。
指定を省略した場合,-nオプションに指定した最大メッセージ数が設定されます。0を指定した場合,キャッシュにメッセージは格納されません。
このオプションに大きな値を指定する場合,メモリを消費しますがメッセージ転送の性能が向上します。小さい値を指定する場合,メモリの消費は抑えられますが,DBアクセス回数が増えることによってメッセージ転送の性能が低下します。
- -e メッセージ有効期間
-
〜<数字>((1〜2592000))《2592000》(単位:秒)
キューに格納するメッセージの有効期間を指定します。
有効期間を指定するときのメッセージの処理については,「2.3.5 メッセージの有効期間」を参照してください。
有効期間に達すると,そのメッセージはデッドメッセージとして扱われます。
-sオプションで指定した値以下の値を指定してください。-sオプションで指定した値より大きい値を指定するとエラーが発生します。
- -a あて先名
-
〜<1〜32文字の文字列>
メッセージを転送するあて先のあて先名を指定します。hrmmkaddrコマンドで,事前にあて先名を登録する必要があります。登録されていないあて先名を指定するとエラーが発生します。
- -v 転送先キュー名
-
〜<1〜20文字の識別子>
メッセージを転送する場合,転送したメッセージを登録するキューの名前を指定します。キュー間転送のあて先の詳細については,「2.4.2 キュー間転送のあて先指定」を参照してください。
- -y
-
-vオプションを省略して,-aオプションで指定したあて先名に対応するあて先アドレスだけを送信アドレスとする場合に指定します。キュー間転送のあて先の詳細については,「2.4.2 キュー間転送のあて先指定」を参照してください。
- -i {normal|compatible}
-
〜《normal》
作成するキューの転送モードを指定します。
-
normal:通常モード
-
compatible:互換モード
転送先のReliable Messagingのバージョンが01-03以降の場合はnormalを指定します。バージョンが01-02以前の場合はcompatibleを指定します。
normalを指定して作成した転送キューを使用して,01-02以前のReliable Messagingにメッセージを転送した場合,ペイロードが空のメッセージとして受信されることがありますので,注意してください。
-
- -j {exactly_once|in_order}
-
〜《exactly_once》
転送に使用するQoS(通信品質)の種別を指定します。
-
exactly_once:配送保証および重複防止
-
in_order:順序保証
-
- -g 通信層のグループ有効期間
-
〜<数字>((10〜2592000))(単位:秒)《2592000》
通信層のグループの有効期間を指定します。
このオプションの値は,通信層でメッセージを送受信するために使用するグループの有効期間を示します。このオプションで指定した有効期間に達すると,新たにグループが作成され,メッセージは新しいグループに格納されます。
- -s 通信層のメッセージ有効期間
-
〜<数字>((10〜2592000))(単位:秒)《-eオプションの値》
通信層のグループに格納するメッセージの有効期間を指定します。
このオプションの値は,メッセージがグループ内で管理される期間を示します。このオプションで指定した有効期間に達すると,そのメッセージはデッドメッセージとして扱われます。
-eオプションで指定した値以上の値を指定してください。-eオプションで指定した値未満の値を指定した場合,エラーが発生します。-eオプションで指定した値が1〜9の場合,このオプションを省略すると値は10を指定したとみなされます。
- -x 表示名
-
〜<1〜64文字の英数字および_(アンダースコア)>
キューの表示名を指定します。表示名とは,アプリケーションがJNDIネーミングサービスからキューを取得するときの,キューの論理名のことです。
指定を省略した場合は,コマンド引数で指定したキュー名と同じ名称を指定したものとみなされます。
指定した表示名と同じ名称を持つキューがすでに存在している場合,エラーとなります。詳細は「8.3.20(5) 注意事項」を参照してください。
- -r RDエリア名
-
〜<1〜30文字の識別子および空白>
メッセージ情報テーブルを格納するRDエリアの名前を指定します。メッセージ情報テーブルを格納するRDエリアをあらかじめ用意してください。HiRDBのRDエリアの作成については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
-mオプションにnon_persistentを指定した場合,またはDBにOracleを使用している場合,このオプションの指定値は無効になります。
このオプションを省略した場合,格納するRDエリアをHiRDBが決定します。HiRDBが決定するRDエリアについては,マニュアル「HiRDB SQLリファレンス」を参照してください。
- 注意
-
-
RDエリア名に空白を含む場合は,次のように指定してください。
Windowsの場合
引用符(")で囲んでください。
UNIXの場合
アポストロフィ(’)で囲み,さらにその外側を引用符(")で囲んでください。
-
RDエリア名は大文字と小文字が区別されます。
-
- -S システム名
-
〜<先頭が英字の1〜3文字の大文字英字または数字>
コマンドの操作対象となるシステム名(RMSystemNameプロパティ指定値)を指定します。
指定を省略した場合は,HRM_SYSTEM_NAME環境変数に指定したシステム名が設定されます。HRM_SYSTEM_NAME環境変数にもシステム名が指定されていないときはエラーが発生します。
(4) コマンド引数
- キュー名
-
〜<1〜20文字の識別子>
作成するキューの名前を指定します。
既存のキューの名前を指定した場合はエラーが発生します。
(5) 注意事項
-
コマンド引数に指定するキュー名は,英字の大文字と小文字が区別されません。英字の大文字と小文字の違いだけのキュー名がすでにある場合,エラーが発生します。
-
-gオプションおよび-sオプションを使うと,受信側のリソースの使用量に影響します。運用方法に合わせた値を指定してください。例えばWebサービスなど,不特定多数が通信をする運用の場合は,-gオプションおよび-sオプションの値を大きくすると,受信側にリソースを蓄積させてしまうので,小さい値を指定することをお勧めします。
-
キュー定義ファイルを使用していない場合,-xオプションで指定したキューの表示名でJNDIネーミングサービスに登録されます。
キュー定義ファイルを使用している場合は,キュー定義ファイルの指定が優先され,-xオプションで指定した表示名でのJNDIネーミングサービスへの登録はされません。
キュー定義ファイルを使用してReliable Messagingを運用している場合,キュー定義ファイルを使用しないでReliable Messagingを再開始したときは,-xオプションで指定した表示名がJNDIネーミングサービスに登録されます。
キュー定義ファイルの使用有無の詳細については,「3.4.4 キュー定義ファイルの作成(永続版リソースアダプタの場合)」を参照してください。
-
-xオプションで表示名を指定しなくても,作成するキューのキュー名が,作成済みキューの表示名と重複した場合,キューの作成は失敗します。
-
Reliable Messagingを09-00にバージョンアップした場合,Reliable Messaging 01-02以前で作成した転送キューは,転送モードがcompatible(互換モード)の転送キューとして扱われます。