W celu podłączenia się do zdalnego interfejsu udostępnianego w technologii JMX trzeba zazwyczaj podać specjalnie sformatowany adres interfejsu oraz dane autoryzacyjne. W przypadku systemu dLibra adres interfejsu ma postać: service:jmx:rmi:///jndi/rmi://[adres serwera]:[port serwera]/mx Jako dane autoryzacyjne należy podać nazwę użytkownika i hasło dla konta 'admin' zdefiniowanego w danym serwerze dLibra .
Poniższy rysunek przedstawia interfejs administracyjny systemu dLibra obsługiwany przy pomocy programu MC4J. Po lewej stronie widać drzewo komponentów administracyjnych. Prawa strona ekranu wykorzystana jest do wyświetlenia trzech wykresów: liczby połączeń RMI do serwera dLibry, liczby zdarzeń w serwerze jakie pozostały do obsługi oraz zajętości pamięci.
W interfejsie administracyjnym systemu dLibra , poza standardowymi komponentami zarządzania udostępnianymi przez środowisko maszyny wirtualnej Java, dostępne są dedykowane komponenty zarządzania serwerem. Komponenty te podzielone są na grupy odpowiadające strukturze wewnętrznej serwera. W ramach tych grup wyróżniony jest jeszcze podział funkcjonalny. Powstaje w ten sposób hierarchiczna, drzewiasta struktura komponentów. Zgodnie ze specyfikacją Java JMX każdy z komponentów może udostępniać własności oraz metody. Poniżej opisano najistotniejsze z udostępnianych elementów. Te elementy, które pominięto są zazwyczaj elementami przydatnymi tylko w wyjątkowych sytuacjach, wymagają bardzo głębokiej znajomości struktury wewnętrznej systemu dLibra i nie powinny być używane. W opisie zastosowano następującą notację:
NazwaAtrybutu - oznacza atrybut, którego wartość może być odczytywana i (opcjonalnie) modyfikowana.
nazwaMetody(parametr1,parametr2) - oznacza metodę (polecenie), która może być wywołana. Mogą również występować metody bezparametrowe.
Ogólnie można założyć, że atrybuty mogą być wykorzystywane do monitorowania pracy serwera, a metody do wykonywania pewnych czynności konserwacyjnych, migracji danych między wersjami lub też np. odtwarzania części danych utraconych na skutek awarii.
Ostrzeżenie | |
---|---|
Część komponentów pozwala na stosunkowo łatwe dokonanie poważnych zmian w danych przechowywanych w bibliotece cyfrowej. Część z operacji może też być bardzo czasochłonna - przykładowo operacja pełnej reindeksacji publikacji dużej biblioteki cyfrowej w zależności o wydajności serwera może trwać nawet kilka tygodni. Zaleca się zachowanie najwyższej ostrożności przy wykorzystywaniu interfejsu administracyjnego serwera dLibra . |
ZipCache:
CacheTimeSpan - Czas życia w cache najstarszego wydania (w godzinach).
CurrentZipCacheSize - Aktualny rozmiar cache (w bajtach).
CurrentZipCacheSize - Aktualny rozmiar cache w stosunku do rozmiaru maksymalnego (w procentach).
MaxZipCacheSize - Maksymalny rozmiar cache (w bajtach).
NoOfCachedZipFiles - Liczba plików zip w cache.
NoOfZipCacheHits - Liczba "trafień" w cache.
NoOfZipCacheMisses - Liczba "chybień" w cache.
OldestAccessDate - Data dostępu do najstarszego pliku w cache.
ZipCacheHitRatio - Stosunek liczby "trafień" w cache do ogólnej liczby żądań.
EventMonitoringBean:
NoOfEveEvents - pokazuje liczbę zdarzeń, jakie zostały jeszcze do obsłużenia usługom serwera dLibra. Zdarzenia to np. dodanie nowej publikacji czy modyfikacja opisu, a obsługa ich może polegać np. na aktualizacji indeksów wyszukiwawczych. Liczba zdarzeń powinna przynajmniej raz na dobę (ewentualnie raz na tydzień) spadać do zera. Jeżeli tak nie jest, oznacza to, że serwer dLibra jest przeciążony i nie jest w stanie na bieżąco obsłużyć zadań generowanych przez użytkowników biblioteki.
EventProcessingDelay - Opóźnienie w przetwarzaniu zdarzeń (w godzinach).
OldestEventDate - Data najstarszego nieobsłużonego zdarzenia.
MaintenanceTasks:
reloadDCPatterns() - przeładowuje informacje na temat mapowania zestawu atrybutów zdefiniowanego w bibliotece cyfrowej na schemat DublinCore. Informacje te zawarte są w pliku dc-pattern.properties w podkatalogu conf katalogu głównego serwera.
HarvestingBean:
harvestAll() - powoduje aktualizację informacji o publikacjach znajdujacych się we wszystkich zdefiniowanych repozytoriach OAI-PMH.
harvestHost(hostId) - powoduje aktualizację informacji o publikacjach znajdujacych się repozytorium OAI o identyfikatorze podanym w parametrze hostId .
synchronizeAll() - powoduje synchronizację (sprawdzenie całego repozytorium) informacji o publikacjach znajdujacych się we wszystkich zdefiniowanych repozytoriach OAI-PMH.
synchronizeHost(hostId) - powoduje synchronizację (sprawdzenie całego repozytorium) informacji o publikacjach znajdujacych się repozytorium OAI o identyfikatorze podanym w parametrze hostId .
HostManagerBean:
Hosts - daje dostęp do listy zdefiniowanych repozytoriów OAI-PMH.
addHost(repositoryUrl, defaultLanguage, hostLogoURL, mainPageURL) - pozwala zdefiniować nowy host OAI-PMH. Parametry to:
repositoryUrl - adres interfejsu OAI-PMH repozytorium (np. http://dlibra.psnc.pl/biblioteka/dlibra/oai-pmh-repository.xml).
defaultLanguage - domyślny język opisu publikacji w repozytorium (np. pl).
hostLogoUrl - małe (40x16px) logo repozytorium do wyświetlania na liście wyników wyszukiwania (np. http://dlibra.psnc.pl/biblioteka/my-oai-link.gif).
mainPageURL - adres URL strony głównej repozytorium (np. http://dlibra.psnc.pl/biblioteka/).
updateHost(hostId, baseUrl, defaultLanguage, hasSecondsGranularity, hostName, hostLogoUrl, repositoryUrl, isDLibra) - aktualizuje informacje o repozytorium OAI-PMH o identyfikatorze podanym w hostId . Pozostałe parametry mają dokładnie takie znaczenie jak w przypadku metody addHost(...) . Należy wypełnić wszystkie wartości parametrów - nie tylko te, których wartości mają być zmienione.
synchronizeHostsDatabase(url) - synchronizuje bazę repozytoriów OAI-PMH ze zdalnym plikiem, którego adres URL
podany jest w parametrze. Przykładem takiego pliku jest
http:
removeHost(hostId) - usuwa z biblioteki cyfrowej wszystkie informacje na temat repozytorium o identyfikatorze podanym w parametrze hostId .
RemoteReindexTasks:
checkIndexesConsistency() - sprawdza spójność lokalnych indeksów wyszukiwawczych dla wyszukiwania rozproszonego.
reindexAll() - powoduje przeindeksowanie wszystkich posiadanych informacji o zasobach zdalnych.
ReindexTasks:
reindexAllEditions(indexMode) - powoduje reindeksację całej zawartości biblioteki cyfrowej. Wartość parametry indexMode może przyjmować następujące wartości:
1 - przeprowadzona ma być wyłącznie reindeksacja opisów publikacji (bez indeksów DublinCore - do wyszukiwania ogólnego),
2 - przeprowadzona ma być wyłącznie reindeksacja treści publikacji,
3 - 1 i 2,
4 - przeprowadzona ma być wyłącznie reindeksacja opisów DublinCore - do wyszukiwania ogólnego,
7 - 1, 2 i 4.
checkIndexesConsistency() - sprawdza i naprawia spójność indeksów wyszukiwawczych.
reindexEditions(editionsIds, indexMode) - powoduje reindeksację wydań o podanych identyfikatorach. Wartość parametru indexMode ma takie samo znaczenie jak w przypadku polecenia reindexAllEditions(...) , a jako wartość parametru editionsIds powinny być podane identyfikatory wydań do reindeksacji oddzielone od siebie przecinkami.
RMIConnectionsInfo:
NoOfRMIThreads - liczba zewnętrznych połączeń do serwera dLibra .
RMIConnectionIPs - adresy IP komputerów, z których obecnie nawiązane są połączenia do serwera dLibra .
ServiceWrapperManager:
stop() - wyłącza serwer.
restart() - restartuje serwer.