Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging

[目次][用語][索引][前へ][次へ]

6.2 Reliable Messagingのコンフィグレーションプロパティの詳細説明

各コンフィグレーションプロパティの詳細について説明します。

<この節の構成>
(1) RMSystemName = システム名
(2) RMLinkedDBConnectorName = 連携するDB Connectorの表示名
(3) QueueMakeFileName = キュー作成ファイルの場所
(4) QueueConfigFileName = キュー定義ファイルの場所
(5) RMDeadMessageQueueName = デッドメッセージキュー名
(6) RMWaitRestoration = Reliable Messaging開始時の復元完了待ち合わせの有無
(7) RMStartTimeout = Reliable Messaging開始処理のタイムアウト時間
(8) RMAssociateJDBCFlag=DB Connectorとのコネクション共有機能の使用有無
(9) RMSweepTimerInterval = メッセージ削除処理の実行間隔
(10) RMDeleteMessageImmediately = メッセージ即時削除の利用有無
(11) RMPassByReference = メッセージ送受信時の参照渡し方式の利用の有無
(12) RMMaxDeliveryNum = 配送回数の最大値
(13) RMMethodTraceLevel = メソッドトレースの出力レベル
(14) RMLineTraceLevel = 回線トレースの出力レベル
(15) RMLogTraceFileNum = トレースファイルの最大面数
(16) RMLogTraceFileSize = トレースファイルのファイルサイズ
(17) RMSHConnectFlag = 共用キューを使用して複数システム間でのアプリケーション連携をする場合の受信用共用キューの有無
(18) RMSHPort = 共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベント受信用ポート番号
(19) RMSHRecoveryTimerInterval = 共用キューを使用して複数システム間でのアプリケーション連携をする場合のリカバリスレッド監視間隔
(20) RMTRConnectFlag=キュー間転送の使用有無
(21) RMTRSendThreadNum=送信スレッドの起動数
(22) RMTRResendInterval1Num=再送間隔1での再送回数
(23) RMTRResendInterval1=再送間隔1
(24) RMTRResendInterval2 = 再送間隔2
(25) RMTRResendTimerInterval = 再送タイマ監視間隔
(26) RMTRPendingNotifyInterval = 滞留メッセージの監視時間
(27) RMTRTransferControlDir = クライアント定義ファイルが格納されているディレクトリのパス
(28) RMAutoDeleteMessage = デッドメッセージキュー未使用時の無効メッセージ自動削除の有無

(1) RMSystemNameシステム名

 〜<先頭が英字の1〜3文字の大文字英字または数字:java.lang.String>

Reliable Messagingが連携するシステム全体で一意なシステム名を指定します。このプロパティは必須です。

このプロパティの指定がない場合や空白を指定している場合,Reliable Messagingの開始時にエラーが発生します。

(2) RMLinkedDBConnectorName = 連携するDB Connectorの表示名

 〜<文字列:java.lang.String>((1〜128))

連携するDB Connectorの表示名を指定します。このプロパティは必須です。

プロパティが省略された場合や,プロパティに指定した表示名のDB Connectorが起動していない場合,起動に失敗します。

(3) QueueMakeFileName = キュー作成ファイルの場所

 〜<文字列:java.lang.String>

キュー作成ファイル名を絶対パスで指定します。非永続版リソースアダプタではこのプロパティは必須です。永続版リソースアダプタではこのプロパティは指定不要です。

非永続版リソースアダプタでこのプロパティの指定がない場合,または指定したキュー作成ファイルの読み取りに失敗した場合,Reliable Messagingの開始時にエラーが発生します。

キュー作成ファイルの詳細については,「3.5.1 キュー作成ファイルの作成」を参照してください。

(4) QueueConfigFileName = キュー定義ファイルの場所

 〜<文字列:java.lang.String>

キュー定義ファイル名を絶対パスで指定します。

このプロパティは,キュー定義ファイルを使用する場合は必須です。キュー定義ファイルを使用しない場合はこのプロパティを省略するか,プロパティの値を空にしてください。

キュー定義ファイルを使用しない場合,キュー作成時に指定した表示名に従って生成されたキューの識別名がJNDIネーミングサービスに登録されます。

指定したキュー定義ファイルの読み取りに失敗した場合,Reliable Messagingの開始時にエラーが発生します。

キュー定義ファイルの詳細については,永続版リソースアダプタの場合,「3.4.4 キュー定義ファイルの作成(永続版リソースアダプタの場合)」を参照してください。非永続版リソースアダプタの場合,「3.5.2 キュー定義ファイルの作成(非永続版リソースアダプタの場合)」を参照してください。

(5) RMDeadMessageQueueNameデッドメッセージキュー名

 〜<1〜20文字の識別子:java.lang.String>

デッドメッセージキューを使用する場合に,デッドメッセージキューとして使用するローカルキュー名を指定します。ローカルキュー以外のキュー名を指定する場合,Reliable Messagingの開始時にエラーが発生します。このプロパティの指定がない場合,または存在しないキュー名を指定した場合,デッドメッセージキューを使用できません。デッドメッセージキューとして使用するキューは,ユーザがhrmmkqueコマンドでローカルキューとして作成してください。

なお,このプロパティを変更して別のローカルキューをデッドメッセージキューにする場合,変更前のデッドメッセージキューに格納されているメッセージをすべて削除してください。

キュー間転送では,転送できなかったメッセージは転送キューに蓄積されます。転送キュー内のメッセージが格納できる最大メッセージ数に達すると,転送キュー内のメッセージが減らないかぎり,新たにメッセージを転送キューに格納し送信できなくなります。

デッドメッセージキューを使用すると,転送できなかったメッセージを削除処理のタイミングで転送キューからデッドメッセージキューに移動できます。これによって,転送キューがいっぱいになるのを防止できます。

(6) RMWaitRestoration = Reliable Messaging開始時の復元完了待ち合わせの有無

 〜<java.lang.Boolean>((true|false))《true》

キュー定義ファイルを使用しない場合に,Reliable Messagingを開始するときに非同期に実行する復元処理(DBに格納されているキュー情報を読み込みキューを復元すること)が完了するまで,Reliable Messagingの開始を待ち合わせるかどうかを指定します。

キュー定義ファイルを使用する場合,このプロパティは無視されます。

非永続版リソースアダプタの場合,Reliable Messagingの開始処理と復元処理を同期で実行しているためこのプロパティは使用しません。

このプロパティにtrueを指定した場合,復元処理の完了を待ち合わせてReliable Messagingを開始します。falseを指定した場合,復元処理の完了を待ち合わせないでReliable Messagingを開始します。

このプロパティにtrueを指定した場合,Reliable Messagingの開始を待ち合わせることにより,次のような影響があります。

このプロパティにfalseを指定した場合,タイミングによって次の現象が発生します。

このプロパティは省略できます。

(7) RMStartTimeout = Reliable Messaging開始処理のタイムアウト時間

 〜<数字:java.lang.Integer>((0〜600))《60》(単位:秒)

このプロパティを設定することで,Reliable Messagingの開始処理を待ち合わせる場合,タイムアウトが発生するまで待つことを避けることができます。

非永続版リソースアダプタの場合,開始処理でリトライするエラー要因がないため,このプロパティは使用しません。

Reliable Messagingの開始時に非同期に実行する復元処理(DBに格納されているキュー情報を読み込みキューを復元すること)が完了するまでReliable Messagingの開始を待ち合わせる場合,開始処理失敗時のリトライをタイムアウトする時間を指定します。このプロパティは,RMWaitRestorationプロパティがtrueで,かつキュー定義ファイルを使用しないときにだけ有効となります。それ以外のとき,このプロパティの設定値は無視されタイムアウトしません。

このプロパティの値は,Reliable MessagingやReliable Messagingを利用するアプリケーションを開始する場合,実行するコマンドなどがタイムアウトする時間よりも小さい値を指定することをお勧めします。値に0を指定したとき,Reliable Messagingの開始処理はタイムアウトしないため,開始処理が正常に完了する(非閉塞状態で開始し,KFRM01009-Iメッセージが出力される)まで待ち合わせます。

なお,実際にタイムアウトする時間は,指定した値よりも数秒遅れることがあります。

タイムアウト後,Reliable Messagingは開始処理のリトライを中止し,システム閉塞状態で開始するため,Reliable Messaging開始の待ち合わせは解除されます。この場合,Application ServerまたはReliable Messagingを停止し,正しい設定・環境で再度Reliable Messagingを開始してください。

Reliable Messagingが開始処理に失敗しリトライするエラー要因を次の表に示します。

表6-3 Reliable Messagingが開始処理に失敗しリトライするエラー要因

トランザクションサポートレベル Reliable Messagingの開始時の環境
Application Server再起動の延長の場合 Application Server起動状態の場合
XATransaction
  • DB停止しているなど一時的な障害
  • Application Server再起動前と再起動後で接続先DBのIPアドレスが変更されるような場合
リトライするエラー要因はありません
LocalTransaction,
NoTransaction

  • DB停止しているなど一時的な障害
  • DB接続に関する設定の誤り(ユーザ名・パスワードの不正など)

  • DB停止しているなど一時的な障害
  • DB接続に関する設定の誤り(ユーザ名・パスワードの不正など)

このプロパティは省略できます。

(8) RMAssociateJDBCFlag=DB Connectorとのコネクション共有機能の使用有無

 〜<java.lang.Boolean>((true|false))《true》

DB Connectorとのコネクション共有機能を使用するかどうかを指定します。

DB Connectorとのコネクション共有機能を使用する場合はtrue,使用しない場合はfalseを指定します。このプロパティがtrueの場合,非永続キューだけを利用していても,DBに対してトランザクション命令を発行します。非永続キューだけを利用する場合はfalseを指定します。ただし,このプロパティをfalseに設定すると,連携するDB Connectorのコネクションは取得できないため,注意してください。

また,このプロパティをfalseに設定してHiRDBをXATransactionモードで利用する場合は,DB Connectorのステートメントプールを利用しないでください。

(9) RMSweepTimerIntervalメッセージ削除処理の実行間隔

 〜<数字:java.lang.Integer>((60〜86400))《600》(単位:秒)

メッセージの削除処理を実行する間隔を指定します。

キューに登録されたメッセージをアプリケーションが読み出したときや,キュー上のメッセージが有効期間に達したとき,その時点ではメッセージは削除されません。RMSweepTimerIntervalプロパティ指定値の間隔で実行されるメッセージ削除処理によって削除されます。

このプロパティは省略できます。

(10) RMDeleteMessageImmediately = メッセージ即時削除の利用有無

 〜<java.lang.Boolean>((true|false))《false》

メッセージの取り出しで,キュー内のメッセージを配信済みの状態にしないで,すぐに削除するかどうかを指定します。

非永続版リソースアダプタの場合,即時削除だけを使用できます。遅延削除は使用できないためこのプロパティは使用しません。

メッセージをすぐに削除する場合はtrueを指定します。RMSweepTimerIntervalプロパティで指定した間隔で定期的に削除する場合はfalseを指定します。

このプロパティがtrueの場合,取り出し時にメッセージを削除するため,永続キューのスループットが低下するおそれがありますが,一時的なメモリ使用量を削減できます。なお,有効期限切れのメッセージはRMSweepTimerIntervalプロパティで指定した間隔で定期的に削除されます。

次のメッセージがこのプロパティの対象になります。

即時削除・遅延削除の詳細については,「2.3.4 メッセージの削除」を参照してください。

(11) RMPassByReference = メッセージ送受信時の参照渡し方式の利用の有無

 〜<java.lang.Boolean>((true|false))《false》

メッセージの送受信時に,参照渡し方式を利用するかどうかを設定します。

メッセージの参照渡し方式を利用する場合はtrueを指定します。利用しない場合はfalseを指定します。このプロパティがtrueの場合,アプリケーションがReliable Messagingと同じメッセージのインスタンスを参照するため,高速にメッセージを送受信できます。

ただし,このプロパティをtrueに指定するとき,アプリケーション側でメッセージ送受信後にメッセージオブジェクトに対する変更や再利用はできません。これらの動作を行った場合,メッセージオブジェクトに対するメソッドの処理結果は保証できないため,注意してください。詳細は「2.6.7(10) 参照渡し方式利用時のJMSメッセージの再利用」を参照してください。

(12) RMMaxDeliveryNum = 配送回数の最大値

 〜<数字:java.lang.Integer>((0〜512))《10》

Reliable Messagingから受信側アプリケーションへのメッセージの配送回数の最大値を指定します。0を指定したときメッセージは無制限に再配送されます。

メッセージ配送中にQueueSession.recover()メソッドが発行されるかトランザクションがロールバックされると,このプロパティの回数内でメッセージは再配送の対象となります。

(13) RMMethodTraceLevel = メソッドトレースの出力レベル

 〜<数字:java.lang.Integer>((1〜5))《1》

Reliable Messagingが出力するメソッドトレースの出力レベルを指定します。範囲外の値を指定した場合はデフォルト値が設定されます。

各レベルの出力情報については,「9.3.3 メソッドトレース」を参照してください。

(14) RMLineTraceLevel = 回線トレースの出力レベル

 〜<数字:java.lang.Integer>((1〜5))《3》

Reliable Messagingが出力する回線トレースのトレースの出力レベルを指定します。範囲外の値を指定した場合はデフォルト値が設定されます。

各レベルの出力情報については,「9.3.5 回線トレース」を参照してください。

(15) RMLogTraceFileNum = トレースファイルの最大面数

 〜<数字:java.lang.Integer>((2〜16))《2》

Reliable Messagingが出力するトレースファイル共通の出力ファイルの最大面数を指定します。範囲外の値を指定した場合はデフォルト値が設定されます。

(16) RMLogTraceFileSize = トレースファイルのファイルサイズ

 〜<数字:java.lang.Integer>((4096〜2147483647))《2097152》(単位:バイト)

Reliable Messagingが出力するトレースファイル共通のファイル1面当たりの最大のファイルサイズを指定します。範囲外の値を指定した場合はデフォルト値が設定されます。

(17) RMSHConnectFlag = 共用キューを使用して複数システム間でのアプリケーション連携をする場合の受信用共用キューの有無

 〜<java.lang.Boolean>((true|false))《false》

共用キューを使用して複数システム間でのアプリケーション連携をする場合の受信用共用キューの有無を指定します。

共用キューを使用して複数システム間でのアプリケーション連携をする場合に自システムで受信用共用キューを使用するときはtrue,使用しないときはfalseを指定します。

Reliable Messagingが接続するDBの種別がOracleの場合にtrueを指定すると,開始処理に失敗します。

このプロパティにfalseを設定した場合,次に示す機能は使用できません。

(18) RMSHPort = 共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベント受信用ポート番号

 〜<数字:java.lang.Integer>((1024〜65535))《20351》

共用キューを使用して複数システム間でのアプリケーション連携をする場合のイベント受信用のポート番号を指定します。

(19) RMSHRecoveryTimerInterval = 共用キューを使用して複数システム間でのアプリケーション連携をする場合のリカバリスレッド監視間隔

 〜<数字:java.lang.Integer>((5〜300))《60》(単位:秒)

共用キューを使用して複数システム間でのアプリケーション連携をする場合に動作する,リカバリスレッドの監視間隔を指定します。リカバリスレッドについては,「2.6.4 共用キューでのメッセージ受信時の処理の流れ」を参照してください。

このプロパティの指定値が大き過ぎると未処理のメッセージが滞留することがあり,小さ過ぎるとDBアクセスが増加するので注意してください。

(20) RMTRConnectFlag=キュー間転送の使用有無

 〜<java.lang.Boolean>((true|false))《false》

キュー間転送を使用するかどうかを指定します。キュー間転送を使用する場合はtrueを,使用しない場合はfalseを指定します。キュー間転送を使用したメッセージの送受信を行う場合,trueを指定してください。

このプロパティをtrueに設定してHiRDBをXATransactionモードで利用する場合は,DB Connectorのステートメントプールを利用しないでください。

このプロパティにfalseを設定した場合,次に示す内容は実行できません。

(21) RMTRSendThreadNum=送信スレッドの起動数

 〜<数字:java.lang.Integer>((1〜128))《1》(単位:個)

キュー間転送で,メッセージの送信を行うために利用するスレッドの最大起動数を指定します。このプロパティを省略した場合,何も指定しなかった場合,および範囲外の値を指定した場合は,1が指定されたものとして動作します。

一つのメッセージを送信する処理を一つのスレッドで行うため,このプロパティの値を増やすことで同時に送信できるメッセージ数を増やすことができます。しかし,マシンへの負荷が増加しスループットが低下する場合があります。

(22) RMTRResendInterval1Num=再送間隔1での再送回数

 〜<数字:java.lang.Integer>((1〜100))《6》(単位:送信回数)

キュー間転送で,再送間隔1で再送する回数を指定します。メッセージの再送間隔をこのプロパティで切り替えることができます。切り替える前の再送間隔を再送間隔1に指定し,切り替えたあとの再送間隔を再送間隔2に指定します。

このプロパティを省略した場合や,何も指定しなかった場合,範囲外の値を指定した場合は,デフォルト値を指定したものとして動作します。

(23) RMTRResendInterval1=再送間隔1

 〜<数字:java.lang.Integer>((1〜86400))《10》(単位:秒)

キュー間転送で,転送先からの応答が返ってこないメッセージを再び送信するまでの時間を指定します。このプロパティはRMTRResendInterval1Numによって切り替える前の再送間隔です。このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定されたものとして動作します。

(24) RMTRResendInterval2 = 再送間隔2

 〜<数字:java.lang.Integer>((1〜86400))《600》(単位:秒)

キュー間転送で,転送先からの応答が返ってこないメッセージを再び送信するまでの時間を指定します。このプロパティはRMTRResendInterval1Numによって切り替えたあとの再送間隔です。このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定されたものとして動作します。

(25) RMTRResendTimerInterval = 再送タイマ監視間隔

 〜<数字:java.lang.Integer>((1〜3600))《10》(単位:秒)

再送タイマ監視間隔を指定します。再送タイマ監視間隔とは,あるメッセージの前回の送信時から経過した時間が,再送間隔を超えているかどうか監視を行う間隔です。

このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定されたものとして動作します。

(26) RMTRPendingNotifyInterval = 滞留メッセージの監視時間

 〜<数字:java.lang.Integer>((1〜86400))《600》(単位:秒)

滞留メッセージを監視する時間を指定します。滞留メッセージを監視するタイミングは,メッセージ削除処理と同じです。メッセージの監視中に,このプロパティに指定した時間より長く滞留しているメッセージが存在する場合は,メッセージの滞留を通知するKFRM13011-W(メッセージログの出力レベルに関係なく出力します)が出力されます。

このプロパティを省略した場合や範囲外の値を指定した場合は,デフォルト値が指定されたものとして動作します。

(27) RMTRTransferControlDir = クライアント定義ファイルが格納されているディレクトリのパス

 〜<文字列:java.lang.String>

キュー間転送の動作制御内容を定義する,クライアント定義ファイルが格納されているディレクトリのパスを指定します。

同じサーバ上でReliable Messagingを複数デプロイする場合は,このプロパティに,コピーしたクライアント定義ファイルが格納されているディレクトリのパスを指定してください。クライアント定義ファイルの詳細については,「3.4.13(1) SOAP通信基盤の設定」を参照してください。

このプロパティを省略した場合や空文字を指定した場合は,デフォルトのクライアント定義ファイルのあるディレクトリのパス(%HRMDIR%\conf)が指定されたものとして動作します。

(28) RMAutoDeleteMessage = デッドメッセージキュー未使用時の無効メッセージ自動削除の有無

 〜<java.lang.Boolean>((true|false))《false》

キュー間転送でデッドメッセージキューを使用しない場合,次の条件を満たすメッセージを自動的に削除するかどうかを指定します。

  1. 電文不正などによって転送できなかったメッセージ
  2. 順序保証のグループが閉鎖した時点で,対象グループに属していた滞留メッセージ

trueを指定すると1.,2.のメッセージとも自動的に削除します。falseを指定すると,1.のメッセージはキュー内に残るため,削除する場合は手作業でhrmdelmsg(メッセージの削除)コマンドを起動します。2.のメッセージは滞留メッセージとして残り,通信層のメッセージ有効期限切れになった時点で削除されます。

このプロパティの指定がない場合はfalseが指定されたものとして動作します。また,デッドメッセージキューを使用する場合,このプロパティの指定は無視されます。

自動削除を行うと,転送できなかったメッセージは削除処理のタイミングで削除されます。

自動削除を行わない場合は,メッセージの削除コマンドを手作業で実行し,転送できなかったメッセージを削除してください。転送できなかったメッセージを削除しなかったときは,転送キューに蓄積されます。転送キュー内のメッセージが格納できる最大数に達すると,キュー間転送が行えなくなります。

このプロパティは省略できます。