この章では、再試行の構成、応答していないエンドポイントのオフラインとしてのマーク、エンドポイントのメトリックの表示、エンドポイントのステータスに基づいたアラートのトリガーを含む、ビジネス・サービスでのエンドポイントURIの管理方法について説明します。
この章の構成は、次のとおりです。
実行時に各エンドポイントURIのメトリックをモニターすることで、それらすべてのエンドポイントが期待したとおりに実行していることを確認できます。
エンドポイントURIに問題が見つかったときには、そのURIをオフラインとしてマークできます。これにより、そのエンドポイントURIに対するアクセスの試行が繰り返されることを避けられます。また、応答しないURIをオフラインとしてマークするように、ビジネス・サービスを構成することもできます。
エンドポイントURIとは、ビジネス・サービスがアクセスする外部サービスのURLです。Service Busでは、1つのビジネス・サービスに対して、少なくとも1つのエンドポイントURIを定義する必要があります。1つのビジネス・サービスに対して複数のエンドポイントURIを定義する場合は、ロード・バランシング・アルゴリズムを定義して、ビジネス・サービスがエンドポイントURIへのアクセスを試行する方法を制御します。ビジネス・サービスでは、次のいずれかのロード・バランシング・アルゴリズムを使用できます。
ラウンド・ロビン
ランダム
ランダムな重みベース
なし
ビジネス・サービスの構成時には、再試行を処理する方法も構成できます。詳細は、『Oracle Service Busでのサービスの開発』のビジネス・サービスのURI再試行についてに関する項を参照してください。
ビジネス・サービスは、応答しないURIにオフラインのマークを付けるように構成できます。これにより、ビジネス・サービスが応答しないURIにアクセスの試行を繰り返さないようにして、応答しないURIにアクセスを試行することで発生する通信エラーを回避します。Service BusでエンドポイントURIに自動的にオフラインのマークが付けられた場合、指定した時間の経過後にService Busでオンラインに戻すことも、手動でステータスを変更するまでService Busでオフラインのままにしておくこともできます。エンドポイントURIのステータスは、Fusion Middleware ControlまたはパブリックAPIを使用して、手動でオンラインまたはオフラインに変更できます。クラスタ・ドメインのエンドポイントURIをオンラインとしてマークすると、すべての管理対象サーバーのエンドポイントURIがオンラインとしてマークされます。
Service Busは、次のいずれかの場合に、自動的にエンドポイントURIにオンラインのマークを付けます。
ビジネス・サービスにエンドポイントURIを追加する。
サーバーを再起動する。
無効になっているサービスを有効にする。
サービスの名前を変更するか、サービスを移動する。
構成した再試行間隔の期間が経過すると、ビジネス・サービスはuriに正常にアクセスできます。
応答しないURIに自動的にオフラインのマークを付けるビジネス・サービスを構成するときには、この状態を一時的な状態にすることも、永続的な(つまり、手動でステータスを更新するまで続く)状態にすることもできます。
詳細は、「操作設定とグローバル設定の構成」を参照してください。
ビジネス・サービスが短い時間間隔で自動的に同じエンドポイントを再試行するようにするには、エンドポイントURIを一時的にオフラインとしてマークします。ユーザーが手動でリセットするまで、ビジネス・サービスがエンドポイントURIをオフラインとして処理するようにするには、エンドポイントURIを永続的にオフラインとしてマークします。
一時的なオフラインのマークが付けられている場合、エンドポイントURIのステータスは、通信エラーの発生時にオフラインに変更されます。再試行間隔の期間が経過すると、ビジネス・サービスは新しい要求を処理するために、このエンドポイントURIへのアクセスを試行します。この試行が正常に実行された場合、エンドポイントURIは、再びオンラインとしてマークされます。失敗する場合、URIは再試行間隔の期間中、再びオフラインとしてマークされ、サイクルが繰り返されます。この構成は、通信エラーが一時的なもので、自動的に修復する場合に役立ちます。たとえば、一時的なオーバーロードの場合、通信エラーは発生しますが、エンドポイントは自動的に正常動作に復帰するため、手動で介入する必要はありません。
永続的なオフラインのマークを付けると、エンドポイントURIのステータスは通信エラーの発生時にオフラインに変化します。このステータスは、そのエンドポイントURIに手動で再度オンラインのマークを付けるまで維持されます。この構成は、手動介入によって解決する必要があるエンドポイントURIの問題に起因する通信エラーが発生した場合に役立ちます。
修正作業を行って手動でURIをオンラインとしてマークするまで、応答しないURIをオフラインにしておく場合は、再試行間隔を設定しません。たとえば、再試行間隔をゼロにすると、エンドポイントが永続的にオフラインになります。
管理対象サーバーをホストしているマシンでは、ネットワークの問題に起因する通信エラーが発生する可能性があります。ビジネス・サービスは、このようなイベントについては、(アクセスしているリモート・エンドポイントが応答していても)エンドポイントURIが応答していないと解釈します。エンドポイントURIが応答していないために、通信エラーが発生する場合もあります。
最初のケースでは、URIは、(ネットワークの問題があるマシン上の)1つのサーバーでのみオフラインとしてマークされ、クラスタ内のその他のサーバーではすべてオンラインとしてマークされます。「特定のサーバーで評価する」
句に基づくSLAアラート条件ではアラートが生成されますが、「すべてのサーバーで評価する」
句に基づくアラート条件ではアラートは生成されません。
2番目のケースでは、URIは、すべての管理対象サーバーでオフラインとしてマークされます(各サーバーがそのエンドポイントへのアクセスを試行するたびに1つずつマークされます)。各管理対象サーバーがエンドポイントURIをオフラインとしてマークするたびに、「特定のサーバーで評価する」
に基づくアラート・ルール条件が満たされ、アラートが生成されます。クラスタ・ドメイン内の最後のサーバーのエンドポイントURIをオフラインとしてマークすると、「すべてのサーバーで評価する」
に基づくアラート・ルール条件も満たされ、このアラートも生成されます。
クラスタリングされたドメイン用:
「サーバー」フィールドが「クラスタ」または管理対象サーバーの1つに設定されている場合、Online
ステータスは、クラスタ全体または選択した管理対象サーバーですべてのエンドポイントURIがオンラインであることを示します。
「サーバー」フィールドが「クラスタ」または管理対象サーバーの1つに設定されている場合、Offline
ステータスは、クラスタ全体または選択した管理対象サーバーですべてのエンドポイントURIがオフラインであることを示します。
「サーバー」フィールドが「クラスタ」に設定されている場合、Partial
ステータスは、少なくとも1つのサーバー上でビジネス・サービスの1つ以上のエンドポイントURIがオフラインであるか、エンドポイントURIの少なくとも1つがすべてのサーバーでオフラインであるが、同じビジネス・サービスの他のエンドポイントURIが1つまたはすべてのサーバー上で使用できるステータスになっていることを示します。
「サーバー」フィールドが管理対象サーバーの1つに設定されている場合、Partial
ステータスは、選択した管理サーバー上で、ビジネス・サービスのエンドポイントURIの少なくとも1つがオフラインであることを示します。
Fusion Middleware Controlには、エンドポイントURIのメトリックが表示されるため、ビジネス・サービスのヘルスをモニターできます。JMXモニタリングAPIを使用して、エンドポイントURIのメトリックを表示することもできます。Fusion Middleware Controlの使用方法の詳細は、「ビジネス・サービスに対するエンドポイントURIのメトリックの表示」を参照してください。JMXモニタリングAPIの使用方法の詳細は、「JMXモニタリングAPI」を参照してください。
Fusion Middleware Controlでは、「Service Busプロジェクト」ページのビジネス・サービスについての「ダッシュボード」タブで、エンドポイントURIのメトリックを利用できます。利用可能なメトリックには、状態、メッセージとエラーの数、およびレスポンス時間があります。次に示す事項では、Fusion Middleware Controlで、エンドポイントURIをモニターするときに予期される動作について説明しています。
統計は、ビジネス・サービスのモニターを有効にしている場合にのみ利用できます。
サービスの名前変更や移動を実行すると、URIレベルの統計がリセットされます。
集約間隔を変更すると、URIステータスを除くすべてのURIレベルの統計がリセットされます。
サービスの統計をリセットすると(または、すべての統計をリセットすると)、URIステータスを除くすべてのURIレベルの統計がリセットされます。
既存のビジネス・サービスに新しいURIを追加すると、新しいURIについてのメトリックの収集が自動的に開始されます。
Fusion Middleware Controlのビジネス・サービスに対する「ダッシュボード」には、エンドポイントURIがオンラインとオフラインのどちらであるかを示す「状態」統計が表示されます。JMXモニターリングAPIを使用してエンドポイントURIのステータスを取得することもできます。表14-1は、考えられるエンドポイントURIの状態についての説明です。
表14-1 エンドポイントURIのステータス
ステータス | 説明 |
---|---|
オンライン |
特定のサーバーのURIがオンラインであることを示します。クラスタでは、すべてのサーバーのURIがオンラインであることを示します。 |
オフライン |
特定のサーバーのURIがオフラインであることを示します。クラスタでは、すべてのサーバーのURIがオフラインであることを示します。 |
部分的 |
クラスタ内の1つ以上のサーバーがそのURIについて問題を報告していることを示します。このメトリックは、クラスタだけに使用できます。 |
注意:
URIが複数のビジネス・サービスに関連付けられている場合、同じエンドポイントURIのステータスがビジネス・サービスごとに異なる可能性があります。
エンドポイントURIのパフォーマンス・メトリックでは、特定のエンドポイントで処理されたメッセージの数、失敗の数、およびそのレスポンス時間に関する情報が提供されます。エンドポイントURIのヘルスをモニターする場合は、次のメトリックが役立ちます。
メッセージ数: エンドポイントURIで処理されたメッセージの数。
エラー数: エンドポイントURIで発生したエラーの数。
最小レスポンス時間: このサービスがメッセージの実行に費やした最小時間(ミリ秒単位)。
最大レスポンス時間: このサービスがメッセージの実行に費やした最大時間(ミリ秒単位)。
平均レスポンス時間: このサービスがメッセージの実行に費やした平均時間(ミリ秒単位)。
応答しないエンドポイントを自動的にオフラインとマークするようにService Busを構成すると、そのエンドポイントURIへの継続的なアクセスの試行を防止できます。
これは、再試行間隔に基づいた一時的な状態にすることもできますが、エンドポイントURIを永続的に(手動でエンドポイントURIをオンラインにするまで)オフラインにすることもできます。これを行うには、ビジネス・サービスの「オフラインのエンドポイントURI」操作設定を有効にする必要があります。ビジネス・サービスのオフラインURI設定は、サービスのすべてのURIに適用されます。
APIを使用して、オフラインのエンドポイントURIをオンラインとしてマークすることもできます。この方法は、ビジネス・サービスのモニターを有効にしていないが、そのエンドポイントURIをオンラインとしてマークする必要がある場合に役立ちます。詳細は、Oracle Service Bus Java APIリファレンスのcom.bea.wli.monitoring.ServiceDomainMBean
を参照してください。
応答しないエンドポイントURIにオフラインのマークを付けるようにService Busを構成するには:
Fusion Middleware Controlでビジネス・サービスをモニターすると、そのビジネス・サービスに関連するエンドポイントURIのメトリックを表示できます。
特定のエンドポイントURIに問題が見つかった場合は、そのエンドポイントURIをオフラインとしてマークできます。これにより、そのURIに対するアクセスの試行が繰り返されないようにします。エンドポイントURIを手動でオフラインにすると、そのURIは手動で元に戻すまでオフラインのままになります。
エンドポイントURIを手動でオフラインとマークするには:
エンドポイントURIにオフラインのマークが付けられている場合、そのマークがService Busにより自動的に付けられたものでも、管理者により手動で付けられたものでも、エンドポイントURIが応答しなくなったエラーの修正手順を実行した後に、そのエンドポイントURIを手動でオンライン状態に戻せます。
エンドポイントURIに付けたマークをオンラインに戻すと、Service Busはビジネス・サービスのエンドポイントURIの構成に従って処理を継続します。
エンドポイントURIに手動でオンラインのマークを付けるには:
Service Busは、各エンドポイントURIがメッセージを処理している状況についての情報を収集します。メッセージ数、エラー数に加え、最小、最大および平均のレスポンス時間を確認できます。ビジネス・サービスの「ダッシュボード」には、エンドポイントURIがオンラインとオフラインのどちらであるかも表示されます。
ビジネス・サービスのエンドポイントのメトリックを表示するには:
エンドポイントURIにアクセスできない場合、アクセスを試行しているビジネス・サービスは通信エラーを受け取ります。
「応答しないエンドポイントURIをオフラインにするService Busの構成」で説明したように、応答しないURIをオフラインにするようにビジネス・サービスを構成することに加え、エンドポイントURIの状態に基づいたビジネス・サービスのSLAアラート・ルールを構成して、応答しないURIをシステムが検出したときにアラートを生成することもできます。
ビジネス・サービスのエンドポイントURIの状態に基づいたSLAアラートを作成すると、特定のエンドポイントURIまたはすべてのエンドポイントURIの状態がオンラインからオフライン(またはオフラインからオンライン)に変化したときにアラートが生成されます。たとえば、1つは「オフラインのすべてのURI = True」
条件、もう1つは「オフラインの特定のURI = True」
条件に基づいた2つのアラート・ルールが構成されているビジネス・サービスを考えてみます。「オフラインのすべてのURI = True」
条件に基づいてアラートが生成されている場合、この状態が解決されるまでこのサービスに対するすべてのリクエストが失敗する可能性が高いため、これは重大な問題を示します。しかし、「オフラインの特定のURI = True」
に基づいてアラートが生成されている場合、これは、他のエンドポイントURIが応答するために以降のリクエストが失敗しない可能性があることを示します。
すべてのアラート・ルールは、単独で評価されます。同じビジネス・サービスに対して両方(特定またはすべてのURI)の句に基づくアラートを構成すると、最後のエンドポイントURIをオフラインとしてマークするときに両方のアラートが同時に生成される可能性があります。ビジネス・サービスがURIを1つだけ持つ場合、「オフラインのすべてのURI = True」
句と「オフラインの特定のURI = True」
句は同じことを意味し、同じように動作します。
オフラインからオンラインへの移行に基づくアラート・ルール条件の評価は、再度オンライン状態としてマークされている特定またはすべてのエンドポイントURIを追跡する場合を除き、同じように動作します。
エンドポイントURIの状態に基づいてアラート・ルールを作成できます。
エンドポイントURIの状態に基づいてSLAアラートを作成するには:
注意:
URIの状態が頻繁に変更される場合にトリガーされたアラートを見逃さないように、URIの状態に基づくアラート・ルールの集約間隔を1分に設定することをお薦めします。集約間隔の詳細は、「集約間隔について」を参照してください。