Druga część podstawowej konfiguracji serwera aplikacji EuroAP i pokrewnych w trybie Managed Domain. W poprzedniej omówiliśmy strukturę katalogów oraz znaczenie pliku host.xml. Dziś skupimy się na pliku domain.xml zawierającym konfigurację domeny.
Konfigurację zarządzanej domeny tworzy połączenie host.xml
i domain.xml
. Pliki te wzajemnie się uzupełniają i tworzą spójną całość. Przy czym dane z host.xml
mają wyższy priorytet niż wartości z domain.xml
.
W pliku domain.xml
możemy deklarować zmienne, a konkretną wartość przypisywać im w host.xml
. Często ten mechanizm jest używany przy konfigurowaniu elementów <path>
i <interface>
domain.xml
móc odwoływać się do nazwanej ścieżki czy interfejsu. Z drugiej strony ich wartości są zależne np. od systemu operacyjnego i bardziej intuicyjne jest podawanie ich w momencie, gdy mamy tego rodzaju informacje, czyli w
. Na przykład:
<interfaces> <interface name="management"/> </interfaces>
domain.xml
<interfaces> <interface name="management"> <inet-address value="${jboss.bind.address.management:127.0.0.1}"/> </interface> </interfaces>
host.xml
host.xml
i domain.xml
muszą być ze sobą kompatybilne. Gdybyśmy w pliku host.xml
odwołali się do grupy serwerów, która nie jest zdefiniowana w domain.xml
, domena nie wystartowałaby.
Domain.xml a standalone.xml
EuroAP w trybie Standalone uruchamia tylko jeden serwer, który ma przypisany dokładnie jeden profil. W trybie Managed Domain zarządzamy całą domeną – robimy to przy pomocy logicznej jednostki, jaką jest grupa serwerów. Każda grupa serwerów ma przypisany jeden profil.
domain.xml
ma bardzo podobną strukturę do standalone.xml
, a różnice wynikają tylko z podanej wyżej definicji:
- w
domain.xml
możemy definiować wiele profili.
jeden profil:
<profile> ... </profile>
wiele profili:
<profiles> <profile> ... </profile> </profiles>
- w domenie definiujemy grupy serwerów, dlatego w
domain.xml
mamy dodatkowo znacznik<server-groups>
ponadto w standalone.xml w sekcji managemnet mamy konfigurację security-realms , która w zarządzanej domenie jest definiowana whost.xml .
struktura domain.xml
Struktura domain.xml
przedstawia się następująco:
<domain xmlns="urn:jboss:domain:10.0"> <extensions...> <management...> <profiles...> <interfaces...> <socket-binding-groups...> <server-groups..> </domain>
Jak zauważyliśmy wcześniej, jest ona bardzo podobna do standalone.xml
, szczegółowo opisanej w artykule „Konfiguracja serwera aplikacji EuroAP w trybie Managed Domain – część I”. Dlatego teraz zajmiemy się tylko różnicami, czyli <profiles>
i <server-groups>
Profiles
EuroAP udostępnia 5 predefiniowanych profili oraz możliwość tworzenia własnych. Definicje poszczególnych profili zawarte są w elemencie:
<profiles> <profile name="nazwa-profilu"> ... </profile> </profiles>
W domenie każda grupa serwerów ma przypisany jeden profil. Profil może być użyty w wielu grupach. W standalone.xml
mieliśmy jeden nienazwany profil. W domain.xml
musimy mieć możliwość odwołania się do profilu, aby móc go przypisać do grupy. Zatem atrybut name jest obowiązkowy.
Server-group
Element <server-groups>
zawiera zbiór elementów server-group definiujących grupy serwerów. Obowiązkowymi atrybutami grupy jest jej nazwa (name) i profil (profile), z jakim serwery będą działać, jak również grupa wiązania gniazd (socket-binding-group). Ponadto można zdefiniować atrybuty JVM (które mogą zostać nadpisane w host.xml
) oraz wdrożone aplikacje.
<server-groups> <server-group name="nazawa-dla-tej-grupy" profile="full"> <jvm name="default"> <heap size="1000m" max-size="1000m"/> </jvm> <socket-binding-group ref="full-sockets"/> <deployments> <deployment name="hello-world-1.0.war" runtime-name="hello-world-1.0.war"/> </deployments> </server-group> ... </server-groups>
Aby usunąć grupę serwerów, musimy najpierw usunąć wszystkie należące do niej serwery, gdyż host.xml
i domain.xml
muszą być spójne.
Wdrożone aplikacje
Aplikacje w EuroAP i pokrewnych systemach wdrażamy na grupę serwerów. Nie możemy wdrożyć aplikacji na pojedynczy serwer zdefiniowany w host.xml
. Można wdrożyć oczywiście na grupę serwerów, w skład której wchodzi tylko jeden serwer i otrzymać taki efekt. Wciąż jednak logicznie wdrażamy na grupę serwerów ;)
Wdrożenia definiowane są w elemencie <deployment>
i wymagane jest podanie atrybutów name oraz runtime.
<deployments> <deployment name="hello-world-1.0.war" runtime-name="hello-world-1.0.war"/> </deployments>
Podsumowanie
Tym sposobem zakończyliśmy omawianie podstaw konfiguracji EuroAP w trybie zarządzanej domeny. Na zakończenie pragnę przypomnieć, że nie edytujemy plików konfiguracyjnych z ręki. Na nich łatwo zobaczyć, co się w konfiguracji dzieje oraz jakie elementy się na nią składają. Bardzo łatwo jednak zepsuć konfigurację – o literówce czy błędzie merytorycznym dowiemy się, dopiero gdy serwer aplikacji nie będzie w stanie się uruchomić.
Warto również zaznaczyć, że poradnik ten znajdzie zastosowanie także wśród użytkowników JBoss Enterprise Application Platform, ponieważ rozwiązania te są tożsame i działą tak samo.
Korzystajmy z dedykowanych narzędzi – graficznej konsoli użytkownika lub CLI (Command Line Interface). Więcej przykładów, jak ich używać, wkrótce na naszym blogu. Stay tuned :)