前のトピック: Java エージェントに対する開発次のトピック: エージェント ディスカバリ API


エージェントの一般的な API

注: このトピックで説明するインターフェースおよびクラスに関する詳細情報は、エージェントの JavaDocs で表示できます。 JavaDocs は、LISA_HOME\doc ディレクトリにあります。

ほとんどのクライアント API では、ターゲットとしてエージェントを指定する必要があります。 この指定は、com.itko.lisa.remote.IAgentInfo タイプのパラメータを渡すことで実行されます。 このパラメータは、エージェントおよびその基本情報の一部を一意に識別するオブジェクトを表します。

/** このエージェントまたはコンソールの一意の識別子。 指定した場合、GUID は VM のライフスパンの間、永続します */
 public long getGuid();
 public void setGuid(long guid);
 
 /** 手動で指定するか、システム プロパティから生成される、このエージェントを識別するための読みやすい名前 */
 public String getName();
 public void setName(String name);
 
 /** このオブジェクトが生成されたマシンの名前(使用可能な場合) */
 public String getMachine();
 public void setMachine(String machine);
 
 /** このオブジェクトが生成されたマシンの IP (使用可能な場合) */
 public String getIp();
 public void setIp(String ip);
 
 /** このオブジェクトが実行されている JVM の作業ディレクトリ */
 public String getWorkingDir();
 public void setWorkingDir(String workingDir);
 
 /** java.class.path プロパティによって返されたクラスパス */
 public String getClasspath();
 public void setClasspath(String classpath);
 
 /** java.library.path プロパティによって返されたライブラリ パス */
 public String getLibpath();
 public void setLibpath(String libpath);
 
 /** エージェントの場合、呼び出された main メソッドを含む java クラスを返します */
 public String getMainClass();
 public void setMainClass(String mainClass);
 
 /** コマンドラインの省略版(表示用のため正確でない可能性あり) */
 public String getCommandLine();
 
 /** このオブジェクトが送受信された時間を追跡するための一時的なフィールド */
 public Date getGenerationTime();
 public void setGenerationTime(Date time);
 
 /** このエージェント上の API を JMS 経由で呼び出すために必要なパスワードを追跡するための一時的なフィールド */
 public String getToken();
 public void setToken(String token);

API の一部は、com.itko.lisa.remote.client.AgentClient から離れて直接確認することができます。 このリストは、すべてを網羅していませんが、ほとんどのクライアントの大半のニーズを満たしています。

/** 特定のエージェントのすべてのディスカバリと情報を担当するクラスを取得します */
 public DiscoveryClient getDiscoveryClient();
 
 /** トランザクション関連のすべての操作を担当するクラスを取得します */
 public TransactionsClient getTransactionClient();
 
 /** VSE 関連のすべての操作を担当するクラスを取得します */
 public VSEClient getVSEClient();
 
 /**
  * 検出されたすべてのエージェントを取得します。これは、その他すべての API コールで使用される IAgentInfos を取得するメイン API です
  * @param tokens: エージェントの GUID または名前とトークンのマップ、トークンでセキュリティが有効にされたエージェントがない場合は null
  * @return: 現在オンラインのエージェントを表す IAgentInfo オブジェクトのセット
  */
  public Set getRemoteAgentInfos(Map tokens);
 
 /**
  * エージェントのオンライン情報を登録されているリスナに転送します
  * @param info: オンラインになったことが検出されたエージェント
  */
  public void onAgentOnline(IAgentInfo info);
 
 /**
  * エージェントのオフライン情報を登録されているリスナに転送します
  * @param info: オフラインになったことが検出されたエージェント
  */
  public void onAgentOffline(IAgentInfo info);
 
 /**
  * 指定したエージェントの任意のコードを評価します
  * @param info: このコードが評価されるエージェント
  * @param input: 実行するコード。 変数 '_agent' はエージェント インスタンスを表します。
  * @return: コードによって返される値
  * @throws JMSInvocationExceptionthrown: コードがエージェントでスローした場合
  */
 public Object eval(IAgentInfo info, String input) throws JMSInvocationException