- PVSM.RU - https://www.pvsm.ru -
Копаясь в своих старых записях совершенно случайно наткнулся на документ JBOSS 4.2.3 Manual, написанный мной (а по сути скомпилированный из разных источников) несколько лет назад. И чтобы не пропадать добру, решил немного поделиться знаниями с уважаемым читателим.
Если вы являетесь специалистом с опытом более года — скорее всего ничего нового для себя не найдете и можете сразу проходить мимо, дабы не тратить свое время. Статья же может быть полезна следующим людям:
Понятно, что версия JBoss 4.2.3 достаточно древняя (сейчас актуален 8-ой JBoss, который по сути уже и не «Jboss»), но считаю, что она все еще может быть полезна, учитывая наличие большого количества старого унаследованного java-кода и приложений в жестоком интерпрайз секторе, которые все же необходимо иногда поддерживать.
JBossAS — J2EE сервер приложений с открытым исходным кодом.
Cервер приложений — это программная платформа (software framework) предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов) которые поддерживают построение приложений.
J2EE — Java Platform, Enterprise Edition. набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий. Основная цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. J2EE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость.
JMX — Java Management Extensions ( JMX ) — Java технология, которая поставляет инструменты для управления и мониторинга приложений, системных объектов, устройства (например, принтеров) и сервис-ориентированных сетей. Эти ресурсы представлены объектами, называемыми MBeans.
Минимальный (minimal) — включает сервис логирования, JNDI сервер и URL сканера развертывания, чтобы иметь возможность развертывания приложений. Это чистый сервер. Он без веб-контейнера, EJB или JMS поддержки. Это не J2EE 1.4 совместимая конфигурации.
EJB — Enterprise JavaBeans. спецификация технологии написания и поддержки серверных компонентов, содержащих бизнес-логику. Является частью Java EE.
JMS — Java Message Service. Cтандарт промежуточного ПО для рассылки сообщений, позволяющий приложениям, выполненным на платформе J2EE, создавать, посылать, получать и читать сообщения. Коммуникация между компонентами, использующими JMS, асинхронна (процедура не дожидается ответа на своё сообщение) и независима от исполнения компонентов.
По умолчанию(default) — является базой J2EE 1.4 Это наиболее часто используемые услуги, необходимые для развертывания приложений J2EE. Он не включает JAXR службы, службы IIOP, или любой из службы кластеризации.
Java API for XML Registries (JAXR)
IIOP (Internet Inter-Orb Protocol) используется GIOP для TCP/IP. IIOP является конкретной реализацией абстрактных определений GIOP.
GIOP (General Inter-ORB Protocol) — абстрактный протокол в распределённых объектных системах
Полный (all). Все конфигурации и все доступные услуги. Это включает в себя RMI / IIOP и службы кластеризации, которые не загружаются в конфигурации по умолчанию.
Если вы хотите знать, какие службы настроены в каждой из конфигураций, смотрите в файлах:
jboss-4.2.2/server/<instance-name>/conf/
jboss-4.2.2/server/<instance-name>/deploy
JBoss поставляется с несколькими возможными методами администрирования, которые должны быть защищены или удалены, чтобы предотвратить несанкционированный доступ к административным функциям при развертывании.
The JMX Console (путь: localhost [22]:[ порт ]/jmx-console/ )
Обеспечивает доступ к произвольным администратративным параметрам, например выключение сервера, остановка услуг, внедрения новых услуг и т.д. Он может быть устанавливлен как и любые другие веб-приложения или удален.
The Web Console (путь localhost [22]:[ порт ]/web-console/)
Использует сочетание апплета и HTML и обеспечивает тот же уровень доступа к администратративным функциям, что и JMX-console.war.
Tomcat info (путь localhost [22]:[ порт ]/status?full=true)
Информация о запущенных компонентах
Для запуска необходимо выполнить пакетный файл run с необходимыми параметрами:
run.bat
usage: run.bat [options]
options:
-h, --help Show this help message
-V, --version Show version information
-- Stop processing options
-D<name>[=<value>] Set a system property
-d, --bootdir=<dir> Set the boot patch directory; Must be absolute or url
-p, --patchdir=<dir> Set the patch directory; Must be absolute or url
-n, --netboot=<url> Boot from net with the given url as base
-c, --configuration=<name> Set the server configuration name
-B, --bootlib=<filename> Add an extra library to the front bootclasspath
-L, --library=<filename> Add an extra library to the loaders classpath
-C, --classpath=<url> Add an extra url to the loaders classpath
-P, --properties=<url> Load system properties from the given url
-b, --host=<host or ip> Bind address for all JBoss services
-g, --partition=<name> HA Partition name (default=DefaultDomain)
-u, --udp=<ip> UDP multicast address
-l, --log=<log4j|jdk> Specify the logger plugin type
Для остановки необходимо выполнить пакетный файл shutdown с необходимыми параметрами:
usage: shutdown [options] <operation>
options:
-h, --help Show this help message (default)
-D<name>[=<value>] Set a system property
-- Stop processing options
-s, --server=<url> Specify the JNDI URL of the remote server
-n, --serverName=<url> Specify the JMX name of the ServerImpl
-a, --adapter=<name> Specify JNDI name of the MBeanServerConnection to use
-u, --user=<name> Specify the username for authentication
-p, --password=<name> Specify the password for authentication
operations:
-S, --shutdown Shutdown the server
-e, --exit=<code> Force the VM to exit with a status code
-H, --halt=<code> Force the VM to halt with a status code
Для данной цели можно воспользоваться Tanuki java service wrapper [23].
В таком случае у нас будет следующий пример: wrapper.exe -i ..etcconfwrapper.conf
Usage:
wrapper <command> <configuration file> [configuration properties] [...]
wrapper <configuration file> [configuration properties] [...]
(<command> implicitly '-c')
wrapper <command>
(<configuration file> implicitly 'wrapper.conf')
wrapper
(<command> implicitly '-c' and <configuration file> 'wrapper.conf')
where <command> can be one of:
-c --console run as a Console application
-t --start starT an NT service
-a --pause pAuse a started NT service
-e --resume rEsume a paused NT service
-p --stop stoP a running NT service
-i --install Install as an NT service
-it --installstart Install and sTart as an NT service
-r --remove Uninstall/Remove as an NT service
-l=<code> --controlcode=<code> send a user controL Code to a running NT service
-d --dump request a thread Dump
-q --query Query the current status of the service
-qs --querysilent Silently Query the current status of the service
-v --version print the wrapper's version information.
-? --help print this help message
Вообще tanuki java service wrapper достаточно полезная утилита, которой возможно стоит посвятить отдельную статью в будущем.
./server/<instance-name>/deploy
При удалении или перемещении в эту папку файлов приложений, они будут сразу же развертываться с отображением результатов в лог-файлах.
Пример:
Удаляем файл ear-deployer.xml
...
INFO [TomcatDeployer] undeploy, ctxPath=/mbg, warUrl=.../tmp/deploy/tmp5055106795108270921mbg-2.10.1.41.ear-contents/mbg-console-exp.war/
INFO [TomcatDeployer] undeploy, ctxPath=/webstarter, warUrl=.../tmp/deploy/tmp5055106795108270921mbg-2.10.1.41.ear-contents/mbg-webstarter-exp.war/
....
Помещаем файл mail-service.xml в каталог deploy
...
INFO [org.jboss.mail.MailService] Mail Service bound to java:/Mail
DEBUG [org.jboss.mail.MailService] Started jboss:service=Mail
...
Чтобы закрыть доступ пользователей к какому либо сервису JBoss нужно раскомментировать параметры в файлах (например чтобы закрыть доступ к jmx-console):
deploy/jmx-console.war/WEB-INF/jboss-web.xml
deploy/jmx-console.war/WEB-INF/web.xml
Имя пользователя и пароль берутся из файла:
conf/login-config.xml
Который используюет параметры из файлов:
conf/props
jmx-console-roles.properties
jmx-console-users.propertie
Имеется возможность указать JBoss серверу какие порты использовать для своей работы.
Для этого необходимо поменять на нужные номера портов значения в файлах:
port-bindings.xml (если данный файл задан в конфигурации conf/jboss-service.xml и задан ServiceBindingManager)
server[server_name]confjboss-service.xml
Посмотреть текущие используемые порты можно из Web Console.
RMI (Remote Method Invocation) — программный интерфейс вызова удаленных методов в языке Java.
В терминах RMI объект, который вызывает удаленный метод, называется клиентским объектом, а удаленный объект — серверным объектом.
Компьютеры выступают в роли клиента и сервера только для конкретного вызова. Вполне возможно, что при выполнении следующей операции эти компьютеры поменяются ролями, то есть сервер предыдущего вызова может сам стать клиентом при обращении к объекту на другом компьютере.
URL, который клиент может использовать для получения удаленной ссылки на объект. Эта ссылка применяется для вызова методов удаленного объекта. URL обычно имеет форму
rmi://хост: порт/ИмяУдаленногоОбъекта
где хост представляет собой имя компьютера, который выполняет сервер реестра (rmiregistry) для удаленных объектов (он также является компьютером, на котором выполняется удаленный объект),
порт представляет собой номер порта, на котором выполняется сервер реестра на хост-компьютере, а ИмяУдаленногоОбъекта — имя, которое клиент будет предоставлять при попытках обнаружить удаленный объект в реестре.
Для переопределения портов RMI в jboss необходимо изменить параметры RmiPort и RMIObjectPort в файле
server[server_name]confjboss-service.xml
Источники данных конфигурируются в файлах с суффиксом -ds.xml
Данные файлы могут лежать в дирректориях jboss/server/default/deploy либо jboss/server/default/farm при использовании кластерной конфигурации JBoss
Примеры конфигурационных файлов для подключения к БД можно увидеть в документации: jboss/docs/example/jca
Самый простой вариант организации кластера на JBosss — это запуск нескольких экземпляров сервера в локальной сети с параметром -c all
Связь между узлами осуществляется c помощью коммуникационной библиотеки JGroups, которая предлагает основные функциональные возможности отслеживания узлов, которые находится в кластере и надежного обмена сообщениями между членами кластера.
Узлы могут быть динамически добавлены или удалены из кластеров в любое время, путем запуск и остановки канала с конфигурацией и именем, совпадающим с другими членами кластера.
По умолчанию 4.2.x А.S., создает четыре различных канала:
Типы балансировки на стороне клиента:
Чтобы развернуть приложение в кластере, необходимо скопировать его в папку:
<server_name>/farm/
После этого приложение будет автоматически развернуто на других узлах кластера.
Чтобы удалить приложение, достаточно удалить его из папки <server_name>/farm/ на одном из узлов кластера и оно будет удалено и из других узлов.
Конфигурация farm-развертывания (множественное развертывание) доступна через файл farm-service.xml находящегося в директории deploy/deploy.last
Если необходимо включить поддержку farm-развертывания в вашу конфигурацию, то нужно скопировать файл farm-service.xml в дирректорию с вашей конфигурацией, например:
$JBOSS_HOME/server/your_own_config/deploy/deploy.last
Настройки работы служб JBoss в кластерном режиме находятся в файле cluster-service.xml в директории /deploy
P.S. Исправления, замечания, дополнения а также комментарии привествуются.
Автор: ngelik
Источник [24]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/73068
Ссылки в тексте:
[1] Что такое JBoss: #1
[2] Поддерживаемые форматы приложений: #2
[3] Поставляемые в комплекте с JBoss конфигурации серверов: #3
[4] Методы администрирования JBoss Server: #4
[5] Структура дирректорий конфигурации сервера: #5
[6] Содержимое дирректории conf: #6_
[7] Содержимое дирректории deploy: #6
[8] Запуск JBOSS: #7
[9] Запуск JBoss как приложения: #8
[10] Запуск JBoss как сервис в Windows: #9
[11] Запуск сервисов и приложений при работающем JBoss: #10
[12] Настройки безопасности: #11
[13] Настройка портов: #12
[14] Настройка RMI: #13
[15] Настройки для подключения к БД: #14
[16] Кластеризация: #15
[17] Политика Load-Balancing (Балансировщика Нагрузок): #16
[18] Балансировка на стороне клиента: #17
[19] Развертывание приложения в кластер: #18
[20] Конфигурация cluster-service.xml: #19
[21] Известные проблемы кластеризации в JBoss версии 4.2.3: #20
[22] localhost: http://localhost
[23] Tanuki java service wrapper: http://wrapper.tanukisoftware.com/doc/english/download.jsp
[24] Источник: http://habrahabr.ru/post/241804/
Нажмите здесь для печати.