Программный доступ к Websphere Application Server и его ресурсам - PullRequest
2 голосов
/ 15 июля 2011

Это мой самый первый вопрос о StackOverflow, поэтому, пожалуйста, потерпите меня.

Чего я пытаюсь достичь?

Мне нужно написать отдельную программу для доступа к конкретному экземпляру или нескольким экземплярам Websphere Application Server и получения от него подробной информации. Что касается моих исследований, есть два способа сделать это.

  1. Адаптеры
  2. Соединители

В настоящее время я использую подход «Соединители», а также SOAP-соединитель (для удобства межсетевого экрана)

Итак, мой код будет примерно таким ...


// 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());
    }
}

С помощью этого фрагмента кода я могу получить список всех MBean-компонентов в этом конкретном экземпляре WAS (C: \ Program Files \ IBM \ WebSphere \ AppServer \ profile \ AppSrv01), и он успешно печатает ключ. - Список недвижимости.

Теперь у меня есть список MBeans. Что дальше? Ссылка: _ http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.javadoc.doc/web/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. Поэтому, пожалуйста, предоставьте решение / пример кода, который помог бы мне получить информацию от любого MBean, который может предложить экземпляр WAS. (С использованием JMX)

Дополнительные детали: IBM WebSphere Application Server, 7.0.0.0 (базовая установка)

Заранее спасибо, AJ

Ответы [ 2 ]

1 голос
/ 15 июля 2011

IP-адрес, который вы можете получить косвенным путем, запросив все серверы и проверив, запущено ли приложение на каждом из них, а затем обнаружив получение хоста с каждого сервера.Я не уверен, доступен ли номер сборки.Что означает «в обслуживании»?

Более подробную информацию вы можете получить из MBeans Application и J2EEApplication (JSR 88).Итак, ObjectName ("WebSphere: type = Application, name = myapp"), который является специфичным для WebSphere, или ObjectName ("WebSphere: type = J2EEApplication, name = myapp").

Вы можете получить информацию о конфигурациииспользуя ConfigServiceProxy и запрашивая getid ("/ DefaultApplication: myapp /").Вы можете посмотреть на PROFILE_HOME / config / cell / CELL / Applications / APP.ear / deployments / APP / deploy.xml, чтобы увидеть вид информации, доступной из конфигурации.Вы можете сопоставить его с информацией о типе в WAS_HOME / web / configDocs /, начиная с пакета appdeployment.

0 голосов
/ 25 июля 2011

Попробуйте

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

Где находится идентификатор Mbean

...