この章では、Oracle ESB Controlの「インスタンス」ビューを使用して、Enterprise Service Bus内でメッセージ・インスタンスをトラッキングする方法について説明します。
項目は次のとおりです。
「インスタンス」ビューを使用すると、ESBシステム内のインスタンス処理に関する詳細を表示できます。このビューでは、次のいずれかのプロパティに基づいて、メッセージ・インスタンスをフィルタリングできます。
メッセージ・インスタンスを処理したサービス
メッセージのステータス(任意、エラー、失敗、再送信可能)
トラッキング名とトラッキング値(トラッキング可能フィールド)
インスタンスID
メッセージが処理された時間
「インスタンス」パネル(図10-1の左下部に表示)からメッセージ・インスタンスを選択すると、Enterprise Service Busを経由するメッセージ・インスタンスのパスが「トラッキング」タブのダイアグラムに表示されます。このダイアグラム内で、メッセージ・インスタンスが正常に処理されたサービスは緑色で、エラーが発生したサービスは赤色で、メッセージの処理時に呼び出されなかった(または、呼び出されていなかった)サービスは灰色で表されます。トランザクションがロールバックされた場合、そのサービスは黄色で表されます。「トラッキング」タブのダイアグラムでサービスを選択して、「詳細」サブタブで処理の詳細を表示できます。図10-1の右下部を参照してください。
図10-1は、CRMアダプタ・サービス(CRMOut)が正常に呼び出されたこと、および、フィルタ式によってデータベース・アダプタ・サービスへの配信からメッセージが除外されたためにデータベース・アダプタ・サービス(CustDBOut)が呼び出されなかったことを示しています。
図10-1に示すように、Oracle ESB Controlの「インスタンス」ビューは、次の4つの主要なリージョンに分割されています。
「管理」パネル
図10-2に示すように、このパネルを使用すると、メッセージ・インスタンス・トラッキングを有効にしたり、無効にして消去することができます。消去したインスタンスは、永久に失われることに注意してください。
このパネルの開閉には、「管理」タイトルの左にあるコントロールを使用できます。「管理」タイトルの右にある緑色の矢印アイコンによって、このパネルでの変更内容が適用されます。
「検索」パネル
処理時に処理するメッセージの量が膨大となる場合は、図10-3に示す「検索」パネルの様々なフィルタ基準を使用して、表示するメッセージを制限できます。
このパネルの開閉には、「検索」タイトルの左にあるコントロールを使用できます。「検索」タイトルの右にある緑色の矢印アイコンによって、このパネルでの変更内容が適用されます。「拡張」コントロールで「基本」に切り替えたり、元に戻すことにより、このパネルの「次を含むインスタンス」リージョンの表示、非表示の切り替えができます。
デフォルトでは、「インスタンス」パネルには、前日に処理されたすべてのメッセージが表示されます。前日よりも前に処理されたメッセージを表示する場合は、メッセージを検索する前に、「拡張」オプションの「最終のアクティビティ」フィールドで日数を増やす必要があります。
検索でのフィルタリングの後に戻されるのは、最初の100インスタンスのみです。
「インスタンス」パネル
「インスタンス」パネルには、ESBサービスで処理されたか、または処理中のメッセージ・インスタンスが、必要に応じて、選択した検索オプションでフィルタリングされてリストされます。表示される最大数は100です。
メッセージごとに、各メッセージ・インスタンスをEnterprise Service Busに入力した時間、メッセージのインスタンスIDおよびその処理のステータスが表示されます。ステータスは、「ステータス」列に次の色コード・アイコンで表されます(図10-4を参照)。
緑色の長方形: メッセージ処理中に失敗またはエラーがなかったことを表しています。
赤色の円にXの文字が重なったアイコン: エラーが発生したことを表しています。
黄色の三角形に感嘆符が重なったアイコン: 失敗したメッセージ(アプリケーション・フォルトが戻されたターゲット・サービス)を表しています。
エラー・アイコンと失敗アイコン: エラーと失敗を表しています。
黄色の小さい左矢印が重なったエラー・アイコン: (非同期処理に対して)再送信可能なエラーを表しています。
黄色の小さい左矢印と失敗アイコンが重なったエラー・アイコン: エラー(再送信可能)と失敗を表しています。
黄色の小さい右矢印と失敗アイコンが重なったエラー・アイコン: エラー(インバウンド・アダプタによる拒否)と失敗を表しています。
「トラッキング」タブ(関連のサブタブを含む)
「トラッキング」タブには、次のリストに示すように、メッセージ処理の図式を提供するダイアグラム・リージョンと、「ナビゲータ」、「詳細」および「オーバーレイ」の各サブタブがあります。
図式
「トラッキング」タブの図式には、「インスタンス」パネルから選択したメッセージがEnterprise Service Bus内を通ったパス(または通っているパス)が表示されます。「インスタンス」パネル内の特定のサービスを選択した場合、そのサービスは、図10-1にある「CustOut_RS」というサービスのように、灰色の点線のボックスで囲まれます。
サービスによってメッセージが正常に処理された場合、そのサービスは、図10-1にある「CRMOut」というサービスのように緑色で表示されます。
処理が未完了またはフィルタ基準のために、選択したメッセージがサービスによって処理されなかった場合、そのサービスは、図10-2にある「CustDBOut」というサービスのように灰色で表示されます。
処理中にエラーが発生した場合、エラーが発生したサービスは、図10-5に示すように赤色で表示されます。黄色のサービス・アイコンは、非トランザクション・エンドポイントを示しています。
図10-5 Oracle ESB Control – エラーが表示された「インスタンス」ビュー
「ナビゲータ」サブタブ
複雑なESB構成の場合は、その図式が非常に大規模になる可能性があり、図式全体を同時に表示できない場合があります。「ナビゲータ」サブタブには、図式全体の鳥瞰図が表示されます。「ナビゲータ」タブの紫色のリージョンには、現在表示している図式の領域がハイライト表示されます。
紫色の網掛けリージョンの外にある領域を表示するには、図式の周囲にあるスクロールバーを使用します。「ナビゲータ」タブの左にある下矢印ボタンをクリックすると、各サブタブの内容が非表示になります(これによって、図式の表示可能領域が増加します)。
「詳細」サブタブ
「詳細」サブタブには、選択したサービスに関するメッセージのステータス情報が表示されます。サービス上の鉛筆アイコンは、メッセージ・インスタンスの処理以降にサービスが更新されたことを示しています。
「オーバーレイ」サブタブ
「オーバーレイ」サブタブには、各サービスによって処理されたメッセージに関する統計を表示できます。
「エラー」タブ
「エラー」タブが表示されるのは、図10-6に示すように、「インスタンス」パネルでエラーが発生したサービスを選択した場合のみです。この「エラー」タブには、各エラーに関連した時間、サービス:操作およびメッセージがリストされたエラー表が表示されます。エラー・メッセージとスタック・トレースを表示するには、「メッセージ」列にある「エラーの詳細」アイコンをクリックします。エラー状態の処理については、第12章「エラー処理」を参照してください。
メッセージ・インスタンスの詳細および統計を表示できます。また、メッセージ・インスタンスは検索したり、削除できます。さらに、メッセージ・インスタンス・トラッキングを有効および無効にすることもできます
ここでは、次の項目について説明します。
インスタンス・トラッキングはデフォルトで有効になっています。ただし、大量に処理する場合はスループットを最大限にするために、インスタンス・トラッキングを無効にしておくことをお薦めします。
メッセージのトラッキングを有効または無効にする手順は、次のとおりです。
「インスタンス」ビューが表示されていない場合は、Oracle ESB Controlの上部の「インスタンス」ボタンをクリックします。
「管理」パネルを開きます(まだ開いていない場合)。
「インスタンスのトラッキングの有効化」を選択するか、選択を解除して、インスタンス・トラッキングをそれぞれ有効または無効にします。
「管理」パネルのタイトル・バーにある適用アイコン(緑色の矢印)をクリックします。
「詳細」タブ(Oracle ESB Controlの「インスタンス」ビューにある図式の下)には、メッセージ・インスタンスに関する次の詳細が表示されます。
「インスタンス」パネルまたは図式のサービスを選択した場合
ステータス
このフィールドでは、メッセージの成功または失敗のステータスが指定されます。メッセージは正常に処理されたが、他のエラーのためにトランザクションがロールバックされた場合は、その情報が「ステータス」フィールドに表示されます。ステータスの例には、「成功しましたが、CRMOUT:Writeのエラーが原因でトランザクションがロールバックされました。
」などがあります。
アクティビティ時間
このフィールドでは、メッセージが、「インスタンス」パネルで選択したサービスによって処理された時間が指定されます。
トラッキング・データ
図式で、2つのサービス間の接続をクリックした場合
ソース
メッセージ・インスタンスの送信元のサービスと操作が、source_service::operation形式で指定されます。
ターゲット
メッセージ・インスタンスの送信先のサービスと操作が、target_service::operation形式で指定されます。
ステータス
ターゲット・サービスのステータスが指定されます。たとえば、ステータスは、次のいずれかになる場合があります。
メッセージを処理しませんでした。
メッセージ・フローの一部として実行されませんでした。
ターゲットの呼出し中にエラーが発生したため、成功しませんでした。
「オーバーレイ」タブ(Oracle ESB Controlの「インスタンス」ビューにある図式の下)を使用すると、統計をオーバーレイとして図式に表示できます。
「処理時間(ミリ秒)。」を有効にしている場合、図式には、図10-7に示すように、Enterprise Service Bus内の各サービスがメッセージ・インスタンスの処理に要した時間がミリ秒単位で表示されます。
「インスタンス」パネルに、多数のメッセージ・インスタンスがあるため、すばやく目的のメッセージ・インスタンスを検出できない場合は、次の方法でメッセージを検索できます。
「インスタンス」ビューが表示されていない場合は、Oracle ESB Controlの上部の「インスタンス」ボタンをクリックします。
「検索」パネルを開きます(まだ開いていない場合)。
表10-1の説明に従って、目的の検索条件を指定します。
「検索」パネルのタイトル・バーにある適用アイコン(緑色の矢印)をクリックします。
表10-1 メッセージ・インスタンスの検索条件の指定
検索条件 | 説明 |
---|---|
インスタンスID |
メッセージを特定のインスタンスIDが付いたメッセージに制限する手順は、次のとおりです。
複数のインスタンスIDは指定できません。検索条件としてインスタンスIDを指定した場合、他のフィルタ条件は無視されます。 |
最終のアクティビティ<time frame> |
特定の時間に処理されたメッセージに制限する手順は、次のとおりです。
|
サービス |
メッセージを特定のサービスで処理されたメッセージに制限する手順は、次のとおりです。
|
ステータス |
メッセージを特定のステータスのメッセージに制限するには、「ステータス」フィールドで、次のいずれかのステータスを選択します。
|
一致 |
「トラッキング名」フィールドと「トラッキング値」フィールドで、「任意」または「すべて」の基準に一致するかどうかを指定します。 |
トラッキング名とトラッキング値(トラッキング可能フィールド) |
メッセージを、1つまたは複数のトラッキング可能フィールドで特定の値が設定されているメッセージに制限する手順は、次のとおりです。
トラッキング可能フィールドとトラッキング値のペアを削除する場合は、該当する行の横に表示されているマイナス記号(-)ボタンをクリックします。 |
デフォルトでは、メッセージ・インスタンスは消去されません。その結果、「インスタンス」パネルにあるメッセージ・インスタンスのリストの処理が困難になる場合があります。この場合は、ESBサーバーに、すべてのメッセージまたは特定の時間範囲外で発生したすべてのメッセージ・インスタンスを消去するように指示できます。消去したインスタンスは、永久に失われます。
メッセージを消去する手順は、次のとおりです。
「インスタンス」ビューが表示されていない場合は、Oracle ESB Controlの上部の「インスタンス」ボタンをクリックします。
「管理」パネルを開きます(まだ開いていない場合)。
メッセージを消去する頻度を選択します。
すべてのメッセージ・インスタンスを消去するには、「インスタンスの消去」の下にある「すべて」を選択します。
特定の時間範囲外で発生したすべてのメッセージ・インスタンスを消去するには、「インスタンスの消去」の下にある「次より古い」を選択して時間範囲を指定します。
「管理」タイトル・バーにある適用アイコン(緑色の矢印)をクリックします。