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ć sie 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ść podawana opcjonalnie i występuje tylko w przypadku konfiguracji systemu klastrowego, wielowęzłowego) 
  • identyfikator_błędu to "4b9a3e59-7a9e-4852-8160-c8016a26720e" 

Kroki postępowania:

  1. 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.
  2. 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).
  3. 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 @MRC_HOME to katalog, w którym został zainstalowany produkt - przykładowa lokalizacja pliku: /opt/mercury-3.0/logs/mercury-ws-app.log
    1. 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
    2. jeżeli masz włączoną rotację logów, to wpierw dowiedz się w jakim pliku znajduje się wpis:
      cd  /opt/mercury-3.0/logs 
      grep  4b9a3e59-7a9e-4852-8160-c8016a26720e * 

      w tym przypadku na fioletowo jest nazwa pliku w którym występuje wpis, teraz zabieramy się do jego przeglądu:
    3. poszukaj wartości (przykładowo 4b9a3e59-7a9e-4852-8160-c8016a26720e)
      less /opt/mercury-3.0/logs/mercury-ws-app.log 
      wciśnij klawisz "/" i wpisz wartość identyfikatora:

      gdy znajdziesz otrzymasz odpowiednio dokładniejsze dane o zdarzeniu:

    4. w przedstawionym przypadku widzisz, ż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.

Powiązane artykuły