プロダクションの監視
管理ポータルでは、1 つのプロダクションをより詳細に監視するためのページが用意されています (すべてのネームスペースを監視する方法について説明した前章とは対照的です)。この章では、これらのページを使用する方法について説明します。
一般的な注意
基礎的な情報は、“概念” の章を参照してください。
プロダクションの開始と停止に関する情報は、“プロダクションの管理” を参照してください。展開済みで稼働中のプロダクションでは、このドキュメントに記載されている自動開始オプションの使用が推奨されていることに注意してください。
プロダクションが一時停止またはトラブルの場合は、“プロダクション問題状態の修正” を参照してください。
[プロダクション・モニタ] ページの使用法
[Interoperability]→[モニタ]→[プロダクション・モニタ] ページには、詳細へのリンクを含む、1 ページに凝縮された形式で、現在実行中のプロダクションに関するリアルタイム・ステータス情報が表示されます。このページを管理ポータルで表示するには、[Interoperability]、[モニタ]、[プロダクションモニタ]、[進む] の順に選択します。
このページを使用して、選択したネームスペース内のプロダクションの全般的な状態を監視できます。以下に、このページに表示される内容の一部を紹介します。
[プロダクション・モニタ] ページには、モニタ・サービスによって提供されるリアルタイム情報が表示されます。モニタ・サービスとは、すべてのプロダクションに暗黙的に組み込まれているビジネス・サービスです (ただしプロダクションの構成としては表示されません)。モニタ・サービスでは、プロダクションを実行中の項目のアクティビティを継続的に監視し、頻繁にそれらのデータを記録します。
入力接続
[インカミング接続] テーブルには、外部システムからの受信接続がすべて表示されます。[完了] フィールドには、Ens.ScheduleService などの内部サービスを含め、プロダクションのビジネス・サービスによって処理されたメッセージの数が示されます。テーブルの各エントリは、以下を示しています。
-
ビジネス・サービス・ステータス
-
ビジネス・サービス接続ステータス
-
ビジネス・サービス名
-
プロダクションの開始以降に処理されたメッセージ数
ステータスはセル色で示されます。項目ステータス・セルと接続ステータス・セルには次のような意味があります。
-
ビジネス・サービス・ステータス (最初のセル)
-
緑色の • (ドット) — アクティブおよび OK
-
黄色の - (ハイフン) — 現在は非アクティブであるが、それ以外の点については OK
-
赤色の ! (感嘆符) — エラー
-
灰色の X (文字の X) — 無効
-
-
接続ステータス (2 つ目のセル)。接続ステータスは、TCP、HTTP、FTP、および ODBC 接続に関して意味があります。
-
緑色の + (プラス記号) — 接続完了
-
黄色の o (文字の o) — リッスン中
-
赤色の x (文字の x) — 切断完了
-
灰色の - (ハイフン) — 適用外、無効、予定外、または未接続
-
サービスの名前の上にカーソルを移動すると、追加の情報が表示されます。サービスの名前を選択すると、右側の領域が詳細情報で更新され、以下の関連リンクも表示されます。
-
[イベント・ログ] — クリックすると、選択されている構成項目のイベント・ログ・エントリが表示されます。詳細は、“イベント・ログの表示” を参照してください。
-
[キューの内容] — クリックすると、プロダクションのキューが表示されます。詳細は、この章で後出する “プロダクション・キューの監視” を参照してください。
出力接続
[アウトゴーイング接続] テーブルには、外部システムへの送信接続がすべて表示されます。[完了] フィールドには、Ens.Alarm などの内部オペレーションを含め、プロダクションのビジネス・オペレーションによって処理されたメッセージの数が示されます。各エントリは以下を示しています。
-
ビジネス・オペレーション・ステータス
-
ビジネス・オペレーション接続ステータス
-
ビジネス・オペレーション名
-
プロダクションの開始以降に処理されたメッセージ数
ステータスはセル色で示されます。項目ステータス・セルと接続ステータス・セルには次のような意味があります。
-
ビジネス・オペレーション・ステータス (最初のセル)
-
緑色の • (ドット) — アクティブおよび OK
-
黄色の - (ハイフン) — 現在は非アクティブであるが、それ以外の点については OK
-
赤色の ! (感嘆符) — エラー
-
灰色の X (文字の X) — 無効
-
灰色の • (ドット) — 再試行。ビジネス・オペレーション接続が失敗し、オペレーションが接続を再試行している。
-
-
接続ステータス (2 つ目のセル)。接続ステータスは、TCP、HTTP、FTP、および ODBC 接続に関して意味があります。
-
緑色の + (プラス記号) — 接続完了
-
黄色の o (文字の o) — リッスン中
-
赤色の x (文字の x) — 切断完了
-
灰色の - (ハイフン) — 適用外、無効、予定外、または未接続
-
オペレーションの名前を選択すると、右側の領域が詳細情報および [インカミング接続] テーブルと同じリンクで更新されます。
キュー
[キュー] テーブルには、InterSystems IRIS® の内部メッセージ・キューのステータスおよび各キューで現在待機中のメッセージ数が表示されます。
このテーブルでは、[インカミング接続] テーブルと同じアイコンおよび色分け方法が使用されます。このテーブル内の項目をクリックすると、右側の領域が詳細情報および [キューの内容] リンクで更新されます。
イベント・ログ
[イベント・ログ] には、イベント・ログの最新のエントリの要約が表示されます。
各エントリでは、以下のようにアイコンと色を使用してその項目のステータスが示されます。
-
赤色の ! — エラー
-
オレンジの W — 警告
-
黄の A — アラート
このテーブル内の項目を選択すると、右側の領域が更新され、そのイベント・ログ・エントリの詳細が表示されます。また、イベント・ログ全体を表示できる [イベント・ログ] リンクも表示されます。
アクティビティ・グラフ
アクティビティ・グラフは、プロダクションのメッセージ・アクティビティ、または選択した受信接続や送信接続のメッセージ・アクティビティを示します。このグラフには、7 日前から 5 分前までの時間範囲でメッセージ・アクティビティを表示できます。以下は、プロダクション・モニタのアクティビティ・グラフまたはアクティビティ履歴を示しています。
アクティビティ・グラフに対して以下を指定できます。
-
監視するコンポーネント — プロダクション・モニタを開始するとき、アクティビティ・グラフにすべての受信および送信接続のメッセージが表示されます。プロダクション・モニタで、受信または送信接続を選択した場合、アクティビティ・グラフには選択したコンポーネントのみのアクティビティが表示されます。プロダクション全体のアクティビティに戻す場合は、現在選択されている接続を選択することで選択を解除します。
-
自動更新 — このチェック・ボックスにチェックを付けた場合、プロダクション・モニタは定期的にアクティビティ・グラフを更新します。
-
表示する期間 — 以下のいずれかを選択します。
-
[最近 1 週間] — 過去 7 日間のアクティビティを表示します。縦軸は 1 時間あたりのメッセージ数を示します。
-
[最近 1 日間] — 過去 24 時間のアクティビティを表示します。縦軸は 15 分間隔あたりのメッセージ数を示します。
-
[最近 1 時間] — 過去 60 分間のアクティビティを表示します。縦軸は 1 分あたりのメッセージ数を示します。
-
[最近 5 分間] — 過去 5 分間のアクティビティを表示します。縦軸は 15 秒間隔あたりのメッセージ数を示します。
-
カスタム・メトリック
ページの下部領域に、InterSystems IRIS® 開発者によって追加されたカスタム・メトリックの 1 つ以上のテーブルが表示される場合があります。以下に例を示します。
"プロダクションの開発" の “プロダクション・モニタへのビジネス・メトリックの追加” を参照してください。
プロダクション・モニタ・サービスの使用法
プロダクションの稼働中に、InterSystems IRIS がプロダクションのステータスとコードの定義との間に矛盾を検出する場合があります。例えば、ビジネス・ホストがエラーの発生により機能停止していることを検出する場合があります。このような場合、[プロダクション構成] ページに [更新] ボタンが表示され、矛盾を手動で解決できます。
プロダクションが期限切れになったときにプログラムで対処したい場合は、Ens.ProductionMonitorServiceOpens in a new tab クラスを使用できます。具体的には、"プロダクションへのビジネス・ホストの追加" で説明しているように、Ens.ProductionMonitorServiceOpens in a new tab クラスに基づいたビジネス・サービスをプロダクションに追加します。デフォルトでは、このビジネス・サービスは、5 秒おきにプロダクションのステータスを確認します。プロダクションが期限切れになると、このビジネス・サービスは、Ens.DirectorOpens in a new tab クラスの UpdateProduction() メソッドを呼び出します。このビジネス・サービスがプロダクションを確認する間隔を変更するには、その [呼び出し間隔] の値を変更します。ビジネス・サービスの OnProcessInput() メソッドを変更することで、プロダクションが期限切れになったことを検出した際のビジネス・サービスの動作をカスタマイズすることもできます。
プロダクション・キューの監視
[Interoperability]→[モニタ]→[キュー] ページには、選択したネームスペース内で実行中のプロダクションで使用されているすべてのメッセージ・キューの現在の状態が表示されます。
このページのテーブルには、キューごとに 1 つの行があります。このテーブルの列は以下のとおりです。
-
[名前] — キューを持つ構成項目の名前。この名前はホスト・クラス名とは異なる場合があります。
-
[総数] — キューにあるメッセージの数。この値はスナップショットで、ページを更新すると変化する場合があります。
-
[アクティブ] — アクティブ・メッセージの数。
-
[作成日時] — キューが最初に作成されたときの日時。
特定のキューの内容を表示するには、そのキューの行を選択します。そのキューの内容とアクティブ・メッセージが表示されます。キュー内容内やアクティブ・メッセージ内のエントリを選択すると、該当メッセージに関する情報が表示されます。
キューのリストと内容を更新するには、更新矢印をクリックします。
[アクティブメッセージ] テーブルが表示されるのは、選択したキューにアクティブ・メッセージが含まれている場合です。このテーブルにはアクティブ・メッセージごとに 1 つの行があり、各行では対象のメッセージとその状態が示されます。チェックボックスにチェックを付けて 1 つ以上のメッセージを選択した場合は、選択したメッセージを中止または選択できます。
[アクティブメッセージ] テーブルでは、メッセージ行を選択して、選択したメッセージの詳細情報を表示できます。これらの詳細情報は、右側にある [ヘッダ]、[ボディ]、[コンテンツ]、および [トレース] の各タブに表示されます。これらのタブは、[メッセージ・ビューワ] ページと同じです。“メッセージの表示、検索、および管理” を参照してください。
このページで [キューの内容] テーブルが表示されるのは、選択したキューにメッセージが含まれている場合です。このテーブルには、指定されたキュー内のメッセージごとに 1 つの行があります。このテーブルの列は以下のとおりです。
-
[インデックス] — この整数値は、プロダクションの開始後にキューに配置された最初のメッセージに対して 1 から始まり、それ以降の各メッセージに対して 1 ずつ増加していきます。メッセージがキューに配置されている間は、同じ [インデックス] 値が保持されます。[インデックス] 値が再使用されることはありません。
-
[優先度] — メッセージの優先度。最初の章の “メッセージの優先度” を参照してください。
-
[MessageId] — メッセージのオブジェクト識別子。
[キューの内容] テーブルでは、以下のタスクを実行できます。
-
メッセージ行を選択して、選択したメッセージの詳細情報を表示します。これらの詳細情報は、右側にある [ヘッダ]、[ボディ]、[コンテンツ]、および [トレース] の各タブに表示されます。これらのタブは、[Interoperability]→[表示]→[メッセージ] ページと同じです。“メッセージの表示、検索、および管理” を参照してください。
-
メッセージのチェックボックスにチェックを付けて、メッセージを選択します。
-
[中止] をクリックすると、チェックボックスを使用して選択された 1 つ以上のメッセージを対象にした現在進行中の送信試行を中止できます。[OK] をクリックして操作を確認します。
-
[すべて中止] をクリックすると、キューにあるメッセージを対象にした現在進行中のすべての送信試行を中止できます。[OK] をクリックして操作を確認する必要があります。
Note:[中止] または [すべて中止] を使用するには、%Ens_Queues リソースに対する WRITE 許可が必要です。
-
ページ番号を選択して、リスト内のそのページを表示します。|< を選択すると最初のページが表示され、<< を選択すると前のページが表示され、>> を選択すると次のページが表示され、>| を選択すると最後のページが表示されます。
キューに伴う問題の診断
キューとジョブを調べることによって、システム内の問題を迅速に特定できる場合があります。
キュー内容が増大している場合は、何かを修復する必要があることを意味しています。キューに関する最も重要な情報は、長い間キュー内に留まっているメッセージの宛先、つまり、“ターゲット” です。一般的に、キューに入れられたメッセージが送信されない理由は、そのターゲットに到達できないためです。ターゲットに伴う問題の原因を特定できる場合は、その問題が解決されたときに、キュー内容の増大が解消されます。以下に例を示します。
-
ビジネス・サービスまたはビジネス・オペレーションで、キューが突然長くなった場合は、外部システムとの通信で問題が発生していることを意味します。外部接続がダウンしているか、ピーク時の影響が外部接続のスループットに及んでいる可能性があります。
-
ビジネス・サービスまたはビジネス・オペレーションで、キューが常に長い場合は、メッセージの送信に時間がかかっていることを意味します。外部接続を調査して、解決可能な性能上の問題が発生していないかどうかを確認する必要があります。それが不可能な場合は、該当するプール・サイズを増やすことができます (先入れ先出し処理を保証する必要がない場合)。
"プロダクションの構成" の “プール・サイズとアクター・プール・サイズ” を参照してください。
-
プライベート・プールを使用するビジネス・プロセスで、キューが常に長い場合は、該当するプール・サイズを増やすことができます (先入れ先出し処理を保証する必要がない場合)。
-
アクター・キューが突然長くなった場合は、ビジネス・プロセスで、何らかの方法で “スタック” を引き起こすエラーが発生している可能性があります。
-
アクター・キューが常に長い場合は、プロダクション用のアクター・プールの容量を増やす必要があります。
-
複数のキューで常に大幅な内容の増大が起きている場合は、ホスト・コンピュータで一般的な容量問題が発生している可能性があります。プロダクション (CSP アプリケーションとしての役割において) のリソースを増やすか、基礎となる InterSystems IRIS インストールを調整する必要があります。推奨事項は、"システム管理ガイド" を参照してください。ただし、大抵の場合は、このトピックで列挙した簡単な調整だけでキューを動かし続けることができます。
アクティブなジョブの監視
[Interoperability]→[モニタ]→[ジョブ] ページには、選択したネームスペース内のプロダクションの現在アクティブなジョブが表示されます。
このページのテーブルには、アクティブなジョブごとに 1 つの行があります。このテーブルの列は以下のとおりです。
-
[ジョブ] — ジョブの内部識別番号。
-
[構成名] — このジョブが開始された対象であるビジネス・ホストの構成名。
ビジネス・サービス、ビジネス・プロセス、またはビジネス・オペレーションが処理を行う必要が生じるたびに、そのタスクを完了するためのシステム・ジョブが開始されます。このジョブは、ビジネス・サービス、ビジネス・プロセス、またはビジネス・オペレーションに属するジョブのプライベート・プールから選択される場合と、(ビジネス・オペレーションの場合に) プロダクションのパブリック・アクター・プールから選択される場合があります。タスクが終了すると、ジョブはその元のプールに戻されます。
1 つのプロダクションで、1 つの要求を完了するためにいくつかの異なるジョブを開始して終了する必要があることがあります。その詳細は (部分的には) 要求が同期に行われたか、非同期に行われたかによって異なります。例えば、ジョブが待機する必要がある場合、そのジョブは待機期間中はプールに返され、そのリソースが解放されます。
-
[モード] — [バックグラウンド] または [フォアグラウンド] です。
-
[ステータス] — 通常は、これは [実行中] または [デキュー] です。
-
[詳細] — このジョブに関してわかっている追加の詳細情報。
-
[アクティブメッセージ] — 現在処理中のメッセージがある場合は、そのメッセージの ID。
-
[状態] — 通常は、これは [アクティブ] です。
ジョブに伴う問題の診断
ジョブとキューを調べることによって、システム内の問題を迅速に特定できる場合があります。
ほとんどのジョブは、その時間のほとんどをデキュー状態でメッセージを待機しながら消費します。シャットダウン中はジョブが休止状態になる必要があります。ジョブがシャットダウン中に休止状態にならなかった場合は、問題を示している可能性があります。ジョブの実行中状態が続いている場合も、コンポーネントによる大量の処理の実行 (およびその処理の完了) が予定されていなければ、問題を示しています。
デッドとしてマークされたジョブは、何らかの理由で終了したジョブのことであり、InterSystems IRIS はそのジョブが既にシステム上に存在しないことを検出しています。一般的に、これは起きてはならない深刻な問題を示しています。また、InterSystems IRIS がデッド・ジョブを検出すると、イベント・ログにエラーを書き込みます。
メッセージの中止、メッセージの一時停止、およびジョブの停止
管理ポータルでは、アクティブなジョブの管理やトラブルシューティングを行うための以下のタスクを実行できます。
-
現在、ジョブが再送信しようとしているメッセージを中止する。そのメッセージは、その後、メッセージ・ビューワで確認できます。詳細は、"メッセージの参照" を参照してください。
-
現在、ジョブが再送信しようとしているメッセージを一時停止する。一時停止されたメッセージは、特定のキューにルーティングされます。そのメッセージは [一時停止のメッセージ] ページで確認できます。詳細は、"一時停止メッセージの管理" を参照してください。
-
ジョブを完全に停止する。
ジョブを停止するか、ジョブによるメッセージの中止を要求するには、%Ens_Jobs リソースに対する WRITE 許可が必要です。ジョブによるメッセージの一時停止を要求するには、%Ens_MessageSuspend リソースに対する USE 許可が必要です。
アクティブなジョブに対してアクションを実行するには、以下の手順に従います。
-
[現在アクティブなジョブ] ページ、または目的のジョブが含まれる [プロダクション構成] ページの [ジョブ] タブに移動します。
Note:[ジョブ] タブには最新の 100 のジョブのみがリストされます。
-
目的のジョブを選択します。
-
適宜、[中止]、[一時停止]、または [停止] をクリックします。
プロダクション構成ページの使用法
InterSystems IRIS は、プロダクションを表示する別の方法として [Interoperability]→[構成する]→[プロダクション] ページを備えています。
このページには、プロダクション内のビジネス・ホストが次の例のようにわかりやすく色分けされて表示されます。
このページには、各ビジネス・ホストの横に円形のステータス・インジケータが表示されます。このインジケータの意味を確認するために [凡例] をクリックすると、InterSystems IRIS に以下が表示されます。
このページの主な目的は、"プロダクションの構成" の説明に従ってプロダクションを構成することです。
プロダクション問題状態の修正
プロダクションが一時停止またはトラブルの場合は、この節に目を通してください。
プロダクションの状態が実行中の場合は、プロダクションが開始して、正常に動作しています。これは正常な状態です。
プロダクションの状態が停止の場合は、プロダクションが実行しておらず、そのキューのすべてから同期メッセージが消去されています。これも受け入れ可能な状態です。
通常は開発期間中など、プロダクションが実行中に、このページに [更新] ボタンが表示される場合があります。このボタンをクリックすると、プロダクションが更新され、不一致が解消されます。詳細は、"プロダクションの構成" の “[更新] ボタン” を参照してください。
一時停止プロダクションの回復
プロダクションは、シャットダウン・シーケンスの最後で同期メッセージが残っているキューがあると中断中ステータスになります。
一時停止プロダクションを再開すると、これらのメッセージの処理が可能になります。ただし、根本的な問題が解決されなければ、過去のメッセージが処理されず、どんどん同期メッセージがキューに溜まることになります。
したがって、展開済みで稼働中のプロダクションが一時停止状態になった場合は、インターシステムズのサポート窓口Opens in a new tabまでお問い合わせください。
プロダクションが開発期間に一時停止状態になった場合は、"プロダクションの開発" の “プロダクション問題状態の修正” を参照してください。この場合は、メッセージの破棄手順を使用できます。
トラブル・プロダクションの回復
InterSystems IRIS が停止しても、プロダクションが適切にシャットダウンしなかった場合に、そのプロダクションは [トラブル] ステータスになります。先にプロダクションを停止せずに InterSystems IRIS の再開またはマシンの再起動を実行すると、このステータスが発生する可能性があります。この場合は、[回復] ボタンをクリックします。