2011-07-15 16 views
2

これには、StackOverflowの上の私の非常に最初の質問ですが、私と一緒に負担してください。プログラムへのアクセスは、WebSphere Application Serverとそのリソース

何を達成しようとしていますか?

私は、WebSphere Application Serverの特定のインスタンスまたは複数のインスタンスにアクセスし、そこから詳細を取得するには、スタンドアロンのプログラムを記述する必要があります。私の研究が進んでいる限り、これを行うには2つの方法があります。私は現在、だから、私のコードはものになるだろう「コネクタ」アプローチと(そのファイアウォールの使いやすさに)それもSOAPコネクタ

を取っています

  1. アダプタ
  2. コネクタ

このように..


// Initialize the AdminClient. 
Properties adminProps = new Properties(); 

adminProps.setProperty("type", AdminClient.CONNECTOR_TYPE_SOAP); 
adminProps.setProperty("host", "localhost"); 
adminProps.setProperty("port", "8880"); 
AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps); 

String query = "WebSphere:*"; 
//String query = "WebSphere:type=Server,*"; 
ObjectName queryName = new ObjectName(query); 
Set s = adminClient.queryNames(queryName, null); 
if (!s.isEmpty()) { 
    iter = s.iterator(); 
    while (iter.hasNext()) { 
     ObjectName nodeagent = (ObjectName) iter.next(); 
    System.out.println("*********************************************"); 
     System.out.println("KeyPropertyList: " + nodeagent.getKeyPropertyListString()); 
    } 
} 

このコードを使用すると、WASの特定のインスタンス(C:¥Program Files¥IBM¥WebSphere¥AppServer¥profiles¥AppSrv01)上のすべてのMBeanのリストを取得できます。キー - プロパティリスト

今私は、MBeanのリストを持っています。次は何? リンク:_HTTP:?ここ//publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jspトピック=/com.ibm.websphere.javadoc.doc /ウェブ/ mbeanDocs/index.htmlを

私のクエリです:

は、どのように私は私が興味を持って、特定のMBeanのインスタンスを取得し、すべての関連するプロパティを取得するのですか?例えば

AppManagement appM = AppManagementProxy.getJMXProxyForClient (adminClient); 
System.out.println(appM.listApplications(null, null, null)); 

WASの特定のインスタンス上のすべてのアプリケーション(複数可)をリストし、[クエリ、SamplesGallery、ivtApp、DefaultApplication、PlantsByWebSphere]

私が興味を持っていますインストールされているアプリケーションについてもっと知ることで、彼らは起動していますか?もしそうなら、IPアドレス、ビルド番号はメンテナンス中などです(例として引用しています)。MBeanが提供する可能性のあるアプリケーションのすべての可能な情報を得ることができれば、 )

上記は単なる例であり、私はMBeansをさらに使いたいと思います。ですから、WASインスタンスが提供しなければならない任意のMBeanから情報を取得するのに役立つソリューション/サンプルコードを提供してください。 (使用してJMX)

追加詳細: IBM WebSphere Application Serverの、7.0.0.0(基本インストール)事前に

おかげで、 AJ

答えて

1

IPを使用すると、すべてのサーバーを照会して確認することで、間接的に得ることができる対処アプリケーションがそれぞれのアプリケーションで実行されている場合は、各サーバーからホストを取得することができます。ビルド番号があるかどうかはわかりません。 「保守中」とはどういう意味ですか?

詳細については、アプリケーションおよびJ2EEApplication(JSR 88)MBeanから入手できます。したがって、WebSphere固有のObjectName(「WebSphere:type = Application、name = myapp」)またはObjectName(「WebSphere:type = J2EEApplication、name = myapp」)。

ConfigServiceProxyを使用してgetid( "/ DefaultApplication:myapp /")を照会すると、設定情報を取得できます。 PROFILE_HOME/config/cells/CELL/applications/APP.ear/deployments/APP/deployment.xmlを見ると、設定から利用可能な情報の種類を見ることができます。 appdeploymentパッケージから、WAS_HOME/web/configDocs /のタイプ情報と照合することができます。

+0

は、あなたの迅速な応答をありがとうのMBeanの識別子である

String query = "WebSphere:*,mbeanIdentifier=<XXX>"; 

を試してみてください。メンテナンス中は、メンテナンス中にアプリケーションがダウンしている可能性があります。だから、それがダウンしているとき、おそらくそれからデータを得ることはできません。とにかく、ConfigService型のMBeanにConfigServiceProxyを使用することができます(間違っている場合は修正してください)。 MBeanにアクセスするためのより包括的なリストと、ここで言及したようなプロキシ(AppManagementProxy、ConfigServiceProxy)を持っているかどうか、または煩雑でエラーが発生しやすいAdminClient.invoke(ObjectName、operation、params、署名);方法? – ADJ

+0

はい、ConfigServiceProxyは、すべてのWAS構成をナビゲートするためのMBeanであるConfigServiceへのアクセスを許可します。プロキシの包括的なリストがあるかどうかはわかりません。私は、MBeanのやりとりを使ってメインロジックが乱雑にならないように、あなた自身で作成することをお勧めします。 –

+0

このような迅速な対応にもう一度感謝します。これは私が最初にやっていることです。だから、自分のプロキシを書くためのチュートリアルを私に指示できますか?私たちが最後に書くヘルパーのようなものでしょうか? MBeanHelper.getServerMbeansのようなもの? (私たちによって書かれたMBeanHelperクラス) – ADJ