В данном разделе описывается, как выполнять распространенные административные задачи для корпоративных приложений.
Новинка V6.1.
Функции управления приложениями, такие как инсталляция, редактирование и обновление, которые предоставляет AdminApp были упрощены путем использования шаблона регулярных выражений вместо указания всех параметров. Чтобы указать в качестве мишени все Web — модули, можно указать в качестве шаблона URI строку *war* на этапе
MapModulesToServer. Команды инсталляции и обновления теперь поддерживают указание сервера или узла в качестве заданной по умолчанию цели для инсталляции или обновления. В одной команде теперь можно указать несколько целей, что позволяет избежать повторения команды для каждой цели. Указываемый впереди разделитель «+» или «-» используется в операциях инсталляции и обновления AdminApp для добавления или удаления целей. При отсутствии разделителя существующие цели заменяются указанными, как это было в версиях 6.0.x.
Просмотр установленных приложений
Используйте объект AdminApp для просмотра приложений, инсталлированных на сервере приложений. В примере 5.32 показано использование команды list и ее выходные данные.
Пример 5.32. Вывод списка установленных приложений wsadmin>AdminApp.list()
‘DefaultApplication’
Вы также можете сделать это путем направления запроса узлу о работающих приложениях. В примере 5.33 показано выполнение такой задачи.
Пример 5.33. Вывод приложений путем запроса MBean
wsadmin>AdminControl.queryNames(‘type=Application,node=kcgg1f3Node01,*’)
‘WebSphere:name=DefaultApplication,process=server1,platform=dynamicproxy,node=k cgg1f3Node01,J2EEName=DefaultApplication,Server=server1,version=6.1.0.0,type=Ap plication,mbeanIdentifier=cells/kcgg1f3Cell01/applications/DefaultApplication.e ar/deployments/DefaultApplication/deployment.xml#ApplicationDeployment_11534063 59260,cell=kcgg1f3Cell01,spec=1.0′
Если объект не запущен, MBean-компонент для такого объекта не существует. На основе этого мы можем написать простой Jython-скрипт, который выведет список работающих приложений.
В примере 5.34 показан скрипт, использующий объект AdminApp для вывода списка установленных приложений. Полученные данные являются конфигурационными, и по ним нельзя определить состояние среды исполнения. Используйте команду queryNames для каждого приложения, чтобы увидеть, существует ли MBeanкомпонент, т. е. запущено ли приложение. Если приложение запущено, queryNames возвращает имя, в противном случае возвращается значение null.
Пример 5.34. Скрипт, отображающий состояние приложений
application = AdminApp.list().split(lineSeparator) for app in application:
objName = AdminControl.queryNames(‘type=Application,name=’+ app +’,*’) if (len(objName) == 0):
print ‘The Application ‘+ app +’ is not running’ else:
print ‘The Application ‘+ app +’ is running’ #end if
#end for
Останов работающего приложения
Чтобы остановить работающее приложение, мы используем объект AdminControl и вызываем метод stopApplication MBean-компонента, связанного с работающим приложением. В примере 5.35 показана последовательность команд, используемая для запроса к MBean и для останова приложения.
Пример 5.35. Остановработающегоприложения
wsadmin>appservername = AdminControl.queryNames(‘type=ApplicationManager,node=kcgg1f3Node01,process=server1,*’) wsadmin>AdminControl.invoke(appservername,’stopApplication’,’DefaultApplication‘)
Запуск остановленного приложения
Чтобы запустить остановленное приложение, мы используем объект AdminControl и вызываем метод startApplication применительно к останавливаемому приложению. Для этого необходимо идентифицировать MBean сервера приложений. В примере 5.36 показана последовательность команд, используемая для запуска приложения DefaultApplication.
Пример 5.36. Запуск остановленного приложения
wsadmin>appservername = AdminControl.queryNames(‘type=ApplicationManager,node=kcgg1f3Node01,process=server1,*’) wsadmin>AdminControl.invoke(appservername,’startApplication’,’DefaultApplication’)