Instalacja: Comarch ERP Enterprise jako usługa w systemie Linux lub Windows

Wprowadzenie

Comarch ERP Enterprise może działać jako usługa w systemie Windows i niektórych wydaniach systemu Linux. Poniżej opisano dostępne możliwości korzystania z usługi oraz funkcje, jakie system ERP udostępnia w tym zakresie.

Grupa docelowa

  • Administratorzy systemu
  • Konsultanci techniczni
  • Programiści instalujący system ERP

Wymagania

Obecnie usługa obsługuje określone warianty systemów Windows i Linux. Informacje o tym, które wersje Windows i Linux są wspierane, znajdują się w artykule Wymagania systemowe.

Podczas tworzenia usługi do plików konfiguracyjnych usługi zapisywane są dane dotyczące SAS. Z tego powodu SAS, dla którego tworzona jest usługa, musi być skonfigurowany przed rozpoczęciem instalacji.

Definicje

Ścieżka UNC (Universal Naming Convention) – za pomocą ścieżki UNC można uzyskać bezpośredni dostęp do dowolnego zasobu w sieci, bez konieczności używania powiązanego dysku.

Konwencje

Nie należy zmieniać domyślnych struktur katalogów ani nazw plików w obrębie struktury folderów usługi. W przeciwnym razie usługa nie uruchomi się prawidłowo.

Instalowanie i uruchamianie usługi

Usługa jest zarządzana za pomocą narzędzia wrkossrv (artykuł Comarch ERP Enterprise jako usługa w Windows lub Linux (wrkossrv)). Zarządzanie usługą jest niezależne od używanego systemu operacyjnego. Niektóre działania, takie jak ręczne uruchamianie lub zatrzymywanie usługi, zależą jednak od konkretnego systemu operacyjnego.

Instalacja

Usługa dla SAS może zostać skonfigurowana na różne sposoby:

  • Instalacja przez system ERP – system ERP tworzy katalog usługi, konfiguruje usługę oraz instaluje ją w systemie operacyjnym. Instalacja w systemie operacyjnym jest możliwa tylko wtedy, gdy SAS wykonujący instalację działa na tym samym komputerze, na którym usługa ma zostać zainstalowana.

  • Konfiguracja przez system ERP i następnie ręczna instalacja – system ERP tworzy katalog usługi oraz konfiguruje usługę. W katalogu usługi umieszczane są skrypty zależne od systemu operacyjnego, służące do zarządzania usługą — są one dostępne również podczas instalacji wykonywanej przez system ERP. Następnie instalację uruchamia się z powłoki systemu operacyjnego, na którym usługa ma być zainstalowana, poprzez wywołanie odpowiedniego skryptu.

  • Ręczne tworzenie, konfiguracja i instalacja usługi – dla każdej usługi dostępny jest pakiet dostawy w postaci pliku ZIP. Plik ten można rozpakować ręcznie, skonfigurować jego zawartość, a następnie zainstalować usługę z użyciem udostępnionych skryptów. Dzięki temu możliwe są instalacje odbiegające od standardu, np. instalacja drugiej usługi dla jednego SAS.

Funkcje specjalne dla systemu operacyjnego Windows

Jeżeli usługa ma być uruchamiana w systemie Windows i katalog serwera plików systemu nie znajduje się na komputerze lokalnym, podczas konfiguracji serwera aplikacji, ręcznej konfiguracji lub wykonywania skryptów należy używać ścieżki UNC dla katalogu serwera plików.

Gdy skrypty są wykonywane z poziomu Windows Command Shell, obsługa ścieżek UNC musi być włączona za pomocą wpisu w rejestrze.

Zainstalowaną usługę należy sprawdzić w:
Panel sterowania → Narzędzia systemu Windos→ Usługi → Semiramis <Systemname>.<Servername> → zakładka Ogólne.
W polu Ścieżka do pliku EXE musi znajdować się ścieżka UNC. Ścieżki wykorzystujące litery dysków nie są obsługiwane.

Jeżeli katalog File-Server ma być dostępny przez sieć, należy zadbać o to, aby ścieżka sieciowa była dostępna również w kontekście konta usługi. Ta wersja usługi nie zapewnia funkcjonalności automatycznego mapowania dysków sieciowych.

Ograniczenia dotyczące używanego JDK

Usługa zawiera dwa komponenty specyficzne dla danego systemu operacyjnego program wykonywalny oraz bibliotekę udostępniającą funkcje poprzez JNI, które są wymagane przez usługę.

Na 64-bitowym systemie operacyjnym należy używać 64-bitowej wersji usługi oraz 64-bitowego JDK.

Instalacja przez systemu ERP

Instalacja usługi dla SAS odbywa się za pomocą następującego polecenia:

wrkossrv –create –sas:<sas> –os:<type> -jdk:<path> -starttype:<vs> -user:<text> -pw:<text>

Parametry –user i –pw są opcjonalne w systemi Linux.
Parametr:

  • –user jest obowiązkowy w systemie Windows.
    –pw w systemie Windows jest wymagany tylko wtedy, gdy usługa ma zostać zainstalowana bezpośrednio.

Uwaga
W systemie Windows podany użytkownik musi posiadać uprawnienie Anmeldung als Dienst erlauben (logowanie jako usługa).

Parametr -sas określa SAS, dla którego instalowana jest usługa. Usługa zostaje zainstalowana w katalogu semiramis/servers/<sas>/service. Struktura katalogu jest opisana w rozdziale Katalog usług. Ustawienie ścieżki serwera plików jest przejmowane z konfiguracji SAS, dlatego SAS musi być wcześniej utworzony i skonfigurowany. Jeżeli ścieżka serwera plików zostanie zmieniona w bazie konfiguracyjnej, konieczne jest dostosowanie usługi poprzez polecenie –modify lub ręczną zmianę pliku konfiguracyjnego.

Parametr –os określa typ systemu operacyjnego, dla którego instalowana jest usługa. Obecnie obsługiwane są Windows (64-bit) oraz Linux (64-bit). Na podstawie tego parametru instalowane są odpowiednie programy i skrypty zależne od systemu operacyjnego. Wybór ten wpływa również na niektóre parametry w pliku konfiguracyjnym.

Ścieżka do katalogu głównego JDK jest podawana parametrem -jdk:. Ścieżka zależy od systemu operacyjnego, np. C:\jdk1.5.0_08. Jeżeli instalowane jest nowe JDK lub z innych powodów zmienia się ścieżka do JDK, konfigurację usługi należy odpowiednio dostosować.

Usługę można  uruchomić na kilka sposobów:

  • Automatycznie po uruchomieniu komputera
  • Ręcznie w późniejszym czasie

W systemach operacyjnych Windows typ uruchomienia jest właściwością usługi i jest określany za pomocą parametru -starttype. Parametr ten nie ma znaczenia w systemie Linux. Jeśli skonfigurowano usługę za pomocą -create, zostanie ona uruchomiona automatycznie po uruchomieniu komputera.Aby uruchomić usługę ręcznie, należy użyć polecenia createDirectory zamiast -create.

Parametry –user oraz –pw są wymagane wyłącznie w systemie Windows. Usługa jest tworzona na koncie określonym przez te parametry. Należy zwrócić uwagę, że konto to musi posiadać odpowiednie uprawnienia do uruchamiania systemu ERP. W szczególności ścieżka do serwera plików wskazana w konfiguracji musi być dostępna z tego konta.

Przykład
Aby utworzyć usługę w systemie Windows dla SAS ABC, która uruchamiana jest automatycznie przy starcie systemu na koncie UsługaUżytkownik z hasłem xyz, należy użyć następującego polecenia:

wrkossrv –create –sas:ABC –os:1 –jdk:C:\jdk1.5.0_08 –starttype:1 –user:UsługaUżytkownik  –pw:xyz

Konfiguracja za pośrednictwem systemu ERP

Usługa może zostać skonfigurowana również bez automatycznej instalacji w systemie operacyjnym. Jest to konieczne w sytuacji, gdy usługa ma zostać zainstalowana na innym komputerze, ponieważ na komputerze docelowym muszą zostać uruchomione programy zależne od systemu operacyjnego. W systemach Linux opcja ta jest używana, gdy usługa nie ma być uruchamiana automatycznie. W takim przypadku instalacja w systemie operacyjnym nie jest przewidziana.

Polecenie działa tak, jak opisano w rozdziale Instalacja przez system ERP. W tym celu należy zastąpić polecenie -create poleceniem –createDirectory.

wrkossrv –createDirectory –sas:ABC –os:1 –jdk:C:\jdk1.5.0_08 –starttype:1 –user:DienstUser –pw:xyz

Następnie należy przejść na komputer, na którym usługa ma zostać zainstalowana, do katalogu: semiramis\servers<sas>\services. W katalogu tym znajdują się skrypty służące do instalowania, odinstalowywania, uruchamiania i zatrzymywania usługi. Skrypty te są zależne od systemu operacyjnego.

W systemie Linux katalog ten zawiera skrypt wrapper_init.sh. Skrypt należy wywołać z parametrem install, aby usługa była automatycznie uruchamiana podczas startu komputera.

W systemie Windows w tym katalogu znajduje się skrypt InstallSemiramisServer.bat. Skrypt należy uruchomić, aby zainstalować usługę.

Instalacja ręczna

Przy ręcznej instalacji pliki instalacyjne odpowiednie dla danego systemu operacyjnego należy rozpakować do dowolnego katalogu. Należy przy tym zadbać o zachowanie struktury katalogów. Następnie należy dostosować odpowiednie parametry w pliku service.conf. Plik ten znajduje się w podkatalogu conf.

Pliki instalacyjne to:

  • Windows: semiramis\files\install\service\service-windows-setup.zip.
  • Linux 64-bit: semiramis\files\install\service\service-linux64-setup.zip.
Katalog usług

Katalog usługi ma następującą strukturę.

Struktura katalogu dotyczy instalacji w systemie Linux.

W katalogu log znajdują się pliki logów usługi. Jeżeli system ERP lub usługa nie uruchamiają się, znajdują się tam wpisy pomocne przy diagnozowaniu błędów.

Katalog conf zawiera pliki service.conf oraz wrapper.conf, które służą do konfiguracji usługi.

W tych plikach mogą być używane zmienne środowiskowe. Składnia %VARIABLE% umożliwia odwołanie się do zmiennej. Za pomocą set.Variable= można ustawiać zmienne środowiskowe. Polecenie #include <ścieżka> pozwala na dołączanie dodatkowych plików konfiguracyjnych. Jeżeli plik nie zostanie odnaleziony, polecenie #include jest ignorowane. Ścieżki względne odnoszą się do lokalizacji programu wrapper.

Plik service.conf zawiera podstawowe zmienne opisane poniżej. Wartości te są wstępnie ustawiane przez narzędzie wrkossrv i zazwyczaj nie wymagają dalszej edycji.

Zmienna Opis
JAVA_HOME Ścieżka do Java Development Kit. Przykład: c:\jdk1.5.0_05. Ten zestaw JDK jest używany do uruchamiania systemu ERP.
SEMIRAMIS_SYSTEM_NAME Nazwa systemu ERP, np. ADV130.
SEMIRAMIS_APPLICATION_SERVER Nazwa serwera aplikacyjnego systemu ERP bez poprzedzającej nazwy systemu, np. MESSAGESERVER.
SEMIRAMIS_SVM_PARAMETERS Za pomocą tej zmiennej można przekazywać dodatkowe parametry startowe. Wartość proponowaną (nazwę serwera aplikacyjnego) należy rozszerzyć o dodatkowe parametry startowe. Nazwa serwera aplikacyjnego musi być zawsze zawarta.
SEMIRAMIS_HOME Ścieżka serwera plików, dokładnie taka, jaka została podana dla serwera aplikacyjnego w Panel System. Przykład: \<rechnername>\V1R3M0\ADV130\semiramis. Dozwolona jest wyłącznie ścieżka UNC. Ścieżka z literą dysku nie jest obsługiwana przez usługę.
SEMIRAMIS_OS_USER_ACCOUNT Konto użytkownika Windows, pod którym usługa ma być instalowana i uruchamiana. Jeżeli katalog systemu ERP znajduje się na zasobie sieciowym, użytkownik ten musi posiadać uprawnienia do połączenia z tym zasobem.
SEMIRAMIS_SERVICE_STARTTYPE Ustawia typ uruchamiania usługi na ręczny (DEMAND_START) lub automatyczny (AUTO_START).
semiramis.operatingsystem Określa typ systemu operacyjnego, dla którego usługa została zainstalowana. Szczegółowy opis znajduje się w rozdziale Instalacja przez system ERP. Jeżeli usługa jest zarządzana ręcznie, nie ma potrzeby ustawiania tego parametru. Parametr wykorzystywany jest przez narzędzie wrkossrv do rozpoznania typu usługi.
semiramis.service.version Wersja dostarczonych plików, z którą usługa została zainstalowana. Na podstawie tego wpisu narzędzie wrkossrv sprawdza, czy usługa wymaga aktualizacji. Jeżeli usługa jest zarządzana ręcznie, ustawianie tego parametru nie jest konieczne.
wrapper.debug Zmienna ustawiana na TRUE w celu uzyskania rozszerzonych danych diagnostycznych usługi.

W pliku service.conf znajdują się przykłady dla wszystkich zmiennych.

Plik wrapper.conf zawiera dalsze zmienne, które zostały opisane poniżej. Wartości te są wstępnie ustawione i zazwyczaj nie wymagają zmian. Zmienne, które nie zostały opisane poniżej, nie powinny być w żadnym wypadku modyfikowane.

Zmienna Objaśnienie
set.SEMIRAMIS_JAVA Ustawia zmienną środowiskową SEMIRAMIS_JAVA. Zmienna ta jest używana w pliku do budowania kolejnych zmiennych.
set.SEMIRAMIS_SVM Ustawia zmienną środowiskową SEMIRAMIS_SVM. Zmienna ta jest używana w pliku do budowania kolejnych zmiennych.
set.SEMIRAMIS_JVM Ustawia zmienną środowiskową SEMIRAMIS_JVM. Zmienna ta jest używana w pliku do budowania kolejnych zmiennych.
set.SEMIRAMIS_SERVICE_SVM Ustawia zmienną środowiskową SEMIRAMIS_SERVICE_SVM. Zmienna ta jest używana w pliku do budowania kolejnych zmiennych.
set.SEMIRAMIS_SERVICE_JVM Ustawia zmienną środowiskową SEMIRAMIS_SERVICE_JVM. Zmienna ta jest wykorzystywana przez system ERP.
wrapper.java.command Pełna ścieżka programu uruchamiającego JVM, np. C:\jdk1.5.0_08\bin\java.exe. Wartość ta jest ustawiana zgodnie z parametrami w pliku service.conf.
wrapper.app.parameter.1 Parametry przekazywane do systemu ERP. W standardzie zawiera %SEMIRAMIS_SERVICE_JVM% %SEMIRAMIS_SVM%. Można dodawać własne parametry na początku, np. –noRestart %SEMIRAMIS_SERVICE_JVM% %SEMIRAMIS_SVM%. Dodatkowe parametry można dodawać jako kolejne zmienne z kolejną numeracją. Numeracja musi być ciągła i zaczynać się od 1.
set.SEMIRAMIS_CLASS_PATH Ustawia zmienną środowiskową SEMIRAMIS_CLASS_PATH. Zmienna ta jest używana do budowania dalszych zmiennych. Wartość domyślna to *. *. Jeżeli zmienna jest zmieniana, znak kropki musi pozostać w ścieżce.
wrapper.java.classpath.<n> Ścieżka klas przekazywana do JVM. Zmienne wrapper.java.classpath.1wrapper.java.classpath.6 są zdefiniowane standardowo i nie mogą zostać usunięte. Ścieżkę można rozszerzać, dodając kolejne zmienne lub zmieniając numerację. Numeracja musi być ciągła i zaczynać się od 1.
wrapper.java.additional.1 – wrapper.java.additional.3 Parametry przekazywane dodatkowo do JVM. Można przekazać maksymalnie trzy dodatkowe parametry.
wrapper.java.initmemory Minimalny rozmiar pamięci sterty dla JVM, zgodny z parametrem JVM –Xms. Jeżeli wartość ma nie być ustawiona, zmienną należy ustawić na 0. Jeśli zmienna jest ustawiona, parametr –Xms zostaje zmieniony.
wrapper.java.maxmemory Maksymalny rozmiar pamięci sterty dla JVM, zgodny z parametrem JVM –Xmx. Jeżeli wartość ma nie być ustawiona, zmienną należy ustawić na 0. Jeśli zmienna jest ustawiona, parametr –Xmx zostaje zmieniony.
wrapper.console.loglevel Poziom logowania usługi dla konsoli. Możliwe wartości: NONE, FATAL, ERROR, STATUS, INFO, DEBUG. Ustawienie zmiennej wrapper.debug na TRUE zmienia ten parametr na DEBUG.
wrapper.logfile.loglevel Poziom logowania usługi dla pliku log. Plik tworzony jest w podkatalogu log w katalogu usługi. Możliwe wartości: NONE, FATAL, ERROR, STATUS, INFO, DEBUG. Ustawienie wrapper.debug na TRUE zmienia ten parametr na DEBUG.
wrapper.logfile.maxsize Maksymalny rozmiar pliku log. Po osiągnięciu maksymalnej wielkości usługa otwiera nowy plik log.
wrapper.logfile.maxfile Maksymalna liczba plików log. Po osiągnięciu maksymalnej liczby i utworzeniu nowego pliku najstarszy plik jest usuwany.
wrapper.syslog.loglevel=ERROR Poziom logowania usługi dla systemowego SYS-Log. Pod Windows wpisy trafiają do dziennika zdarzeń, a pod Linux do syslog. Możliwe wartości: NONE, FATAL, ERROR, STATUS, INFO, DEBUG.

Uruchamianie usługi

Jeśli usługa nie została skonfigurowana do automatycznego uruchamiania, należy uruchomić ją ręcznie. W zależności od systemu operacyjnego do wyboru jest kilka opcji. Są one również dostępne, jeśli usługa została uruchomiona automatycznie, a następnie zatrzymana.

Windows
  • Wykonując plik wsadowy StartService w katalogu instalacyjnym usługi.
  • Za pomocą polecenia net start …
  • Za pomocą konsoli zarządzania usługami systemu Windows.
  • Za pomocą polecenia wrkossrv -start -sas:<sas> w tollshell.
Linux
  • Wywołując skrypt wrapper_init.sh z parametrem start
  • Poleceniem wrkossrv -start -sas:<sas> w tollshell.

Zatrzymywanie usługi

Do zatrzymania usługi dostępne są te same opcje, co do jej uruchomienia.

Windows
  • Wykonując plik wsadowy StopService w katalogu instalacyjnym usługi.
  • Za pomocą polecenia net stop …
  • Za pomocą konsoli zarządzania usługami systemu Windows
  • Za pomocą polecenia wrkossrv -stop -sas:<sas> w tollshell.
Linux
  • Wywołując skrypt wrapper_init.sh z parametrem stop
  • Poleceniem wrkossrv -stop-sas:<sas> w tollshell.

Uruchamianie usługi jako aplikacji konsolowej

Można uruchomić usługę jako aplikację konsolową do celów testowych. Należy pamiętać, że usługa jest zazwyczaj uruchamiana z innego konta użytkownika. Różne uprawnienia oraz ustawienia sieci mogą prowadzić do problemów podczas działania usługi.

Windows

Uruchomić plik wsadowy SemiramisService.bat.

Linux

Wywołać skrypt wrapper_init.sh z parametrem console.

Odinstalowanie usługi

Można odinstalować usługę za pomocą narzędzia wrkossrv. Odbywa się to za pomocą polecenia:

wrkossrv -remove sas:ABC.

Aby to zrobić, należy uruchomić wkrossrv na komputerze, na którym usługa jest zainstalowana.

Uwaga
Jeśli usługa nie została zainstalowana do automatycznego uruchamiania w systemie Linux, wystarczy usunąć katalog. Można to zrobić za pomocą polecenia wrkossrv -removeDirectory -sas:ABC lub usuwając katalog. Funkcja odinstalowywania nie jest zaimplementowana dla systemu Linux. Należy usunąć odpowiedni wpis ze skryptów startowych (inetd).

Alternatywnie można odinstalować usługę, wykonując plik wsadowy UnInstallSemiramisServer w katalogu instalacyjnym usługi.

Uwaga
Należy pamiętać, że aby odinstalować usługę przed zmianą nazwy serwera aplikacji systemu ERP w pliku service.conf.
Ręczna dezinstalacja

Jeśli nie można  uruchomić wrkossrv na komputerze, na którym zainstalowana jest usługa, można również odinstalować usługę ręcznie.

W tym celu uruchom skrypt UnInstallSemiramisServer.bat w systemie Windows. Następnie można usunąć katalog usługi.

Procedura w systemie Linux została opisana w rozdziale Odinstalowanie usługi.

Diagnostyka błędów

Podczas pracy z narzędziem wrkossrv mogą wystąpić błędy, które domyślnie nie są rejestrowane. Zmieniając linię wrapper.debug=FALSE w pliku service.conf na wrapper.debug=TRUE, uzyskiwane są rozszerzone dane wyjściowe, które są pomocne w diagnostyce błędów. Są one szczególnie przydatne w związku z działaniem usługi jako aplikacji konsolowej.

Szczególne aspekty działania jako usługa

Katalog roboczy (current working directory)

Przy uruchamianiu usługi katalog, w którym znajduje się plik wykonywalny usługi (wrapper.exe lub wrapper), jest ustawiany jako katalog roboczy.

Ma to szczególne znaczenie dla plików ładowanych względem ścieżek względnych.

Plik server.properties musi znajdować się przy standardowej instalacji w katalogu:

semiramis/servers/<SAS>/service/classes

jeżeli SAS jest uruchamiany jako usługa. Dalsze informacje znajdują się w artykule ERP-Propertys.

Wskazówka
Jeżeli obiekty java.io.File są tworzone z użyciem ścieżki względnej, odnoszą się one do katalogu roboczego usługi.

Sterowanie usługą przez Telnet

Za pomocą Telnet można wykonywać następujące funkcje:

  • ponowne uruchomienie

  • wykonanie Thread Dump. Zrzut wątków zapisywany jest w pliku log usługi, znajdującym się w katalogu …\service\log

Sterowanie Telnet jest domyślnie wyłączone. Aby je aktywować, należy uzupełnić plik service.conf w katalogu service\conf o wpis:

semiramis.telnet.port=<portNumber>

Za pomocą dodatkowej opcji:

semiramis.telnet.ip=<adresIP>

można określić adres, z którym łączy się usługa. Jeżeli parametr nie zostanie podany, usługa będzie wiązać się ze wszystkimi dostępnymi adresami. Możliwe jest podanie adresu IP lub nazwy hosta.

Ponadto należy ustawić poziom logowania co najmniej na INFO:

wrapper.logfile.loglevel=INFO

Następnie można otworzyć klienta Telnet i wydać następujące polecenia.

  • R: Start
  • D: Wykonaj zrzut wątku.
Uwaga
Polecenia muszą być wysyłane wielkimi literami.

Czy ten artykuł był pomocny?