アプリケーションがStrutsを使用してユーザーリクエストに対するサービスを実行した時、AppDynamicsでは個々のStrutsアクション呼び出しをインターセプトし、Strutsのアクション名に基づいてユーザーリクエストに名前を付けます。Strutsエントリポイントは、呼び出されているStrutsアクションです。
AppDynamics では、以下の Struts バージョンに対応しています。
通常、Strutsアクションの呼び出しはディスパッチャーServletに先行されますが、識別はStrutsアクションまで延期されます。これにより、ユーザリクエストがディスパッチャー Servlet の汎用 URL ではなく、必ず Struts アクションに基づき識別されるようにできます。
Strutsベースのトランザクションに対する応答時間は、Strutsエントリポイントが呼び出されたときに測定されます。
Strutsリクエスト名
Strutsアクションが呼び出されると、AppDynamicsではデフォルトでStrutsアクションの名前とメソッド名を使用してリクエストを識別します。つまり、自動検出されたすべての Struts ベースのトランザクションは、規則 <Action Name>.<Method Name>
を使用して命名されます。
たとえば、「ViewCart」というアクションが SendItems() で呼び出された場合、トランザクションは「ViewCart.SendItems
」と命名されます。
Struts 1.x の場合、メソッド名は常に「execute
」です。
自動検出されたトランザクションは、名前の変更または除外をすることが可能です。「ビジネストランザクションの整理」を参照してください。
Strutsトランザクションのカスタムマッチルール
Strutsベースのトランザクションの命名を詳細にコントロールするには、カスタムマッチルールを使用します。
カスタムマッチルールを使用すると、Strutsベースのリクエストにカスタム名を指定することができます。また、カスタムマッチルールを使用して、複数のStruts呼び出しを1つのビジネストランザクションにまとめることも可能です。構成画面へのアクセス方法については、カスタムマッチルールを参照してください。
Strutsトランザクションに対する一致基準には、Strutsアクションクラス名、Strutsアクション名、Strutsアクションメソッド名があります。
Strutsアクションまたはメソッドの除外ルール
特定の Struts アクションおよびメソッドがモニタされないようにするには、カスタム除外ルールを追加します。Strutsの除外ルール基準は、カスタムマッチルールと同じです。特に、次の項で説明するように、カスタムビルドのディスパッチ Servlet の除外が必要になる場合があります。
カスタムビルドのディスパッチservletの除外
Strutsアクションが呼び出されると、トランザクションをエントリポイントとして囲みます。Strutsアクションはインターフェイスではないため、AppDynamicsではStrutsの呼び出しハンドラをインストゥルメント化してアクション名を取得します。呼び出しハンドラにより、呼び出されたアクション名のついたJavaエージェントが取得できます。ディスパッチャーServletがカスタムビルドでインストゥルメンテーションから除外されていない場合、正しいエントリポイントがインストゥルメント化されず、ビジネストランザクションが誤認される恐れがあります。
この問題を解決するには、ディスパッチャーservletにカスタム除外ルールを追加するか、BCIの除外を追加します。