アプリケーションが Struts を使用してユーザーリクエストに対するサービスを実行した時、Splunk AppDynamics では個々の Struts アクション呼び出しをインターセプトし、Struts のアクション名に基づいてユーザーリクエストに名前を付けます。Strutsエントリポイントは、呼び出されているStrutsアクションです。

Splunk AppDynamics では、以下の Struts バージョンに対応しています。

  • Struts 1.x
  • Struts 2.x

通常、Strutsアクションの呼び出しはディスパッチャーServletに先行されますが、識別はStrutsアクションまで延期されます。これにより、ユーザーリクエストがディスパッチャー Servlet の汎用 URL ではなく、必ず Struts アクションに基づき識別されるようにできます。 

Strutsベースのトランザクションに対する応答時間は、Strutsエントリポイントが呼び出されたときに測定されます。

Strutsリクエスト名

Struts アクションが呼び出されると、Splunk AppDynamics ではデフォルトで Struts アクションの名前とメソッド名を使用してリクエストを識別します。したがって、自動的に検出されたすべての Struts ベースのトランザクションは、規則 <Action Name>.<Method Name> を使用して命名されます。

たとえば、SendItems() を使用して ViewCart というアクションが呼び出された場合、トランザクションの名前は ViewCart.SendItems になります。

Struts 1.x の場合、メソッド名は常に execute です。

自動検出されたトランザクションは、名前の変更または除外をすることが可能です。「ビジネストランザクションの整理」を参照してください。

Strutsトランザクションのカスタムマッチルール

Strutsベースのトランザクションの命名を詳細にコントロールするには、カスタムマッチルールを使用します。

カスタムマッチルールを使用すると、Strutsベースのリクエストにカスタム名を指定することができます。また、カスタムマッチルールを使用して、複数のStruts呼び出しを1つのビジネストランザクションにまとめることも可能です。構成画面へのアクセス方法については、カスタムマッチルールを参照してください。

Strutsトランザクションに対する一致基準には、Strutsアクションクラス名、Strutsアクション名、Strutsアクションメソッド名があります。

Strutsアクションまたはメソッドの除外ルール

特定の Struts アクションおよびメソッドがモニターされないようにするには、カスタム除外ルールを追加します。Strutsの除外ルール基準は、カスタムマッチルールと同じです。特に、次の項で説明するように、カスタムビルドのディスパッチ Servlet の除外が必要になる場合があります。 

カスタムビルドのディスパッチservletの除外

Struts アクションが呼び出されると、トランザクションをエントリポイントとして区別できます。Splunk AppDynamics は、Struts アクションがインターフェイスではないため、アクション名を取得するために Struts 呼び出しハンドラをインストゥルメント化します。呼び出しハンドラにより、呼び出されたアクション名のついたJavaエージェントが取得できます。ディスパッチャーServletがカスタムビルドでインストゥルメンテーションから除外されていない場合、正しいエントリポイントがインストゥルメント化されず、ビジネストランザクションが誤認される恐れがあります。

この問題を解決するには、ディスパッチャーservletにカスタム除外ルールを追加するか、BCIの除外を追加します。