例: wsadmin スクリプトを使用した実行中のオブジェクトの識別
AdminControl オブジェクトを使用して、実行している MBean と対話します。
WebSphere® Application Server では、MBean は実行中のオブジェクトを表します。 MBean サーバーに対して、そこに含まれているオブジェクトを問い合わせることができます。
- queryNames コマンドを使用して、実行中の MBean オブジェクトを参照します。
以下に例を示します。Jacl を使用:
$AdminControl queryNames *
Jython の使用:このコマンドは、すべての MBean タイプのリストを戻します。 スクリプト・クライアントの接続先のサーバーによっては、 異なるサーバーで実行される MBean をリストに含むことができます。print AdminControl.queryNames('*')
- クライアントがスタンドアロン WebSphere Application Server に接続されている場合、 リストにはそのサーバーで実行される MBean が含まれます。
- クライアントがノード・エージェントに接続されている場合、 リストにはノード・エージェントで実行する Mbean と、 そのノード上のすべてのアプリケーション・サーバーで実行する MBean が含まれます。
- クライアントがデプロイメント・マネージャーに接続されている場合、リストには、デプロイメント・マネージャーで実行されている MBean、そのデプロイメント・マネージャーと通信しているすべてのノード・エージェント、およびそれらのノード・エージェントが処理するそのノード上のすべてのアプリケーション・サーバーが含まれます。
- queryNames コマンドが戻すリストは、JMX ObjectName オブジェクトのストリング表現です。
以下に例を示します。
この例は、MyNode 上の server1 で実行する TraceServer オブジェクトを表しています。WebSphere:cell=MyCell,name=TraceService,mbeanIdentifier=TraceService, type=TraceService,node=MyNode,process=server1
- 単一の queryNames 引数は、検索する ObjectName オブジェクトを表します。
例にあるアスタリスク ("*") は、単に「すべてのオブジェクトを戻す」ことを意味しますが、
さらに明確に特定することができます。
例に示すように、ObjectName には、ドメインとキー・プロパティーのリストという 2 つの部分があります。
WebSphere Application Server によって作成された MBean の場合、ドメインは WebSphere です。
queryNames を呼び出すときにドメインが指定されていないと、
スクリプト・クライアントは、ドメインとして WebSphere を想定します。
これは、最初の照会例が、以下と等しいことを意味します。
Jacl を使用:
$AdminControl queryNames WebSphere:*
Jython の使用:AdminControl.queryNames('WebSphere:*')
- WebSphere Application Server は、ObjectName オブジェクトに以下のキー・プロパティーを含みます。
- name
- type
- セル
- ノード
- process
- mbeanIdentifier
Jacl を使用:$AdminControl queryNames WebSphere:type=Server,node=myNode,*
Jython を使用:この例では、ノード myNode を実行しているサーバー・オブジェクトを表す、 すべての MBean のリストが戻されます。 ObjectName オブジェクトの終わりにある * は、JMX のワイルドカード指定です。 例えば、次のように入力した場合:AdminControl.queryNames('WebSphere:type=Server,node=myNode,*')
Jacl を使用:$AdminControl queryNames WebSphere:type=Server,node=myNode
Jython の使用:queryNames への引数がワイルドカードでないため、空のリストが戻されます。 実行しているサーバー MBean で、 キー・プロパティーがこれらに完全に一致しており、それ以外のプロパティーを持たないものはありません。print AdminControl.queryNames('WebSphere:type=Server,node=myNode')
- 特定のノード上で実行しているアプリケーションを表す MBean をすべて参照したい場合は、
次の例を呼び出します。
Jacl を使用:
$AdminControl queryNames WebSphere:type=Application,node=myNode,*
Jython の使用:print AdminControl.queryNames('WebSphere:type=Application,node=myNode,*')