演習: jacl スクリプトの記述

このタスクを行う理由とその時期

このスクリプトの基本概念を使用して、システム内の MBean のどれとでも通信できます。必要なものは、MBean の名前とタイプ、および MBean で使用可能なメソッドと属性のみです。getAttribute コマンドと setAttribute コマンドは、属性に対して使用します。invoke コマンドはメソッドに対して使用します。JMX セキュリティー MBean を管理する .Jacl スクリプトを作成するには、次のステップに従います。
注: 各ステップのコードの前には、コードの動作を説明した記述があります。

このタスクのステップ

  1. nodename を決定する。

    以下に示すスクリプトの最初の部分では、nodename を決定しています。nodeName が正しく指定されない場合は、正しい構文がプリントされ、スクリプトが終了します。

    # read and validate arguments
    
        if {{$argc == 1 } && { [lindex $argv $i] == "-nodeName" } {
                set nodeName [lindex $argv $i]
        
  2. MBean を識別する。
    MBean は、タイプと名前によって識別されます。
    注: この場合、使用する特定の MBean がわかっているので、名前とタイプはハードコーディングされています。
    スクリプトの後半では、MBean を識別します。
    # these two variables, mbeanName and mbeanType are used
      to uniquely identify the mbean.
           # for this sample, the mbean that access relationship
             services will be used.
    
           set mbeanName"RelService"
           set mbeanType"WBIRelServices"
  3. MBean を位置指定して、参照を設定する。
    ここに示されるコードを使用して、MBean の参照を設定します。
    # locate the mbean and set a reference to it in "relSvcsMBean" variable
    
           set relSvcsMBean [$AdminControl queryNames
               name=$mbeanName,node=$nodeName,type=$mbeanType,*]
  4. getAttribute コマンドを使用してリレーションシップを呼び出す。

    この特定の MBean のドキュメンテーションでは、allRelationshipNames という名前の属性が定義されています。 getAttribute コマンドを使用して、その属性について MBean に問い合わせます。 属性値は、そのコマンドを呼び出す次のステップでステップスルーするリストになります。

    # request the list of relationships from the mbean
    
           set relationships
            [$AdminControl getAttribute $relSvcsMBean allRelationshipNames]
  5. 各リレーションシップ名のコマンドを呼び出し、その名前をプリントして、MBean に戻って追加情報を入手します。
    この例では、特定のリレーションシップ名の単一パラメーターを持つ getAllRoleNames というメソッドを、MBean によって定義しています。invoke コマンドを使用してこのメソッドを呼び出すと、メソッドは現在のリレーションシップ名を渡します。リレーションシップ内のロールごとに、ロール名がプリントされます。
    # loop through the list of role names and print name
    
             foreach roleName $roles {
               puts "    Role: $roleName"
             }
          }
        } else {
             # arguments were not correct, print correct syntax
                puts "Usage: wsadmin -f RelServicesAdmin.jacl -nodeName nodeName"
        }

結果

これで、リレーションシップを呼び出すスクリプトの記述が終了しました。

(c) Copyright IBM Corporation 2005, 2006.
このインフォメーション・センターには Eclipse テクノロジー (http://www.eclipse.org) が採用されています。