Ostatnio przechodziłem z HibernateSessionFactory konfigurowanego w kodzie na hibernate.cfg.xml. Wiąże się to z zamianą mapowań, których może być w dość dużo w projekcie:
Każda klasa reprezentująca encje musi zostać zamieniona na coś takiego:
Code Configuration
1
<mappingclass="pl.myproject.MyClass">
Najprostsze rozwiązanie jakie przychodzi to użycie zamiany z użyciem wyrażenia reguralnego. W naszych IDE należy włączyć tryb zamiany z użyciem wyrażenia reguralnego. W polu “find” definiujemy:
Code Configuration
1
configuration.addAnnotatedClass\((.*).class\);
W polu “replace” definiujemy:
Code Configuration
1
<mappingclass="$1"></mapping>
Klikamy “Replace All” i zrobione. Nie ma tutaj nic trudnego. Wybranie pierwszego podzbioru za pomocą dwóch nawiasów i wstawienie tego za pomocą $1. Proste,a nawet banalne. Za pewne każdy edytor tekstu potrafi takie rzeczy, jednak odnoszę wrażenie, że zbyt często próbujemy robić takie rzeczy ręcznie.
Przewodnik o tym jak zrobić klaster złożony z dwóch instacji tomcata połączonego load balancerem apache mod_jk i jak uruchomić replikację sesji oraz sticky-session. System operacyjny to lubuntu 11.10.
Z góry przepraszam, za dość surowe komendy. Nie jest to tutorial krok-po-korku ani książka, żeby rozlegle wszystko opisywać. Jest to tylko ściągawka na przyszłość, lub ekstrakt z tego co trzeba zrobić.
Adres IP należy zmienić z 10.0.0.90 na localhost czy gdzie tam wasz serwerek się znajduje.
Instalacja
Zainstaluj:
Instalacja
1
apt-get install apache2 libapache2-mod-jk2-mod-jk
Utworz katalog:
Folder
1
/tcluster/instance1
Pobierz Tomcata i rozpakuj zawartość do tego katalogu.
Testy przeprowadzić najlepiej za pomocą aplikacji z przykładów:
W moim przypadku jest ona dostępna pod adresem: http://10.0.0.90:8871/examples/servlets/servlet/SessionExample
Mamy trzy porty HTTP:
8871 - instancja nr 1
8872 - instancja nr 2
8585 - load balancer
Po dodaniu jakiegoś aktrybutu sesji i zmianie portu z 8871 na 8872 powinniśmy mieć ten sam SessionID (Sticky-session) oraz te same atrybuty(Replikacja sesji).
Dodatkowa analiza:
Panel z informacja o mod_jk dostępny pod adresem http://10.0.0.90:8585/jkstatus
Probe (narzędzie do monitorowania) dostępne na danej instancji: http://10.0.0.90:8871/probe oraz http://10.0.0.90:8872/probe