 | Уровень сложности: средний Лин Сан, старший инженер-программист, IBM Нэл Гэйвор, программист-консультант, IBM
10.02.2005 Обновлено 27.07.2007 Узнайте все, что необходимо знать для успешного администрирования среды WebSphere® Application Server Community Edition. В первой части этой серии статей из двух частей рассматриваются запуск сервера, развертывание, управление конфигурацией, обработка ошибок и восстановление. Во второй части более подробно рассматриваются такие элементы настройки как Java™ Message Service (JMS), базы данных, LDAP, SSL и CORBA over IIOP.
Из IBM WebSphere Developer Technical Journal.
Введение
IBM® WebSphere® Application Server Community Edition (здесь и далее называемый Community Edition) Version 1 является облегченным сервером J2EE-приложений (Java™ 2 Platform, Enterprise Edition). Он создан на основе Apache Geronimo Milestone 5, сервера приложений с открытым исходным кодом, спроектированного Apache Software Foundation. В первой части этой серии статей вы изучите структуру каталогов Community Edition, а также как запустить сервер с различными параметрами и как использовать различные команды и параметры, предоставляемые программой развертывания. Кроме того, вы освоите настройку сервера, порты Tomcat по умолчанию, свойства системы ведения журналов регистрации и восстановление сервера после сбоев системы. Во второй части вы изучите настройку баз данных (включая IBM Cloudscape, Oracle®, Microsoft® SQL server и DB2®), Java Message Service (JMS), LDAP, SSL и CORBA over IIOP.
Структура каталогов Community Edition
Для установки Community Edition ваша система должна удовлетворять определенным требованиям. Вы должны выполнить указания по загрузке и установке, приведенные в статье "Начало работы с WebSphere Application Server Community Edition". После установки будет создана следующая структура подкаталогов:
-
bin/: Этот каталог содержит файл server.jar, сценарии запуска сервера, deployer.jar, client.jar и сценарий для программы IBM Cloudscape ij. Эти файлы позволяют вам запустить сервер, выполнить программу deploy, запустить клиентское J2EE-приложение и запустить программу Cloudscape ij соответственно.
-
config-store/: Этот каталог содержит ресурсы и модули приложения, некоторые из которых запускаются вместе с сервером Community Edition. Он содержит файл index.properties. Этот файл отображает модули в числовые имена подкаталогов config-store, в которых они находятся.
-
doc/: Этот каталог содержит первоначально используемые сервером планы для сервера по умолчанию, Tomcat, базы данных, activemq, клиента, CORBA и другие системные планы.
-
graphics/: Этот каталог содержит графические изображения, используемые страницей приветствия и консолью администратора.
-
lib/: Этот каталог содержит jar-файлы ядра, которые используются для предоставления служб ядра и загрузки других служб, ресурсов и прикладных модулей.
-
license/: Этот каталог содержит файлы лицензии и примечания для Community Edition.
-
repository/: Этот каталог содержит общие библиотеки, например, драйверы баз данных и JMS-драйверы, используемые многими прикладными модулями. Каждая библиотека загружается при загрузке зависящего от него модуля.
-
schema/: Этот каталог содержит определения схем для XML-дескрипторов развертывания и конфигурационных файлов.
-
var/: Этот каталог содержит log-файлы, журналы транзакций, и файлы защиты, а также информацию о конфигурациях, использованных во время последнего сеанса работы сервера.
-
_uninstall/: Этот каталог содержит информацию, которая будет использоваться при отмене установки.
 |
Запуск сервера WebSphere Application Server Community Edition
Параметры запуска
При запуске сервера вы можете использовать различные параметры для управления объемом выдаваемой им информации:
-
-quiet: Подавляет вывод индикатора выполнения. Сервер будет выводить только сообщения с уровнем WARN или выше.
-
-v: Сервер будет выводить сообщения с уровнем INFO или выше.
-
-vv: Сервер будет выводить сообщения с уровнем DEBUG или выше.
Выборочно запускаемые конфигурации
Если возникают проблемы и необходимо выяснить их причины, или если Community Edition не запускается, вы можете переопределить список запускаемых в нормальном режиме конфигураций без их изменения. Для этого передайте запускаемую конфигурацию или конфигурации как аргументы командной строки при запуске сервера. Например, если у вас есть модуль с названием hello, и возникают проблемы, вы можете попробовать запустить только этот модуль и модули, от которых он зависит, для того чтобы убедиться в том, что проблемы возникают не из-за других прикладных модулей (листинг 1).
java -jar server.jar hello
|
Это работает правильно только в том случае, если в конфигурации корректно объявлены ее зависимости, или вы точно знаете, какие конфигурации нужно запустить. В противном случае модуль может неожиданно вызвать сбой, поскольку не запущены все необходимые части. Например, если у вас возникли проблемы при развертывании, вы можете решить запустить только конфигурацию org/apache/geronimo/RuntimeDeployer. Даже при успешном запуске этой конфигурации при попытке выполнения команды deploy произойдет сбой и отобразится сообщение о том, что сервер должен быть запущен для использования этой команды. Причина заключается в том, что RuntimeDeployer не работает без других конфигураций, например JMX-инфраструктуры, хотя и не имеет явных зависимостей от этих конфигураций. Следовательно, не все необходимое для выполнения RuntimeDeployer было действительно запущено. Запускать только часть сервера не рекомендуется, поскольку это можете вызвать появление дополнительных проблем, скрывающих истинные проблемы, которые вы пытаетесь решить.
Предотвращение остановки сервера
Если нужно оставить одного и того же пользователя зарегистрированным постоянно, вы можете запустить Community Edition в фоновом режиме в системе Linux. В Windows единственным вариантом является блокирование машины для постоянной работы с зарегистрированным в текущий момент пользователем.
Использование программы развертывания
Программа развертывания Community Edition помогает управлять развертыванием ваших приложений, используя различные команды. Для ее вызова применяется следующий формат:
deploy.[bat|sh] [общие параметры] command [параметры команды]
|
Для более подробной информации по любой отдельной команде введите:
deploy.[bat|sh] help command
|
Однако справочная информация не всегда точна. Например, многие из команд программы развертывания могут быть запущены только при работающем сервере, но в документации написано, что они могут работать и тогда, когда сервер остановлен. При каких-либо сомнениях обращайтесь к документации по Community Edition.
Общие параметры
Для отображения полного списка параметров выполните следующую команду:
deploy.[bat|sh] help options
|
Общими параметрами (для любой команды) являются:
- --uri: Это URI работающего сервера для связи. Вы можете использовать этот параметр для запуска программы развертывания сервера, не работающего на порту по умолчанию (1099) на локальной системе. Формат URI таков:
deployer:geronimo:jmx:rmi:///jndi/rmi://host:port/JMXConnector
|
- --driver: Вы можете использовать программу развертывания не только с Community Edition, но и с любым JSR-88-совместимым сервером. Для серверов, отличных от Community Edition, вы должны предоставить месторасположение jar-файла, содержащего классы реализации развертывания JSR-88.
- --user: Это имя пользователя, используемое при аутентификации. Если имя пользователя не указано, отобразится запрос на его ввод. Имя пользователя по умолчанию для Community Edition - system.
- --password: Это пароль, используемый при аутентификации. Если пароль не указан, Community Edition попытается подключиться без пароля. Если этого сделать не удастся, отобразится запрос на ввод пароля. Пароль для Community Edition по умолчанию - manager.
- --syserr: Если равен true, ошибки будут регистрироваться на устройстве syserr. По умолчанию равен false.
- --verbose: Если равен true, на стандартное устройство вывода будет выводиться отладочная информация. По умолчанию равен false.
Доступные команды для программы развертывания и их использование
Общими командами являются:
-
deploy: Команда deploy обычно принимает модуль и план его развертывания. Она проверяет модуль и план, устанавливает модуль на сервер и запускает этот модуль. Если модуль является простым, и вы желаете использовать настройки по умолчанию, иметь план не обязательно. Также, вместо предоставления плана в качестве отдельного аргумента, он может быть частью самого модуля. Если план спакетирован как часть модуля, его месторасположение зависит от типа модуля:
| Тип модуля | Месторасположение плана |
|---|
| Web-модуль | WEB-INF/geronimo-web.xml | | EJB-модуль | META-INF/openejb-jar.xml | | Адаптер ресурса | META-INF/geronimo-ra.xml | | Клиентское приложение | META-INF/geronimo-application-client.xml | | J2EE-приложение | META-INF/geronimo-application.xml |
Команда deploy, как и многие другие, имеет дополнительные параметры для работы с несколькими назначениями для развертывания. Поскольку поддержка нескольких назначений в настоящий момент времени ограничена, мы не будем рассматривать здесь эти дополнительные параметры.
-
redeploy: Команда redeploy эквивалентна запуску команды undeploy, а затем deploy. Модуль будет запущен после повторного развертывания, даже если он не работал до этого. Во время процедуры повторного развертывания некоторые фрагменты приложения могут быть доступны клиентам, в то время как другие могут быть недоступны, что вызывает сбой запросов.
-
start: Команда start запускает модуль, который уже был развернут. Вы можете перечислить несколько ID модулей для запуска их всех.
-
stop: Команда stop останавливает модуль, который уже был развернут. Вы можете перечислить несколько ID модулей для остановки их всех. После остановки к модулю обратиться нельзя до тех пор, пока он снова не будет запущен.
-
undeploy: Команда undeploy останавливает модуль и удаляет с сервера всю информацию о его развертывании. Он не будет доступен, пока не будет развернут снова. В отличие от команд deploy и redeploy вы можете указать несколько модулей.
Другие команды:
-
distribute: Команда distribute аналогична команде deploy. Отличие состоит в том, что она тоже делает модуль доступным, но в отличие от команды deploy не запускает его. Это означает, что вы можете использовать distribute даже при неработающем сервере.
-
list-modules: Команда list-modules позволяет вам просматривать все доступные модули. Для Web-модулей вы можете использовать команду list-modules с целью поиска их Web-адреса (URL). Вы можете указать либо --started, либо --stopped для просмотра только тех модулей, которые находятся в определенном состоянии. Сервер должен быть запущен для использования этой команды.
-
list-targets: Команда list-targets перечисляет места, где вы можете развернуть модули. Каждое назначение является либо кластером, либо сервером и представляет одно хранилище конфигураций. Однако поддержка нескольких хранилищ конфигураций не протестирована полностью. Нет поддержки кластера как назначения, поэтому эта команда пока не приносит никакой пользы. Для использования этой команды сервер должен работать.
Развертывание в автономном режиме
Программа развертывания работает даже при остановленном сервере, но в этом режиме использования вы можете сделать немногое. Вы можете только выполнить команду distribute для приложения, при которой Community Edition выполняет проверку корректности приложения и устанавливает его. Ни одна другая команда (кроме команды package, которая здесь не рассматривается) не будет работать при остановленном сервере.
Каталог config-store
Каталог config-store, расположенный в каталоге wasce_install_root\config-store, хранит ресурсы и модули приложения, некоторые из которых запускаются вместе с сервером Community Edition. Доступные конфигурационные модули перечислены в файле wasce_install_root\config-store\index.properties, который предоставляет отображение между названиями конфигураций модулей и числовыми подкаталогами, в которых они содержатся. После успешного развертывания вашего J2EE-приложения вы увидите сериализованную версию его конфигурации в каталоге config-store/назначенное число.
Рассматривая файл index.properties, вы можете найти числовое название каталога, назначенное сервером при развертывании J2EE-приложения. Например, если вы развернули пример приложения hello, поставляемого с Community Edition, то увидите, что программе hello был назначен числовой ID:
#Wed Nov 16 09:28:46 EST 2005
org/apache/geronimo/applications/Welcome/Tomcat=18
org/apache/geronimo/Tomcat=7
org/apache/geronimo/SampleSecurityRealm=17
org/apache/geronimo/RMINaming=4
org/apache/geronimo/ActiveMQServer=15
org/apache/geronimo/TomcatRuntimeDeployer=9
org/apache/geronimo/DefaultDatabase=13
hello=44
...
|
Это означает, что сериализованная версия конфигурации программы hello находится в каталоге config-store/44. Первая строка указывает дату и время последней записи файла index.properties. Существует также файл index.backup, который содержит резервную копию файла index.properties. Содержимое каталога config-store поддерживается программами развертывания автоматически, поэтому системным администраторам не рекомендуется изменять этот каталог.
Файл config.list
Файл config.list, расположенный в каталоге wasce_install_root\var\config, содержит ресурсы и прикладные модули, которые работали при предыдущем останове сервера. Если сервер запускается без специальной директивы, он будет читать config.list для определения ресурсов и прикладных модулей, которые он должен запустить. Если вы не делали каких-либо изменений, то увидите следующую последовательность запуска по умолчанию в файле config.list от первой до последней строки.
| ID конфигурации | Первоначальный план по умолчанию | Использование |
|---|
| org/apache/geronimo/System | system-plan.xml | Содержит основные службы, необходимые для функционирования Community Edition. Должны быть запущены всегда. | | org/apache/geronimo/RMINaming | naming-server-plan.xml | Содержит конфигурацию сервера RMI Naming. | | org/apache/geronimo/Server | j2ee-server-plan.xml | Содержит службы, необходимые для работы Community Edition в качестве J2EE-сервера. | | org/apache/geronimo/Security | j2ee-security-plan.xml | Содержит конфигурацию защиты сервера. Если вы ищете пример области защиты (security realm) для использования в вашем приложении, посмотрите файл j2ee-secure-plan.xml. | | org/apache/geronimo/SystemDatabase | system-database-plan.xml | Запускает встроенный сервер базы данных IBM Cloudscape, который прослушивает порт 1527 по умолчанию. | | org/apache/geronimo/SystemJMS | system-jms-plan.xml | Запускает фабрику JMS-соединений и очереди соединений по умолчанию. | | org/apache/geronimo/RuntimeDeployer | j2ee-runtime-deployer-plan.xml | Содержит конфигурацию развертывания сервера. | | org/apache/geronimo/TomcatRuntimeDeployer | j2ee-tomcat-runtime-deployer-plan.xml | Содержит конфигурацию компоновщика Web-модулей Tomcat. | | org/apache/geronimo/applications/Welcome/Tomcat | welcome-tomcat-plan.xml | Запускает страницу приветствия Community Edition. | | org/apache/geronimo/Console/Tomcat | webconsole-tomcat-plan.xml | Запускает Community Edition Administrative Console (Technial Preview). |
Вы можете выполнить следующую команду программы развертывания для поиска запущенных модулей:
deploy.[bat|sh] --user system --password manager list-modules --started
|
Результаты работы команды deploy list-modules
Found 12 modules
+ org/apache/geronimo/applications/Welcome/Tomcat @ http://LinT42:8080/
+ org/apache/geronimo/Tomcat
+ org/apache/geronimo/RMINaming
+ org/apache/geronimo/ActiveMQServer
+ org/apache/geronimo/TomcatRuntimeDeployer
+ org/apache/geronimo/Server
+ org/apache/geronimo/Security
+ org/apache/geronimo/SystemDatabase
+ org/apache/geronimo/SystemJMS
+ org/apache/geronimo/RuntimeDeployer
+ org/apache/geronimo/Console/Tomcat
`-> geronimo-console-standard-1.0-M5.war @ http://LinT42:8080/console-standard
`-> geronimo-console-framework-1.0-M5.war @ http://LinT42:8080/console
+ org/apache/geronimo/System
|
Вам может показаться странным то, что в файле config.list отсутствуют строки org/apache/geronimo/Tomcat и org/apache/geronimo/ActiveMQServer, но они действительно запущены. Идентификатором parentId сервера org/apache/geronimo/applications/Welcome/Tomcat и org/apache/geronimo/Console/Tomcat является org/apache/geronimo/Tomcat. Следовательно, org/apache/geronimo/Tomcat будет запускаться перед запуском страницы приветствия и консоли, основываясь на архитектуре развертывания с внедрением зависимостей Community Edition. Такая же ситуация имеет место для сервера org/apache/geronimo/ActiveMQServer, который запускается перед org/apache/geronimo/SystemJMS.
Использование config.xml для настройки атрибутов сервера
Если вы хотите изменить порты и имена хостов различных серверов, например Tomcat, RMI, Cloudscape, или настроить свои собственные свойства CORBA, то можете изменить начальную конфигурацию, предоставленную с Community Edition. Файл config.xml, расположенный в каталоге wasce_install_root\var\config, предназначен для хранения специальной конфигурации, созданной самим системным администратором. Вы можете настроить все конфигурации сервера в config.xml либо путем изменения конфигураций по умолчанию (RMINaming, RuntimeDeployer, Tomcat, Server, Security, ServerCorba и ActiveMQServer GBeans), предоставленную в config.xml, который поставляется с Community Edition, либо путем добавления своих собственных конфигураций. Когда сервер запустится в следующий раз, он прочитает конфигурацию из файла config.xml и применит ее к хранилищу config. Изменения в конфигурации не будут записываться в начальные конфигурационные файлы, расположенные в каталоге wasce_install_root\doc\plan, который желательно не трогать. Что бы вы не делали, не забудьте сначала сделать резервную копию вашего сервера! Более подробная информация приведена в разделе "Восстановление после сбоев системы".
Приведенный ниже пример показывает, как изменить порт Web-контейнера сервера Tomcat с 8080 по умолчанию на 80.
Конфигурация Tomcat WebConnector в файле config.xml
<configuration name="org/apache/geronimo/Tomcat">
<gbean name="TomcatWebConnector">
<attribute name="host">0.0.0.0</attribute>
<attribute name="port">80</attribute>
<attribute name="redirectPort">8443</attribute>
<attribute name="catalinaHome">var/catalina</attribute>
</gbean>
...
</configuration>
|
Сохраните файл config.xml и перезапустите сервер. Вы должны перезапустить сервер для того, чтобы изменения вступили в силу, поскольку сервер читает config.xml только во время инициализации. При необходимости вы можете также изменить значения и других атрибутов. Однако плохой идеей будет изменение названия конфигурации или названия компонента GBean. Вы, возможно, заметили, что в этом же каталоге находится также файл с именем config.tomcat.xml. Этот файл содержит пример настроек конфигурации для работы сервера с Tomcat в качестве Web-контейнера, и он не используется при запуске сервера. Если вы изменили конфигурацию и хотите вернуться к настройкам Tomcat по умолчанию, то можете скопировать этот файл поверх существующего файла config.xml.
Ведение журналов и восстановление системы
При возникновении проблем лучшим местом поиска неполадок являются log-файлы в каталоге wasce_install_root/var/logs. Дополнительная информация о файлах журналов и их содержимом приведена в статье "Начало работы с WebSphere Application Server Community Edition".
Каждый log-файл имеет соответствующий файл -log4j.properties, который указывает месторасположение log-файла, а также то, насколько подробно нужно вести log-файл и его формат. Строкой, с которой вы, наверное, будете иметь дело наиболее часто, является log4j.appender.FILE.threshold=. Устанавливая ее в ERROR, WARN, INFO или DEBUG, вы можете управлять информацией, записываемой в log-файл. Более подробная информация о формате Log4j приведена в статье "Log4j предоставляет управление журналированием".
Восстановление после системных сбоев
Community Edition не имеет системы для управления изменениями конфигураций. Если происходит ошибка или конфигурация повреждается, систему восстановить не просто. Лучшее, что можно сделать - регулярно делать резервные копии конфигурационных каталогов Community Edition.
- Когда вы хотите сделать резервную копию Community Edition, проверьте, остановлен ли сервер.
- Делайте копии ваших каталогов config-store и var/config. Вы можете для удобства хранить их в виде ZIP-архива.
- Когда вам нужно возвратить ваш сервер в желаемое состояние, убедитесь в том, что сервер остановлен.
- Восстановите каталоги config-store и var/config, сначала удалив существующие каталоги, а потом разархивируя или копируя старые каталоги в их месторасположение.
- Запустите сервер. Конфигурация запуска сервера должна находиться в том же состоянии, в котором она находилась во время создания резервной копии. Изменения, которые были сделаны в репозитории или свойствах системы ведения журналов, могут все еще влиять на общее состояние сервера.
Заключение
В первой части этой серии статей из двух частей был представлен обзор того, что необходимо знать для администрирования Community Edition V1. Во второй части рассматривается настройка:
- Ресурсов баз данных, в том числе IBM Cloudscape, Oracle, Microsoft SQL 2000 и DB2
- JMS-ресурсов
- SSL
- LDAP
- CORBA over IIOP
Теперь, имея необходимую для начала системного администрирования информацию, вы можете успешно управлять вашим сервером Community Edition.
Ресурсы Научиться
Получить продукты и технологии
Обсудить
Об авторах  | |  |
Лин Сан (Lin Sun) работает старшим инженером-программистом IBM в Research Triangle Park, North Carolina в отделе Software Group WebSphere Application Server Community Edition Development Team. Она имеет степень магистра по информационным системам от University of North Carolina at Chapel Hill. С ней можно связаться по адресу linsun@us.ibm.com. |
 | |  |
Нэл Гэйвор (Nell Gawor) работает программистом-консультантом IBM в Research Triangle Park, North Carolina в отделе Software Group System House Advanced Technology Group. Она имеет степень магистра по информационным системам от University of Illinois at Urbana-Champaign. С ней можно связаться по адресу ngawor@us.ibm.com
|
Выскажите мнение об этой странице
|  |