Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

メッセージの表示、検索、および管理

プロダクション内のすべての通信は、メッセージ を使って行われ、管理ポータルには、メッセージを表示し、使用するためのツールが数多く用意されています。この章は以下の節で構成されています。

他のプロダクションからのメッセージの表示” の章も参照してください。

メッセージに関する基礎的な情報は、“概念” の章を参照してください。

メッセージの参照

Ensemble プロダクションが送信またはキューに格納したメッセージに関する情報を表示できます。Ensemble, メッセージ・ビューワ ページにアクセスするには、管理ポータルで以下のいずれかを実行します。

  • Ensemble の [表示] メニューの [メッセージ] をクリックします。

  • [プロダクション構成] ページの [メッセージ] タブの上部にある [メッセージ・ビューワに移動] をクリックします。

中央部にメッセージが一覧で表示されます。この部分を更新するには、[検索] ボタンをクリックします。左下部を使用してメッセージのリストをフィルタリングできます。詳細は、以下の節を参照してください。右側部には詳細が表示されます。“メッセージの詳細表示” および “関連メッセージのパスのトレース” を参照してください。

表示可能な情報

このページの上部には各メッセージに関する以下の情報が表示されます。

  • [ID] — メッセージの ID。最初の章の “メッセージの基本設定” を参照してください。

  • [作成日時] — メッセージ作成のタイム・スタンプ。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

  • [セッション] — このメッセージに関連付けられたセッション ID。最初の章の “セッション” を参照してください。

    テーブルの任意の行の [セッション] の番号を選択すると、プロダクション内を移動するメッセージ・オブジェクトのビジュアル・トレースを表示できます。

  • [ステータス] — メッセージのステータスを示します。最初の章の “メッセージ・ステータス” を参照してください。

  • [エラー] — メッセージを送信したビジネス・ホストに返された結果の簡単な概要を示します。

    OK は正常動作を意味し、Retry はメッセージが失敗したが、それを送信したビジネス・ホストがそのメッセージを再試行するように構成されていることを意味します。Error はアクティビティのどこかでエラーが報告されたことを示します。Inactive はメッセージを送信したビジネス・ホストが [非活動タイムアウト] 設定より長い間アイドル状態だったことを意味します。診断が必要な場合があります。

  • [ソース] — メッセージの送信元のビジネス・ホスト。

  • [ターゲット] — メッセージの送信先のビジネス・ホスト。

[セッション] 列は、以下のように色を使っても表示されます。

背景色 意味
メッセージにエラーが発生しました。
メッセージは、セッションの開始段階を示します。
メッセージは、タイムアウト後に到着しているので、破棄するメッセージに指定されています。
オレンジ メッセージは一時停止状態です。
白と淡黄色 (交互の行) これらのメッセージには問題は発生していません。またはキューに格納されています。

メッセージ・バンク・ビューワを使用している場合、検索するメッセージ・バンク・クライアントを指定するための追加オプションがあります。"エンタープライズ・メッセージ・バンクの使用法" を参照してください。

複数ページにわたるメッセージ表示

通常、メッセージは複数ページにわたって表示されます。すべてのメッセージを参照するには、以下のオプションがあります。

  • メッセージの次のページを表示できます。そのためには、[次] をクリックします。

  • より多くのメッセージを表示できます。そのためには、[ページサイズ] でより大きい値を選択し、再度 [検索] をクリックします。

    メッセージのデフォルト数は 100 です。

  • メッセージの前のページを表示できます。そのためには、[前] をクリックします。

  • メッセージのソート方法を変更できます。そのためには、[ソート順序] で異なる値をクリックします。

また、[時刻形式] を使用して、時刻のみを表示するか、日付と時刻を表示するかを指定することもできます。デフォルトは Time Only です。

読み取り専用の [ページ] フィールドは、リストのどのページが表示されているかを示します。

メッセージのフィルタリング

さらに簡単に特定のメッセージを見つけるために、Ensemble, メッセージ・ビューワ ページに表示されるメッセージをフィルタリングできます。基本的な手順は以下のとおりです。

  1. 前述の説明に従って、このページにアクセスします。

  2. フィルタ条件を指定します。通常、以下の異なる 2 通りの方法で実行できます。

    • [基本条件] および [拡張条件] の領域を使用し、以降の節の説明に従ってフィルタ条件を指定します。

    • [検索条件の保存] の部分を使用して、以前に保存したフィルタ条件のセットを取得します。そのためには、ドロップダウン・リストから値を選択し、チェック・マークをクリックします。

  3. [検索] をクリックします。ページが再表示され、指定したフィルタ条件に一致するメッセージのリストが表示されます。検索がまだ完了していない場合は、[キャンセル] をクリックして検索を中断できます。

    また、[リセット] をクリックすると、デフォルトの条件がリストアされます。

  4. 検索結果が表示可能数を超えた場合、[次] ボタンがアクティブとなり、使用できるようになります。また、表示可能数を多くするには、[ページサイズ] で大きい値を選択し、再度 [検索] をクリックします。 さらに、フィルタ条件を調整し、検索を絞り込みます。

  5. 必要に応じて、[保存] または [名前を付けて保存] をクリックし、後で再使用するために検索条件を保存します。検索条件の名前を入力するフィールドが表示されます。値を入力し、チェック・マークをクリックします。

    この操作によって、以前に同じ名前で保存された条件がある場合、上書きされます。

    保存されている検索を削除するには、[検索条件の保存] リストで名前をクリックしてから、赤い [X] をクリックします。

基本条件によるフィルタリング

Ensemble, メッセージ・ビューワ ページに表示されているメッセージをフィルタリングするには、[基本条件] 部で以下のフィールドの一部またはすべてを指定します。

  • [ステータス] — ドロップダウン・リストから値を選択します。最初の章の “メッセージ・ステータス” を参照してください。

  • [タイプ] — ドロップダウン・リストから値を選択します。選択肢は、[セッション開始]、[リクエスト]、[レスポンス]、または [すべて] (デフォルト) のいずれかです。

  • [開始時刻] — 必要なメッセージが作成されたタイム・スタンプのうち最も早い時間を入力します。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

  • [開始Id] — 必要なメッセージ ID のうち最小の値を入力します。

  • [終了時刻] — 必要なメッセージが作成されたタイム・スタンプのうち最も遅い時間を入力します。

  • [終了Id] — 必要なメッセージ ID うち最大の値を入力します。

  • [ソース] — メッセージの送信元のビジネス・ホスト。リストから選択します。

  • [ターゲット] — メッセージの送信先のビジネス・ホスト。リストから選択します。

メッセージ・バンク・ビューワを使用している場合、検索を 1 つのメッセージ・バンク・クライアントに制限する追加フィルタがあります。"エンタープライズ・メッセージ・バンクの使用法" を参照してください。

拡張条件によるフィルタリング

[拡張条件] 部分を使用すると、さらに限定した条件で表示メッセージをフィルタリングできるようになります。詳細フィルタは、論理演算子 AND および OR で組み合わせた、1 つ以上の条件から成ります。各条件には、メッセージに格納されているあらゆる情報、豊富なセットから比較演算子、および任意の式を使用できます。組み合わせた条件のすべてを満たすメッセージのみが表示されます。

この部分を使用するには、[拡張条件] の横にある三角形をクリックします。以下のいずれかを実行します。

  • 条件を追加するには、[条件の追加] をクリックします。詳細は、最初の項を参照してください。

  • OR を追加するには、[OR の追加] をクリックします。デフォルトでは、条件を AND で組み合わせます。このオプションを使用し、隣接した条件を AND ではなく、OR で組み合わせます。“条件の組み合わせ方法” の項を参照してください。

これらの項目を追加すると、[拡張条件] のリストに選択内容が表示されます。以下に例を示します。

generated description: extended criteria example

希望どおりに選択したら、[検索] をクリックします。[メッセージ・ビューワ] ページに、指定したフィルタ条件すべてに一致するメッセージのリストが表示されます。

条件の追加

条件を追加するには、[条件の追加] をクリックします。以下のようなウィザードが表示されます。

generated description: message search criteria

以下の値を指定します。

  • [条件の有効化] — 選択してこの検索を有効にします。

  • [条件タイプ] — リストから値を選択します。次の項を参照してください。

  • [クラス] — リストからクラス名をクリックします。“クラス” の項を参照してください。

  • [条件] — 論理文のフィールドと値を指定できます。“条件” の項を参照してください。

  • [値の表示] — 指定したい値を追加し、テーブルに表示させることができます。選択した値が、テーブルの右側に表示されます。

[OK] をクリックし、この条件を保存すると、[拡張条件] リストに追加されます。

条件タイプ

必要に応じて、[条件タイプ]で、ドロップダウン・リストから値を選択します。以下のテーブルには選択項目が表示され、これらの項目がその次の [クラス] フィールドと [条件] フィールドの選択項目に与える影響が示されています。

タイプ [クラス] と [条件] の参照先
本文のプロパティ 標準の Ensemble メッセージ本文オブジェクトのプロパティ。
ヘッダ・フィールド 標準の Ensemble メッセージ・ヘッダ・オブジェクトのフィールド。
OR (2 つのフィルタ条件を論理 OR で適用する場合に使用します)
SearchTable フィールド この Ensemble ネームスペース内で定義された検索テーブル・クラスのエントリ。検索テーブル・クラスは、仮想ドキュメントを操作するために作成する特殊なツールです。
VDoc セグメントのフィールド 仮想ドキュメントのメッセージ・セグメント内のフィールド。標準と興味のあるセグメントを指定します。次に、そのセグメントのフィールド・リストから選択するよう求めるプロンプトが表示されます。
VDoc のプロパティのパス 仮想ドキュメントのメッセージ・セグメントのフィールド。標準を指定してから、その標準に有効なメッセージ・セグメントとフィールドを指定する仮想プロパティのパスを入力します。
Note:

[拡張条件] インタフェースの VDoc フィールドについての背景情報は、"Ensemble 仮想ドキュメント" を参照してください。プロダクションであるタイプの仮想ドキュメントをルーティングしない限り、これらのフィールドを使用する必要はありません。

クラス

必要に応じて、[クラス]で、ドロップダウン・リストから値を選択します。選択された[条件タイプ]に適したすべてのクラスが一覧で表示されます。以下に例を示します。

タイプ クラス名
本文のプロパティ このネームスペース内のすべてのメッセージ・クラスから選択します。
ヘッダ・フィールド
OR
SearchTable フィールド このネームスペース内のすべての検索テーブル・クラスから選択します。
VDoc セグメントのフィールド このネームスペース内のすべての仮想ドキュメント・クラスから選択します。
VDoc のプロパティのパス このネームスペース内のすべての仮想ドキュメント・クラスから選択します。

フィルタ条件

[条件] で、左から順に論理文のフィールドと値を、以下のように指定します。

  1. 1 つ目のセルでは、ドロップダウン・リストから値を選択します。リストにはこのコンテキストに適した選択項目がすべて含まれています。詳細は、以下の最初のテーブルを参照してください。

  2. 2 つ目のセルで、ドロップダウン・リストから比較演算子を選択します。以下の 2 つ目のテーブルを参照してください。

  3. 3 つ目のセルには、選択した演算子を使用して一致させるリテラル文字列を入力します。

    この文字列の前後に二重引用符を使用しないでください。

[条件] パネルの選択項目は、[タイプ] での選択に応じて異なります。以下のテーブルで、選択項目について説明します。

タイプ 条件
本文のプロパティ [クラス名] のメッセージ・クラスにあるすべてのプロパティから選択します。
ヘッダ・フィールド
OR
SearchTable フィールド [クラス名] の検索テーブル・クラスで定義されたすべての検索テーブル・エントリから選択します。
VDoc セグメントのフィールド [セグメント・タイプ] で値を選択してから、[フィールド名]に値を選択します。(または、該当する値がわかれば、タイプの値)

HL7 については、名前よりも数字参照を使用したい場合に、例えば、[5]、[18.1]、または 2.3.1:[3().1] など数字参照を入力できます。カテゴリ参照およびコロン接頭語は削除できますが、角かっこおよびそのコンテンツはそのままにしておきます。

角かっこは中かっことは異なり、segment:field の組み合わせを囲みます。この場合、含まれるドキュメント構造を識別する必要がありません。上記の例では、PID セグメントと PatientAddress().city フィールドが含まれている 2.3.1 スキーマ・カテゴリ内の任意のメッセージ構造が照合されます。

VDoc のプロパティのパス [ドキュメントタイプ] で値を選択してから、[プロパティ・パス]で値を選択します。(または、該当する値がわかれば、タイプの値)

左側の [条件] フィールドに表示するオプションを選択する代わりに、このフィールドに仮想プロパティのパスを入力できます。ただし、正しい構文を使用するように注意してください。中かっこの構文には、識別のため、ADT_A06 などの特定のメッセージ構造が必要です。

[条件] の文の 2 つの値の間の比較演算子は、以下のいずれかになります。

演算子 条件が真となる左側の値の状況
= 右側の値と等しくなります。
!= 右側の値と等しくなりません
> 演算子の右側の値より大きくなります。
>= 右側の値より大きいか、または等しくなります。
< 右側の値より小さくなります。
<=

右側の値より小さいか、または等しくなります。

>、>=、<、または <= の条件に文字列が含まれている場合、それらはアルファベット順に並べ替えられ、結果が決定されます。記号と数字はアルファベットよりも前に並べられます。

Contains

右側のサブ文字列を含む文字列です。

Contains 演算子では、大文字と小文字が区別されます (検索テーブル・フィールド内の場合は除く)。左側の値が Hollywood, California で、右側の値が od, Ca の場合は一致と見なされますが、値が Wood の場合は一致と見なされません。

検索テーブル・フィールドでの Contains 演算子は、特定の検索テーブル・クラスの実装に応じて、大文字と小文字の区別の有無が異なります。

DoesNotContain 右側のサブ文字列を含まない文字列です。
DoesNotMatch 右側に指定された文字列のパターンに一致しない文字列です。このパターンでは、ObjectScript の ? というパターン・マッチング演算子に適した構文が使用されます。詳細は、"Caché ObjectScript の使用法" の “演算子と式” の章で “パターン・マッチング” を参照してください。
In 右側のカンマ区切り文字列内の項目の 1 つと同じです。
NotIn 右側のカンマ区切り文字列内の項目のいずれとも同じではありません。
StartsWith 右側のサブ文字列で始まる文字列です。
DoesNotStartWith 右側のサブ文字列で始まらない文字列です。
Like

SQL の LIKE 述部のルールに従って、右側に指定されたサブ文字列のパターンに一致する文字列です。

Like 条件および NotLike 条件のマッチングでは、“_” の文字は任意の 1 文字に一致し、“%” はゼロ個以上の任意の文字列に一致します。したがって、左側の値にパターン %Com_ が含まれ、選択された演算子が Like の場合、TransCom1UltraCom2 の値は一致しますが、UltraCom17Foxcom8 の値は一致しません。

Matches

右側に指定された文字列のパターンに一致する文字列です。このパターンでは、ObjectScript の ? というパターン・マッチング演算子に適した構文が使用されます。詳細は、"Caché ObjectScript の使用法" の “演算子と式” の章で “パターン・マッチング” を参照してください。

NotLike SQL の LIKE 述部のルールに従って、右側に指定されたサブ文字列のパターンに一致しない文字列です。
InFile 右側に指定された完全パスを持つテキスト・ファイル内に見つかります。
NotInFile 右側に指定された完全パスを持つテキスト・ファイル内に見つかりません
Important:

Ensemble は、仮想ドキュメントをインデックス付け (つまり、検索テーブルに追加) すると、縦棒 (|) をプラス記号 (+) に置き換えます。検索テーブルを使用して内容を検索する際には、このことを考慮してください。例えば、my|string という文字列を含むメッセージを検索するには、検索条件として my+string を使用します。

条件の再配置および変更

[拡張条件] セクションに複数の項目がある場合、上向き矢印と下向き矢印のアイコンをクリックして順序を調整できます。

項目を編集するには、その項目の編集ボタン generated description: button edit extended criteria をクリックします。

項目を削除するには、[X] をクリックします。

条件の組み合わせ方法

[拡張条件] に複数の条件が表示されている場合、これらの条件は AND で暗黙的に結合されます。例えば、3 つの文が表示されていると想定します。

Logical Statement 1
Logical Statement 2
Logical Statement 3

この場合、フィルタは次のように機能します。

Logical Statement 1
AND
Logical Statement 2
AND
Logical Statement 3

このロジックを変更するには、必要に応じて、[OR の追加] を使用し、OR の配置を変更することもできます。 OR 行と 4 つ目の論理文を上記のリストに追加したとします。[拡張条件] パネルは、以下のようになります。

Logical Statement 1
Logical Statement 2
Logical Statement 3
OR
Logical Statement 4

その結果として、ロジックは以下のようになります。

Logical Statement 1
AND
Logical Statement 2
AND
Logical Statement 3
OR
Logical Statement 4

演算子 AND は OR よりも結合が強いので、上記シーケンスの結果は実際には以下のようになります。

(1 AND 2 AND 3) OR 4

メッセージの詳細表示

Ensemble では、メッセージがどのように作成され、送信されたかに関する詳細をメッセージごとに確認できます。複数の場所から関連ページにアクセスできます。以下に例を示します。

  1. メッセージの参照” に記載の Ensemble, メッセージ・ビューワ ページにアクセスします。

  2. メッセージをクリックします。

右ペインに以下のタブが表示されます。

次の項では、[ヘッダ][本文][コンテンツ] のタブについて説明します。

[トレース] タブには、拡大版の[ビジュアル・トレース] ページで参照できるデータとオプションのサブセットが表示されます。[ビジュアル・トレース] ページは、次の項に記載されています。

メッセージ・ヘッダ・フィールド

[ヘッダ] タブでは、Ensemble メッセージ・ヘッダに標準フィールドが表示されます。

  • [オブジェクトId] — メッセージ・ヘッダの ID (およびメッセージ ID。最初の章の “メッセージの基本設定” を参照してください)。

  • [ターゲット構成名] — メッセージを受信する予定のビジネス・ホストの名前。

  • [タイプ] — メッセージの種類。[要求] または [応答] です。

  • [呼び出し] — メッセージがどのように送信されたかを示します。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

  • [関連メッセージId] — 要求メッセージの場合、このフィールドに対応する応答 (存在する場合) のメッセージ ID が含まれるか、空白となります。応答メッセージの場合、このフィールドには、対応する要求のメッセージ ID が含まれます。

  • [セッションID] — このメッセージに関連付けられたセッション ID。最初の章の “セッション” を参照してください。

  • [ソース構成名] — メッセージの送信元のビジネス・ホスト。

  • [SourceBusinessType] — [BusinessService]、[BusinessProcess]、[BusinessOperation]、または [不明] のいずれか。

  • [TargetBusinessType] — [BusinessService]、[BusinessProcess]、[BusinessOperation]、または [不明] のいずれか。

  • [BusinessProcessId] — 実行された各ビジネス・プロセスにはインスタンスがあり、ここにはそのインスタンスのオブジェクト ID が表示されます。メッセージが要求であれば、このフィールドでは、メッセージが作成されたビジネス・プロセスのコンテキスト (送信者) を指定します。メッセージが応答であれば、このフィールドでは、返されるビジネス・プロセス (受信者) を指定します。このフィールドは、エラーが発生した場合など、さまざまな状況で空白になります。

  • [ターゲットキュー名] — メッセージの送信先 “アドレス”。そのメッセージはどこに送られるのかを表します。

    • これが名前の場合、Ens.ActorOpens in a new tab などのパブリック・キューを指定します。

    • これが数字の場合、ビジネス・ホストの専用キューに関連付けられたジョブ ID を指定します。

  • [戻りキュー名] — メッセージの返信 “アドレス”。そのメッセージはどこから送られたのかを表します。

    • これが名前の場合、Ens.ActorOpens in a new tab などのパブリック・キューを指定します。

    • これが数字の場合、ビジネス・ホストの専用キューに関連付けられたジョブ ID を指定します。

    [ReturnQueueId] の値は、応答の予定がない、または応答が必要でない種類の要求メッセージの場合でもリストされます。

  • [MessageBodyClassName] — メッセージ本文のクラス名。

  • [メッセージ・ボディId] — メッセージ本文の ID。このフィールドは、[メッセージ本文] テーブルの [<ObjectId>] フィールドと一致します。

  • [説明] — メッセージの説明のテキスト。Ensemble ビジネス・プロセス言語 (BPL) により、メッセージが生成される BPL アクティビティのタイプに基づき、このフィールドにテキストが自動的に入力されます。

  • [スーパーセッション] — HTTP を介してプロダクション間で送信されるメッセージの ID。詳細は、"Ensemble での HTTP アダプタの使用法" の “SendSuperSession” を参照してください。

  • [再送信] — これが再送信メッセージかどうかを示します。

  • [優先度] — Ensemble のメッセージング・エンジンで割り当てられる、キューにおけるメッセージの相対的な優先度。最初の章の “メッセージの優先度” を参照してください。

  • [TimeCreated] — メッセージ作成のタイム・スタンプ。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

  • [処理時間] — メッセージ使用のタイムスタンプ。Ensemble は、メッセージがキューから取得されるときにこのフィールドを設定しますが、このメッセージの処理中にこれを現在の時刻にリセットします。一般的に、完了したメッセージでは、これはメッセージ処理完了時刻を表します。

  • [ステータス] — メッセージのステータスを示します。最初の章の “メッセージ・ステータス” を参照してください。

  • [エラー判定]— 1 の値は、メッセージにエラーが発生したことを示します。0 の値は、メッセージでエラーが発生しなかったことを示します。

  • [エラーステータス] — [エラー判定] が 1 の場合、エラーに関連するテキストが表示されます。[エラー判定] が 0 の場合、[エラーステータス] の文字列は “OK” となります。

  • [Banked] — このメッセージがメッセージ・バンクの一部かどうかを示します。

メッセージ本文フィールド

メッセージ本文情報は、[本文] タブに表示されます。以下のフィールドがあります。

  • フィールド・リストの上にあるメッセージ本文クラス名。

  • メッセージ本文が標準の Ensemble メッセージ本文オブジェクトである場合は、テーブルに以下の情報が表示されます。

    • [<ObjectId>] — メッセージ本文のオブジェクト識別子。このフィールドは、[ヘッダ] タブの [メッセージ・ボディId] フィールドと一致します。

    • [メッセージ・タイプ] のクラスの各プロパティの名前と値。

    メッセージ本文がその他のタイプである場合、画面に追加のフィールドはありません。

メッセージ・コンテンツ

メッセージ本文のフォーマットされたコンテンツが、[コンテンツ] タブに表示されます。

標準の Ensemble メッセージの本文が、以下の例のように色分けされた XML 形式で表示されます。

generated description: message viewer contents xml

HL7 メッセージなどの仮想ドキュメントは、以下の図のようにセグメント形式で表示されます。1 行につき 1 つのセグメントが表示されます。

generated description: message viewer contents hl7

例えば、HL7 メッセージの場合、各行は左から順に以下のとおりになります。

  • セグメント番号 (白の背景) : 1、2、3 など

  • セグメント名 (淡色の背景) : MSH、PID など。背景が淡色の列にあるセグメント名をマウスでポイントすると、ツールのヒントにメッセージ・セグメントの目的が表示されます。

  • メッセージに示されるとおりのフィールド・コンテンツおよび区切り文字。この表示領域のフィールドをマウスでポイントすると、ツールのヒントに、開発者が Ensemble データ変換およびルーティング・ルールからメッセージ本文内のフィールドにアクセスするときに使用できる、構文情報が表示されます。

大規模な仮想ドキュメントのすべてのコンテンツを確認するには、下部のスクロール・バーを右端までドラッグすることが必要になる場合があります。メッセージの表示を広くするには、[全部の内容を表示] リンクまたは [未加工のコンテンツを表示] リンクをクリックします。[全部の内容を表示] では、フィールド単位の形式でメッセージが表示され、[未加工のコンテンツを表示] では、未処理のメッセージの内容が表示されます。これは簡単にコピーしてテキスト・エディタに貼り付けることができます。基礎的な情報は、"Ensemble 仮想ドキュメント" を参照してください。または、特定の種類の仮想ドキュメントに関するドキュメントを参照してください。

関連メッセージのパスのトレース

[ビジュアル・トレース] ページを使用すると、ビジネス・ホスト間の一連の関連メッセージのパスを視覚的にトレースできます。複数の場所からこのツールにアクセスできます。以下に例を示します。

  1. メッセージの参照” に記載の Ensemble, メッセージ・ビューワ ページにアクセスします。

  2. メッセージをクリックします。

  3. [トレース] タブをクリックすると、小型のトレースが表示されます。

  4. [完全なトレースを表示] をクリックします。

[ビジュアル・トレース] ページの左側の領域には、メッセージを処理するビジネス・ホストごとに 1 行ずつのメッセージ・アクティビティの視覚的表現が表示されます。ビジネス・ホストは、ビジネス・サービス、ビジネス・プロセス、およびビジネス・オペレーションにグループ分けされています。

generated description: message visual trace

1 つ以上のビジネス・サービスとビジネス・オペレーションに関する [アーカイブIO] 設定を有効にすると、[ビジュアル・トレース] には Ensemble メッセージのほかに入力データと出力データも表示されます。以下に例を示します。

generated description: message visual trace with io

Note:

このツールで呼び出しを表示すると、長期実行型のビジネス・プロセスからの同期呼び出しが非同期であるかのように表示されます。呼び出しが実際は同期であることに変わりはありません。これは、同期呼び出しの返りを待っている際に Ensemble でシステム・リソースの解放に使用される内部追跡メカニズムの副次的な影響です。

メッセージがある項目から次の項目に送られると、角が丸くなったボックス内で、それら 2 つの項目が矢印によって接続されます。

  • 円でマーキングされたソース項目は、メッセージを送信する項目です。

  • ターゲット項目は、角が丸くなった長方形でマーキングされます。矢印は、ソース項目からこの項目を指します。

どちらの場合も、列の上部でビジネス・ホストの名前を参照できます。

これらの角が丸くなったボックスそれぞれが 1 つのメッセージに対応し、次のような情報が表示されます。

  • 左ボックスの外側の角かっこ内の数字がメッセージの識別子です。

  • 矢印の上にあるボックス内の日時は、メッセージ作成タイム・スタンプを示しています。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

  • 矢印は色で表示されています。通常の要求メッセージの矢印は青で、応答は緑です。メッセージにエラーがあると矢印は赤になります。

  • 矢印の下のテキストはメッセージ名です。

その他の行には、指定されたビジネス・ホストがメッセージを受信し、後でメッセージを送信する日時が表示されます。

完全なトレースで表示されるメッセージが多い場合は、フィルタを使用して表示対象メッセージを制限することが役立つ場合があります。この方法は、ACK メッセージまたはアーカイブ IO メッセージに関連するメッセージを見つけようとしている場合にも役立ちます。[フィルタの適用] ドロップダウンを使用して、以下の方法で表示対象メッセージを制限できます。

  • 特定のメッセージについて一致する要求または応答のみが表示されるようにフィルタリングするには、そのメッセージを選択し、[フィルタの適用] ドロップダウン・メニューから [対応するメッセージ] を選択します。このオプションを選択すると、表示されるメッセージが以下に制限されます。

    • 選択したメッセージのソースにターゲットが設定されたすべての先行メッセージ。

    • 要求メッセージが選択された場合は、対応する応答メッセージ。

    • 応答メッセージが選択された場合は、対応する要求メッセージ。

    • ACK または IOLog メッセージが選択された場合は、対応する要求または応答。

  • メッセージのソースまたはターゲットとして特定のコンポーネントを持つすべてのメッセージが表示されるようにフィルタリングするには、そのコンポーネントの列を選択し、[フィルタの適用] ドロップダウン・メニューから [ホスト] を選択します。このオプションを選択すると、選択したコンポーネントのソースまたはターゲットを持つメッセージのみが表示されます。

  • 特定のメッセージと同じソースおよびターゲットを持つすべてのメッセージが表示されるようにフィルタリングするには、そのメッセージを選択し、[フィルタの適用] ドロップダウン・メニューから [ホスト] を選択します。このオプションを選択すると、選択したメッセージと同じソースおよび同じターゲットを持つメッセージのみが表示されます。

フィルタを適用すると、メッセージ・トレースには、そのトレースで適用されているフィルタが表示されます。以下に例を示します。

Filter = SourceHost:MsgRouter250, TargetHost:TCPOp001

フィルタを適用したら、[フィルタの適用] ラベルが [フィルタの再適用] に変わります。ドロップダウン・メニューの選択値を変更した場合は、[フィルタの再適用] を選択してフィルタを変更する必要があります。

存在するメッセージ数が 1 ページに表示される数を上回っている場合は、[ページあたりのアイテム数] ドロップダウンを使用して表示アイテムの数を調整できます。[アイテムに移動] ドロップダウンを使用するか、[前のページ] および [次のページ] リンクを使用して、ページ間を移動できます。

右側の領域には、トレースで選択されたメッセージの詳細が表示されます。[ヘッダ][本文]および[コンテンツ]のタブには、Ensemble, メッセージ・ビューワ ページと同一の情報が表示されます。“メッセージの詳細表示” を参照してください。

[凡例] をクリックすると、次のような追加情報が記載されたポップアップ・ガイドが表示されます。

generated description: message visual trace legend

メッセージが発信 HTTP アダプタから別の Ensemble ネームスペースに送信されると、受信メッセージには新しい SessionID が割り当てられます。複数のネームスペース間で関係するメッセージを関連付けるには、SendSuperSession 設定を使用できます。この設定が発信 HTTP アダプタに指定されると、アダプタは HTTP ヘッダで SuperSession プロパティを設定します。このヘッダ・プロパティは受信 HTTP アダプタにより保持され、Ensemble プロダクション全体を通じて保持されます。詳細は、"Ensemble での HTTP アダプタの使用法" の “SendSuperSession” を参照してください。

メッセージの再送信

特にメッセージの配信が失敗した場合など、メッセージの再送信が便利なことがあります。(当然ながら、まず、問題の原因を修正します。)メッセージを再送信するには、以下の操作を行います。

  1. メッセージの参照” に記載の Ensemble, メッセージ・ビューワ ページにアクセスします。

  2. 左の列のチェックボックスにチェックを付けて、メッセージを選択します。または、表示内容を適切にフィルタリングしてから、左の列の上部にあるチェックボックスにチェックを付けます。

    メッセージの再送信の前に編集する必要がある場合は、1 つのメッセージを選択します。このページで複数のメッセージを選択した場合、後述の[編集して再送] オプションを使用できません。

  3. [メッセージ再送] をクリックします。

  4. 左の列の上部にあるチェックボックスにチェックを付け、選択したメッセージが複数のページをわたっている場合は、以下のメッセージが表示されます。

    指定の検索条件に一致したメッセージは多いため、すべてを表示できません。このページに表示されていないものも含めて、指定条件に一致するメッセージをすべて再送信する場合、[OK] をクリックします。選択したメッセージのみを再送信するには、[キャンセル] をクリックします。

    ここで、以下のいずれかを実行します。

    • 選択されたすべてのメッセージで続行する場合、[OK] をクリックします。

    • 最初のページに表示されている選択メッセージのみで続行する場合、[キャンセル] をクリックします。

    いずれの場合も、このアクションを後でキャンセルできます。

  5. 選択されたメッセージの詳細が表示されます。このテーブルに表示される情報は以下のとおりです。

    • [セッション] — 各メッセージが属するセッションここをクリックすると、プロダクション内を移動する基本メッセージ・オブジェクトの "ビジュアル・トレース" を表示できます。最初の章の “セッション” を参照してください。

    • [ヘッダ] — メッセージ・ヘッダの ID (およびメッセージ ID)。ここをクリックすると、この特定メッセージの "ビジュアル・トレース" を表示できます。最初の章の “メッセージの基本設定” を参照してください。

    • [メッセージボディ] — メッセージ本文の ID。ここをクリックすると、"メッセージのコンテンツ" を表示できます。

    • [作成] — メッセージ作成のタイム・スタンプ。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

    • [ソース] — メッセージの送信元のビジネス・ホスト。

    • [ターゲット] — メッセージを受信する予定だったビジネス・ホストの名前。このフィールドは、プロダクションのターゲットが実行されていないかどうかも示します。指定したターゲットが実行されていない場合、メッセージは再送信できないことに注意してください。ここをクリックすると、ターゲットのメッセージ・キューのコンテンツが表示されます。

    メッセージを 1000 個以上選択した場合、最初の 1000 個しか表示されませんが、選択した合計数がページに示されます。

  6. 必要に応じて、新しいターゲットのビジネス・ホストを選択します。そのためには、[新ターゲット] で値を選択します。

  7. 必要に応じて、[キューの先頭で再送信] を選択します。

    選択した場合、再送信されるメッセージがターゲット・キューの先頭部に配置されます。これは、メッセージの順序が重要な場合に、先入れ先出し法 (FIFO) 処理を維持するのに役に立ちます。

  8. 以下のいずれかをクリックします。

    • [キャンセル] — このアクションをキャンセルする場合。

    • [再送信] — 指定したとおりにメッセージを再送信する場合。

    • [編集して再送] — 指定したとおりにメッセージを編集して再送信する場合。詳細は、次の項を参照してください。

複数のメッセージを再送する場合は、最も古いものから順に再送されます。

メッセージを再送信する場合、ページに[再送ステータス] 列が追加されて再表示されます。[OK] 以外のステータスは、再送信操作が失敗したことを示しています。再送信メッセージは、同じ[セッション] の識別子を保持し、同一のメッセージ本文を送信しますが、新しい一意の ID を持つ新しいメッセージ・ヘッダも取得するので、元の送信とは別の通信としてプロダクションで認識されます。"ビジュアル・トレース" には、元のメッセージの送信と、それと同じメッセージを使用した再送信操作の両方が示されます。メッセージ・ヘッダの説明には、このメッセージが再送信されたことを示すテキストが記述されています。この説明には、ヘッダ・オブジェクトの元の識別子のほか、それ以降の識別子も記述されています。

エディタの再送信

Ensemble のメッセージ・ビューワで再送信の対象として選択したメッセージが 1 件のみの場合は、そのメッセージ本文を編集してからメッセージを送信できます。

  1. [編集して再送信] をクリックして、Ensemble の[再送信エディタ] ページを表示します。

  2. 入力フィールドを使用してメッセージ本文のデータを編集します。フィールドは、メッセージに応じて異なります。そのメソッドにプロパティがない場合は、何も表示されません。

    仮想ドキュメント・メッセージを編集する場合、メッセージ・コンテンツのデータを編集できます。また、コンテンツ・ボックスの下のボックスでオブジェクトのプロパティを編集することもできます。

  3. [再送信] をクリックして、編集済みメッセージ本文を持つメッセージ・ヘッダの新規コピーをターゲットに送信します。

  4. 再送信が正常に終了すると、ページが更新され、[ヘッダ][メッセージ本文] が新しい識別子となったテキストが表示されます。[トレース] をクリックして、再送信メッセージのビジュアル・トレースを表示します。

メッセージ・ビューワで使用される SQL クエリの表示

デバッグ用に、メッセージ・ビューワで現在使用される SQL クエリを表示する場合があります。そのためには、以下のように操作します。

  1. ターミナルを起動し、作業用のネームスペースに変更し、次のコマンドを入力します。

     Set ^Ens.Debug("UtilEnsMessages","sql")=1
    

    このコマンドには、ユーティリティ・デバッグのグローバルでコードを設定します。

  2. メッセージの参照” に記載の Ensemble, メッセージ・ビューワ ページにアクセスします。

    このページには[クエリ表示] ボタンが含まれていますが、このボタンは前述したグローバルが設定されている場合のみ表示されることに注意してください。

  3. [クエリ表示] をクリックします。

一時停止メッセージの管理

前述のとおり、失敗したメッセージのステータスを一時停止に設定するビジネス・オペレーションがあります。一方、手動でメッセージを一時停止することもできます。

すべての[一時停止]メッセージは、特別なキューに自動的に格納され、管理ポータルのEnsemble, 一時停止のメッセージページに表示されています。このページを使用して、失敗した理由を判断し、問題を修正した後、メッセージを再送信することができます。例えば、外部の宛先が稼動していないことに問題がある場合は、そのサーバとの通信を再確立するための変更が可能です。接続を再確立した後、中断中のメッセージをこのページから外部サーバに再送信できます。または、メッセージを破棄または削除できます。

一時停止のメッセージを管理するには、以下の操作を行います。

  1. [Ensemble] をクリックします。

  2. [表示] をクリックします。

  3. [一時停止のメッセージ] をクリックします。

  4. 現在実行中のプロダクション内のメッセージが一時停止されている場合、そのメッセージは、以下の情報と共に、テーブルに表示されます。

    • [ID] — メッセージの ID。最初の章の “メッセージの基本設定” を参照してください。

    • [作成日時] — メッセージ作成のタイム・スタンプ。最初の章の “メッセージの呼び出しスタイルおよびタイム・スタンプ” を参照してください。

    • [セッション] — このメッセージに関連付けられたセッション ID。最初の章の “セッション” を参照してください。

    • [エラーの有無]— メッセージを送信したビジネス・ホストに返された結果の簡単な概要。

      OK は正常動作を意味し、Retry はメッセージが失敗したが、それを送信したビジネス・ホストがそのメッセージを再試行するように構成されていることを意味します。Error はアクティビティのどこかでエラーが報告されたことを示します。Inactive はメッセージを送信したビジネス・ホストが [非活動タイムアウト] 設定より長い間アイドル状態だったことを意味します。診断が必要な場合があります。

    • [ソース構成名] — メッセージを送信したビジネス・ホスト。

  5. 左の列のチェックボックスにチェックを付けて、メッセージを選択します。

  6. 次に、以下のボタンのいずれかを使用します。

    • [再サブミット] — これをクリックしてメッセージを再送信します。正常に再送信されたメッセージごとに、以下のようなメッセージが表示されます。

      中断されたメッセージ ID '7' の再送信が完了しました
      

      再送信するメッセージでは、前回の送信時と同じセッション識別子が保持され、同様に同じヘッダ・オブジェクトが送信されます。メッセージ・ヘッダの説明には、これが "再送信" メッセージであることを示すテキストが記述されています。

    • [編集して再送] — ここをクリックして、1 件のメッセージを編集してから再送信します。このコマンドは、選択したメッセージが 1 件のみである場合に有効です。詳細は、以下の項 を参照してください。

    • [破棄] — ここをクリックして、このページのリストからメッセージを削除します。メッセージには [Ensemble メッセージ・ビューワ] から引き続きアクセスでき、そのステータスは、ここではDiscardedとなります。

    • [削除] — ここをクリックすると、Ensemble データベースからメッセージのすべてのレコードが削除されます。

    WARNING:

    [破棄] や [削除] の操作を元に戻すことはできません。

編集して再送信するメッセージでは、前回の送信時と同じ[セッション]識別子が保持され、同じ[ヘッダ]・オブジェクトが含まれますが、[メッセージボディ] オブジェクトは新しい識別子を保持します。元のメッセージ・ヘッダの説明には、このメッセージが再送信されたものであることを示すテキストと元の Msg Body オブジェクトの識別子が記述されています。

メッセージを再送信するための再送信エディタ

Ensemble, 一時停止のメッセージ ページから再送信の対象として選択したメッセージが 1 件のみの場合は、そのメッセージ本文を編集してからメッセージを再送信できます。

  1. [編集して再送信] をクリックして、Ensemble の [再送信エディタ] ページを表示します。

  2. 入力フィールドを使用してメッセージ本文のデータを編集します。このフィールドは、メッセージのメソッド・シグニチャに応じて異なります。そのメソッドにプロパティがない場合は、何も表示されません。

    仮想ドキュメント・メッセージ (HL7 や X12 など) を編集する場合、メッセージ・コンテンツのデータを編集できます。また、コンテンツ・ボックスの下のボックスでオブジェクトのプロパティを編集することもできます。

  3. [再送信] をクリックすると、メッセージ・ヘッダは元のままで編集済みメッセージを本文のコンテンツとしたメッセージがターゲットに再送信されます。

  4. 再送信が正常に終了すると、Header 識別子と Msg Body 識別子を示したテキストでページが更新されます。[トレース] をクリックして、再送信メッセージのビジュアル・トレースを表示します。

FeedbackOpens in a new tab