接続ファクトリ: 構成: フロー制御
フロー制御を使用すると、JMSサーバーまたは宛先で過負荷になると判断した場合にメッセージ・プロデューサをペースダウンさせることができます。特に、指定のバイトまたはメッセージしきい値を超えたときに、JMSサーバーまたは宛先はプロデューサに対してメッセージ・フロー(秒当たりのメッセージ数)を制限するよう指示します。
このページでは、このJMS接続ファクトリのフロー制御構成を定義します。
構成オプション
名前 説明 フロー制御の有効化 接続ファクトリを使用して作成されたプロデューサでフローを制御できるかどうかを指定します。trueに設定すると、JMSサーバーまたは宛先が、指定された上限バイト数またはメッセージしきい値に達した場合に、関連するメッセージ・プロデューサが低速化されます。
MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.FlowControlEnabled
最小フロー しきい値の条件に達したプロデューサで許可される秒当たりの最小メッセージ数。これは、プロデューサのフロー制限の最低ラインです。つまり、フロー制限がFlowMinimumに達したプロデューサの処理速度はWebLogic JMSによりそれ以上落とされません。
プロデューサがフロー制御されている場合、秒当たりFlowMinimumのメッセージ数よりもペース・ダウンされる必要はありません。
MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.FlowMinimum
最小値:
1
最大値:
2147483647
最大フロー しきい値の条件に達したプロデューサで許可される秒当たりの最大メッセージ数。プロデューサがフロー制御されている場合、秒当たりFlowMaximumに指定されたメッセージ数よりも処理を高速化できません。
しきい値の条件に達したときにプロデューサがフローを制限していない場合、そのプロデューサの初期フロー制限がFlowMaximumに設定されます。しきい値の条件に達したときにプロデューサがすでにフローを制限している場合(フロー制限はFlowMaximum未満)、プロデューサは次にフローが評価されるまで現在のフロー制限で処理を継続します。
ノート: いったん、しきい値条件への抵触を回避してからは、プロデューサはフロー限度を無視できなくなります。このフロー制限がFlowMaximum未満の場合、プロデューサはフローが評価されるたびにそのフローを徐々にFlowMaximumまで増やす必要があります。プロデューサがFlowMaximumに達すると、そのフロー制限を無視し、そのフローを制限せずに送信できます。
MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.FlowMaximum
最小値:
1
最大値:
2147483647
フロー間隔 プロデューサがフローをFlowMaximumのメッセージ数からFlowMinimumに、あるいはその反対に調節するときの調節期間の秒数。
プロデューサがフロー制御されている場合、指定されたFlowIntervalの秒数の間にFlowMaximumからFlowMinimumへと低速化されます。
MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.FlowInterval
最小値:
0
最大値:
2147483647
フロー・ステップ プロデューサが「最大フロー」のメッセージ数から「最小フロー」に、またはその反対にフローを調整するときに使用するステップ数。具体的には、「フロー間隔」の調整期間が「フロー・ステップ」数に分割されます(たとえば、60秒を6ステップで除算するとステップ当たり10秒になります)。
また、「最大フロー」と「最小フロー」の差をステップに分割することにより、移動(調整率)が計算されます。各フロー・ステップでは、次のように、現在の条件に基づき必要に応じてフローが上方または下方に調整されます。
下方への移動は、「フロー間隔」で指定した時間の経過に伴い、「フロー・ステップ」で指定した値に従って幾何的に減衰します。(たとえば、100、50、25、12.5など)
上方移動は線形です。差は単純にステップ数で除算されます。
MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.FlowSteps
最小値:
1
最大値:
2147483647
一方向送信モード 通常の非永続な非トランザクション・メッセージングのパフォーマンスを向上させるために、この接続ファクトリを使用して作成されたメッセージ・プロデューサに、一方向のメッセージ送信を許可するかどうかを指定します。これが有効化されていると、関連付けられたキュー・センダーやトピック・パブリッシャは、ターゲット宛先のホストJMSサーバーからのレスポンスを内部で待機することなく、メッセージを送信できます。
一方向送信は、プロデューサをホストしている接続ファクトリと、ターゲット宛先をホストしているJMSサーバーが、同じWebLogic Serverインスタンスにターゲット指定されている場合にのみサポートされます。加えて、一方向送信は、XA、トランザクション・セッション、永続的なメッセージング、順序単位、作業単位、分散宛先、クライアント側のストア・アンド・フォワードなど、より高度なサービスの品質(QOS)機能については、サポートされません。プロデューサとターゲット宛先が、別個のドメインにある場合、または前述のより高度なQOS機能のいずれかが検出された場合には、一方向モードの設定は無視され、かわりに標準の双方向送信が使用されます。
- 無効
一方向送信は無効化されます。
- 有効
一方向送信は、キュー・センダーまたはトピック・パブリッシャに対して許可されます。
- トピックのみ
トピック・パブリッシャのみが、一方向送信を許可されます。
ノート:
一方向メッセージ送信は、接続ファクトリが「
XA接続ファクトリの有効化
」を指定して構成されている場合には、無効化されます。この設定により、送信側が実際にトランザクションを使用しているかどうかに関係なく、一方向送信が無効化されます。一方向のパフォーマンスからメリットを得るには、デフォルトの
One-Way Send Window Size
値も、より大きい値に構成する必要があります。OneWaySendWindowSize - 1
個のメッセージごとに、一方向ではなく双方向が使用されるため、OneWaySendWindowSize = 1
の場合、すべてのメッセージが実際には双方向となります。MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.OneWaySendMode
一方向送信ウィンドウ・サイズ
One-Way Send Mode
が、キュー・センダーやトピック・パブリッシャによる一方向送信を許可するように設定されている場合に、ウィンドウごとの送信されるメッセージの最大数を指定します。ウィンドウ・サイズでは、さらなる一方向送信を続行できるようになる前に、プロデューサを規定するため双方向メッセージが必要な場合が決定されます。一方向のパフォーマンスでメリットを得るためには、一方向送信を有効化するのみでなく、デフォルトの
One-Way Send Window Size
値を、より大きい値に構成する必要があります。OneWaySendWindowSize - 1
個のメッセージごとに、一方向ではなく双方向が使用されるため、OneWaySendWindowSize = 1
の場合、すべてのメッセージが実際には双方向となります。MBean属性(アプリケーション・モジュールには適用しない):
FlowControlParamsBean.OneWaySendWindowSize
最小値:
1
最大値:
2147483647