前のトピック: シグネチャの指定次のトピック: データベースのシンクの設定


VSE のインスツルメンテーション ルール

エージェントの rules.xml ファイルに virtualize ディレクティブを追加することで、VSE 機能をカスタマイズできます。

virtualize ディレクティブは、rules.xml ファイルの group エレメントまたは agent エレメント内に配置することができます。

 

仮想化用のクラスの追加(レコーディング モードおよび再生モード)

<virtualize class="クラス名"/>

例:

<virtualize class="javax.ejb.SessionBean"/>

 

特定のプロトコルのセッションの構成要素を確認する方法のエージェントへの指示

セッション識別子を返すコード スニペットを指定することにより、このタスクを実行します。

<virtualize>
   <track class="クラス名" method="メソッド名" signature="シグネチャ" push="true|false">
      <code><![CDATA[" および "]]></code>
   </track>
</virtualize>

シグネチャの形式については、「シグネチャの指定」を参照してください。

例:

<virtualize>
   <track class="javax.servlet.http.HttpServlet" method="service" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" push="false">
      <code><![CDATA["return $1.getSession().getId();"]]></code>
   </track>
</virtualize>

<virtualize>
   <track class="javax.ejb.SessionBean" method="setSessionContext" signature="(Ljavax/ejb/SessionContext)V" push="true">
      <code><![CDATA["return $1.getEJBObject().getHandle().toString();"]]></code>
   </track>
</virtualize>

<virtualize>
   <track class="javax.ejb.EntityBean" method="setEntityContext" signature="(Ljavax/ejb/EntityContext)V" push="true">
      <code><![CDATA["return $1.getPrimaryKey().toString();"]]></code>
   </track>
</virtualize>

これらの例はエージェント内にハードコードされているため、rules.xml ファイル内には必要ありません。 ただし、これらの行では、エージェントを再コンパイルせずに HTTP および EJB 以外の任意の数のプロトコルに対してプロセスを実装できるように、プロセスの動作を示しています。

class 属性の値は、そこからセッションへのアクセスを取得するクラスです。

method および signature 属性の値は、呼び出されたときにセッション識別子を計算するメソッドを決定します。 この計算では、code 属性の値を使用します。 $0 はソース オブジェクトを表します。 $1$2 などはメソッドの引数です。

push 属性は、VSE フレームによって後で使用するためにそのセッションを格納する方法を指定します。

最も内側のセッション(識別子)は、VSE によって com.itko.lisa.remote.vse.VSEFramegetSessionId() メソッドで返されます。 詳細については、LISA_HOME\doc ディレクトリで、JavaDocs を参照してください。