オペレーション ガイド

     前  次    目次     
ここから内容

Oracle Service Bus のスロットル

Oracle Service Bus では、ビジネス サービスへのメッセージ フローを制限できます。このビジネス サービスへのメッセージ フローを制限する技術は、スロットルと呼ばれます。この節では、以下のトピックを取り上げます。

 


スロットルを有効にする方法

ビジネス サービスのスロットルは、[ビジネス サービスの表示] ページの [サービス操作設定] タブから有効にする必要があります。このタブの [スロットル] で、[スロットルの状態] の [有効] チェック ボックスを選択します。ビジネス サービスのスロットルを有効にする際には、[最大同時実行性] の値を指定する必要があります。ビジネス サービスに対する [スロットル キュー] と [メッセージの有効期限] を指定する必要もあります。詳細については、「スロットルの操作設定」および『Oracle Service Bus Console の使い方』の「モニタ」にある「ビジネス サービスの操作設定のコンフィグレーション」を参照してください。

表 8-1 は、スロットルにおける重要な定義を示します。

表 8-1 重要な定義
用語
定義
スロットル キュー
ビジネス サービスが最大同時実行性の値に達したときにメッセージが格納される優先キュー。優先度が高いメッセージから処理が実行されます。優先度が同じである場合は、先入れ先出し方式で処理されます。メッセージの優先度は、ルーティング オプションを使用して割り当てることができます。

注意 :  

  • メッセージの優先度は、優先度の整数が大きいほど高くなります。
  • ビジネス サービスに対して、1 つのキーだけをコンフィグレーションできます。
スロットル キューは、インメモリ キューです。このキューに置かれているメッセージは、サーバ障害が発生した場合やサーバを起動した場合に回復できません。
ビジネス サービスの削除または名前変更を行うと、スロットル キュー内のすべてのメッセージが破棄されます。
メッセージの優先度
スロットル キューに置かれているメッセージの優先度。
期限切れのメッセージ
メッセージの有効期限の値を超える期間、スロットル キューに置かれているメッセージ。メッセージの有効期限の詳細については、表 8-2 を参照してください。

 


スロットルの操作設定

表 8-2 は、スロットルの操作設定を示します。

表 8-2 スロットルの操作設定
操作設定
使用目的
スロットルの状態
ビジネス サービスのスロットルを有効または無効にします。

注意 : 実行時にビジネス サービスのスロットルを無効にすると、スロットル キュー内のすべてのメッセージはスロットルを使用せずに処理されます。

最大同時実行性
ビジネス サービスで同時に処理できるメッセージ数を制限します。この値は、正の整数でなければなりません。このしきい値に達すると、このビジネス サービスに対するすべての着信メッセージは、ビジネス サービスがさらにメッセージを受け取れる状態になるまで、スロットル キューに置かれます。
この設定を変更すると、新しいメッセージとキュー内に既に存在するメッセージの両方に影響します。値を大きくすると、Oracle Service Bus ランタイムにより、キュー内のメッセージの処理後に、より多くのメッセージをビジネス サービスに送信できるようになります。値を小さくすると、同時実行性の設定値が新しいしきい値を下回るまで、新しいメッセージはすべてスロットル キューに置かれます (スロットル キューを定義している場合)。スロットル キューを定義していない場合、メッセージは破棄されます。
クラスタ環境では、ビジネス サービスで同時に処理できるメッセージの数は、管理対象サーバ間で均等に分割されます。

注意 : この操作設定は、ビジネス サービスに対してスロットルを有効にしている場合にのみ設定できます。

スロットル キュー (操作設定)
スロットル キュー内のメッセージの数を制限します。スロットル キューの長さは、正の整数でなければなりません。ビジネス サービスに対する最大同時実行制約の値を超える着信メッセージは、すべてスロットル キューに配置されます。キューがいっぱいになると、キュー内で最も優先度の低いメッセージは、より高い優先度を持つ新しい着信メッセージの発生時に削除されます。
この長さを 0 に設定した場合、ビジネス サービスにスロットル キューがないことを示します。
この設定に対するすべての変更は、動的に実装されます。この設定の値を小さくすると、新しい長さを超えるメッセージはすべて破棄されます。

注意 : この操作設定は、ビジネス サービスに対してスロットルを有効にしている場合にのみ設定できます。

クラスタ環境では、この設定値は、管理対象サーバ間で均等に分割されます。
メッセージの有効期限
ビジネス サービスのスロットル キューに置かれたメッセージの最大保持時間 (ミリ秒単位) を制限します。この値は、正の整数でなければなりません。この時間が経過すると、メッセージはキューから削除されます。このようなメッセージは、期限切れのメッセージと呼ばれます。
サービスに対するメッセージの有効期限を 0 に設定すると、このサービスのスロットル キュー内のメッセージは期限切れになりません。
この設定の値を大きくすると、新しいメッセージとキュー内に既に存在するメッセージの有効期限が延長されます。この設定の値を小さくすると、新しい値を超えたすべてのメッセージは即時に破棄されます。

注意 : この操作設定は、ビジネス サービスに対してスロットルを有効にしている場合にのみ設定できます。

 


スロットルに使用できるメトリック

表 8-3 は、スロットルに使用できるメトリックを示します。

表 8-3 スロットルのメトリック
メトリック
説明
最大スロットル時間
スロットル キュー内のすべてのメッセージの最大保持時間 (ミリ秒単位)。この値が 0 よりも大きい場合、そのメッセージはビジネス サービスのキューに置かれます。
最小スロットル時間
スロットル キュー内のすべてのメッセージの最小保持時間 (ミリ秒単位)。この値が 0 に等しい場合、一部のメッセージはスロットル キューに置かれません。
平均スロットル時間
スロットル キュー内のすべてのメッセージの平均保持時間 (ミリ秒単位)。

スロットルのメトリックの詳細については、「スロットル メトリックにアクセスする方法」を参照してください。

 


スロットル メトリックにアクセスする方法

スロットルのメトリックには、Oracle Service Bus Console の [サービスのモニタの詳細] ページにある [サービス] タブからアクセスできます。現在の集約間隔および最後のリセット以降の間隔に対するメトリックを取得できます。詳細については、「Oracle Service Bus Console からサービスの統計にアクセスする方法」を参照してください。

JMX モニタリング API を使用してメトリックにアクセスすることもできます。詳細については、「ダッシュボードでの SLA アラートの表示」を参照してください。

 


アラートのスロットル メトリックを使用する方法

SLA アラート ルールは、スロットルのメトリックに基づいて定義できます。つまり、平均スロットル時間に基づいてアラート ルールを定義できます。詳細については、『Oracle Service Bus Console の使い方』の「モニタ」にある「アラート ルールの作成と編集」を参照してください。

 


複数のエンドポイント URI を使用するビジネス サービスのスロットルの使用方法

このトピックでは、複数のエンドポイント URI を使用するビジネス サービスのスロットルを使用する方法について説明します。

Oracle Service Bus では、ビジネス サービスを複数のエンドポイント URI に関連付けることができます。エンドポイント URI の詳細については、「ビジネス サービスのエンドポイント URI の管理」を参照してください。ビジネス サービスを複数の URI に関連付ける際には、個々の URI ではなく、そのビジネス サービスの最大同時実行性をコンフィグレーションする必要があります。各 URI の最大同時実行性は、全体の最大同時実行性とロード バランシングの重みにより、次の数式に基づいて内部的に設定されます。

URI 固有の最大同時実行性 = [ユーザ コンフィグレーションの最大同時実行性] X [重み]

たとえば、3 つのエンドポイント URI eu1eu2、および eu3 を使用するビジネス サービス B を考えてみます。ロード バランシング アルゴリズムは、ランダムな重みベースであると定義されます。URI の重みは、それぞれ 12、および 3 です。ビジネス サービスの最大同時実行性を 10 と定義したと仮定すると、URI 固有の最大同時実行性は、1020、および 30 です。また、ビジネス サービス B の有効最大同時実行性は 60 です。重みが 3 の最終エンドポイント URI がオフライン状態である場合、このビジネス サービスの有効最大同時実行性は 30 です。

注意 :

スロットル使用時に再試行されたメッセージの処理

サービスに対してフェイルオーバが有効である場合、再試行されたメッセージにはスロットルは適用されません。メッセージは、スロットルの操作設定にかかわらず、その次の URI に送信されます。

スロットル キューがいっぱいになっているため、またはサービスが最大同時実行性の値に達しているために、期限切れになったり破棄されたメッセージは再試行されません。


  ページの先頭       前  次