Co oznacza wartość pola "errorCode"?
Artykuł ten odpowie na pytanie: "Co oznacza wartość pola errorCode
?". W artykule tym znajdziesz również pomoc w bardziej szczegółowej identyfikacji problemu.
Problem
W każdym systemie mogą pojawiać się błędy realizacji zadania. Podczas działania z usługami systemu Mercury DB 3.0 (HgDB) dane po poprawności wykonania przesyłane są w polach:
errorCode
- kod błędu.errorMessage
- treść błędu, opis /deskrypcja błędu.
Jeżeli wystąpił błąd wykonania usługi to obydwie wartości tych pól nie będę puste (nie będą miały wartości null
).
Każdy błąd jest rejestrowany w logu zdarzeń serwera, węzła systemu! Niejednokrotnie opis błędu może wydawać się niewystarczającym dlatego należy przyjrzeć się wartości pola kodu (errorCode
).
Rozwiązanie
Pole errorCode
zawiera dane, które pozwolą nam na zgłębienie powstałego problemu. Dane te zapisane są w następującym formacie:
<akronim_błędu>#[nazwa_węzła.]<identyfikator_błedu>
np. kod błędu o wartości: M0001#node3.4b9a3e59-7a9e-4852-8160-c8016a26720e
mówi nam, że:
- akronim_błędu to
M0001
- nazwa_węzła to
node3
(wartość opcjonalna i występuje tylko w przypadku konfiguracji systemu klastrowego, wielowęzłowego) - identyfikator_błędu to
4b9a3e59-7a9e-4852-8160-c8016a26720e
Kroki postępowania w celu zdiagnozowania problemu:
- Wyszukaj akronimu błędu w dokumentacji, np. w tym serwisie - na jego podstawie możesz dowiedzieć się o najczęstszych problemach związanych z przyczynami tego błędu.
- Jeśli masz nazwę węzła to zaloguj się (konsola ssh) na serwer, na którym jest on uruchomiony, jeśli nie masz nazwy węzła, to znaczy, że serwer jest zainstalowany tylko na jednej maszynie - zaloguj się na nim (konsola ssh).
- Wyszukaj w logu zdarzeń, zapisu o wartości identyfikatora błędu.
Log to plik o nazwie mercury-ws-app.log
, który znajduje się (o ile nie zostało to skonfigurowane inaczej) w lokalizacji $MRC_HOME/logs
, gdzie zmienna środowiskowa $MRC_HOME
to katalog, w którym został zainstalowany produkt - przykładowa lokalizacja pliku: /opt/mercury-3.0/logs/mercury-ws-app.log
.
- Jeżeli nie masz włączonej rotacji logów, to zdarzenie powinno być zarejestrowane w pliku
/opt/mercury-3.0/logs/mercury-ws-app.log
- Jeżeli masz włączoną rotację logów, to wpierw dowiedz się w jakim pliku znajduje się wpis. Za pomocą linii komend wydaj polecenie (np. dla Linux):
cd /opt/mercury-3.0/logs
grep 4b9a3e59-7a9e-4852-8160-c8016a26720e *
Wynik działania polecenia:
W prezentowanym powyżej przypadku, na fioletowo, zaprezentowana jest nazwa pliku, w którym występuje wpis. Przechodzimy do jego przeglądu.
- W pliku logu zdarzeń, w którym występuje wpis o błędzie, wyszukaj wartość identyfikatora błędu (przykładowo
4b9a3e59-7a9e-4852-8160-c8016a26720e
). W tym celu wydaj polecenie (np. dla Linux):
less /opt/mercury-3.0/logs/mercury-ws-app.log
wciśnij klawisz /
i wpisz wartość identyfikatora:
po zakończeniu wyszukiwania wpisu o błędzie otrzymasz odpowiednio dokładniejsze dane o zdarzeniu:
W przedstawionym przypadku widzimy, że przyczyną błędu, jest nieprawidłowo skonstruowane zapytanie do indeksu Lucene:
Jeżeli już wiesz wszystko o zdarzeniu, możesz tego rodzaju sytuacjom zapobiegać. Jeżeli masz wątpliwości, skontaktuj się z administratorem systemu.