前のトピック: 論理トランザクション次のトピック: トランザクションの追跡


一致許容差

一致許容差は、特定のトランザクションが受信トランザクションに一致するかどうかを VSE が判断する方法を定義します。

一致許容差のレベルは以下のとおりです。

操作

最も許容度の高い一致許容差です。 受信トランザクションの操作名は、記録されたトランザクションの名前に一致する必要があります。

シグネチャ

操作名が一致する必要があり、また引数の名前が追加や削除なしで正確に一致する必要があります。 引数の順序は同じである必要はありません。

完全

シグネチャの一致に加えて、引数一致演算子の定義に従って、各引数の値が記録された値と一致する必要があります。

引数一致演算子

要求のすべての引数には、一致演算子があります。 完全一致操作では、この演算子によって、受信要求の引数の値をサービス イメージの対応する引数の値とどのように一致させるかを制御します。

使用可能な一致演算子は以下のとおりです。

すべて

常に true を返します。 仮想サービス レコーダは、引数が日付であると判断した場合、デフォルトで「すべて」による比較を行います。 この引数の値には、すべての値が一致します。 シグネチャ/メタの一致が機能するには引数が存在する必要がありますが、値は無視され、空白または NULL になります。

= 等しい

値が同じ場合に true を返します。

!= 等しくない

値が異なる場合に true を返します。

<より小さい

受信した値がサービス イメージの値より小さいか、前か、または早い場合に true を返します。

<= 以下

受信した値がサービス イメージの値より小さいか、前か、早いか、または等しい場合に true を返します。

> より大きい

受信した値がサービス イメージの値より大きいか、後か、または遅い場合に true を返します。

>= 以上

受信した値がサービス イメージの値より大きいか、後か、遅いか、または等しい場合に true を返します。

正規表現

受信した値(文字列)が、サービス イメージの値に正規表現として一致する場合に true を返します。

プロパティ式

値は、二重中かっこで囲まれたスクリプト式({{ }})の形式である必要があります。 このプロパティまたは式は評価されます。 結果が Y、y、T、t、または ON で始まる場合、引数は一致したと見なされます。 スクリプトで参照されていない場合、インバウンド要求の引数値は無視されます。

注: 引数が日付としてマークされている場合、比較を行う前に、比較される要求の値が日付に変換されます。

メタ トランザクションおよび特定の応答

VSE は、会話の一致を検索する場合、メタ トランザクションのみを検索します。 メタ トランザクションは、「完全」の一致許容差を持つことはできません(デフォルトは「シグネチャ」)。 各メタ トランザクションには、1 つ以上の特定の応答があります。これらの応答は、任意の一致許容差を持つことができます(デフォルトは「完全」)。

メタ トランザクションの特定の応答がいずれも一致しない場合、メタ トランザクションに対して指定された応答が使用されます。

次の応答の選択方法

  1. 会話に受信要求が存在する場合、ナビゲーション許容差および上記で説明したその他のルールに基づいて一致を検索します。
  2. 現在の会話で何も見つからない場合は、別の会話を検索します(ナビゲーション許容差が CLOSE でない場合)。
  3. 会話の一致が存在し、(単なるメタ一致ではなく)特定の応答が見つかった場合は、それを使用します。
  4. それ以外の場合には、ステートレス トランザクションで特定の一致を検索し、見つかった場合はそれを使用します。
  5. ステートレス リストに特定の一致が存在しない場合で、会話リストでメタ一致が見つかった場合は、そのメタ一致を使用します。
  6. 会話の一致がまったく存在しない場合で、ステートレス リストでメタ一致が見つかった場合は、メタ一致を使用します。
  7. 「一致が見つかりません」で失敗した場合、サービス イメージで指定された「不明な会話型応答」または「不明なステートレス応答」のいずれかを返します。 使用するプロトコルまたはハンドラによって、応答が上書きされる場合があります。

一致の失敗をデバッグする方法

一致に失敗した場合、LISA_HOME\logging.properties ファイルを開き、log4j.logger.VSEDEBUG または TRACE に設定します。 この設定により、VSE は vse_xxx.log ファイル(xxx はサービス イメージ名)に詳細なログを記録します。 log4j.logger.VSE プロパティにより、何が一致し、何が一致しなかったかも正確に報告されます。

実稼働で使用する場合は、log4j.logger.VSE プロパティを INFO または WARN に設定します。 必要以上に、DEBUG または TRACE に設定したままにしないでください。