Przejdź do treści

Instalacja i konfiguracja serwera Neos

Instalacja i dezinstalacja usługi serwera Neos

Instalacja

Aby zainstalować serwer Neosa jako usługę, należy:

  • Pobrać, zainstalować i skonfigurować Neosa do docelowego katalogu zgodnie z instrukcją dostępną pod tym linkiem
  • Upewnić się, że w ramach instalacji istnieje w katalogu plik Neos.Service.exe
  • Za pomocą wiersza poleceń w trybie administratora w katalogu Neosa należy wykonać polecenie:

Neos.Service.Install <nazwa>
gdzie nazwa to sufiks aliasu usługi, pod którym będzie ona zarejestrowana w systemie. Zgodnie z wymaganą konwencją, skrypt instalacji do podanej nazwy doda prefiks „Neos.Service.”. Usługa będzie pobierać konfigurację z pliku Neos.Service.nazwa.smd. Nazwa serwera jest przechowywana w pliku NeosServiceName.txt. Jeżeli dany plik nie istnieje, nazwa jest odkrywana poprzez mechanizmy systemu Windows.

Uwaga!

Jeżeli podczas instalacji z komunikatów na ekranie nie będzie wynikać, że usługa została poprawnie zainstalowana należy skorygować ścieżkę do narzędzia InstallUtil.exe z .NET Frameworka.

Uwaga!

Należy pamiętać, że z danego folderu może zostać zainstalowana tylko jedna usługa Neosa! Instalacja i uruchomienie większej ilości instancji z tego samego folderu może powodować problemy z działaniem serwera.

Dezinstalacja

W katalogu usługi z wiersza poleceń w trybie administratora należy wykonać polecenie:

Neos.Service.Uninstall <nazwa>
gdzie nazwa jest odpowiednim sufiksem nadanym w czasie procesu instalacji usługi.

Neos Service Monitor

Razem z usługą serwera instalowane jest narzędzie do monitorowania stanu usług serwera działających na komputerze. Program ten posiada własny plik konfiguracyjny, ale nie ma potrzeby jego konfigurowania. Narzędzie można dodać do autostartu, ponieważ domyślnie sam lokuje się zminimalizowany w systemowym pasku zadań. Ponadto ukryty nie odświeża danych i tym samym nie obciąża serwera. Aby możliwe było za jego pomocą uruchamianie i zatrzymywanie usług, program musi posiadać uprawnienia administracyjne. Z kolei do działania pozostałych funkcji, program czyta pliki .smd usług (zakładając, że ich nazwy są zgodne z konwencją) w celu poznania, na jakim porcie powinny one działać.

Na co zwrócić uwagę przy konfiguracji pliku smd

Wzorcowy plik smd serwera możemy pobrać z tej lokalizacji. Konfigurując plik smd należy zwrócić uwagę na poniższe elementy:

[Configuration]
Databases=system;esystem
DefaultDatabase=esystem
AutoReconnectDBEnabled=yes
NeosDescription=Neos produkcyjny

[Database:system]
DatabaseDriver=MEM

[Database:esystem]
DatabaseFile=localhost:c:\db\esystem.fdb        <- connection string do bazy danych
DatabaseDriver=FB
EnablePartialFill=yes
MaxConnections=100
DatabaseConfFile=esystem.dbi
User=jkowalski                                  <- login użytkownika bazodanowego 
Password=haslo                                  <- hasło użytkownika bazodanowego
AutoCommitTimer=60
DatabaseCharset=WIN1250                         <- może też być UTF8

[Database:azure]
DatabaseFile=azmdvm01.database.net:AZBD01
DatabaseDriver=MSSQL
EnablePartialFill=yes
MaxConnections=20
DatabaseConfFile=esystem.dbi
User=jkowalski
Password=haslo

[AppService]
ServerServiceAdress=localhost:9000              <- wpisz prawidłowy port, zmień odpowiednio wszystkie poniższe 
ODataServiceAdress=localhost:9002
CodeEditorServiceAddress=<localhost>:9008       <- zmień localhost na ip serwera, na którym jest wystawiony neos
InactivityPeriod=60
ServerServiceStart=yes

[BusinessPlatform]
ProjectPath=Neos.Projects                       <- wpisz prawidłową ścieżkę lub ścieżki do projektów neosowych
DefaultProject=SENTE                            <- wskaż nazwę projektu domyślnego
DllPath=libraries
CustomProjectPath=customprojects
BinaryFileDir=c:\katalog_aplikacji\files        <- wskaż ścieżkę, gdzie aplikacja Teneum przechowuje pliki, np zdjęcia towarów, itp.

[Paths]
dbi *.dbi

[Plugins]
Items=common;bp                                 <- plugin bp zawsze musi być ostatni
common:Name=Neos.Common
common:Version=1.0.0.0
common:Culture=neutral
common:PublicKeyToken=null
bp:Name=Neos.BusinessPlatform
bp:Version=1.0.0.0
bp:Culture=neutral
bp:PublicKeyToken=null

#Konfiguracja HTTPServera od wersji 4.3.4
[HTTPServer]
HttpServerServiceAddress=localhost:9001
WebsocketServerServiceAddress=localhost:9003
EnableHttpCaching=yes
EnableHttpLongAuth=yes
HttpLongAuthTimeout=168h
ClientWWWDevMode=yes
Jeśli chcesz, aby w serwerze neos działał scheduler, dodaj do pliku poniższą sekcję:
[Scheduler]
StartSchedulerService=yes
Interval=1
SchedulerDatabase=esystem
SchedulerDir=libraries
Jeśli chcesz, aby serwer neos synchronizował pocztę elektroniczną w tle, dodaj następującą sekcję:
[IMAP]
StartSynchroService=yes
Interval=5
EmailMetadataDatabaseAlias=esystem
EmailContentDatabaseAlias=esystem
Jeśli chcesz używać neosa www, skonfiguruj w pliku smd profile dla klienta WWW.

Jeżeli chcesz mieć możliwość programowego wysyłania e-maili z poziomu kodu C#, należy skonfigurować do tego sekcję SMTP.

Więcej na temat pliku smd przeczytasz tutaj.

Neos Serwer w wersji 64-bitowej

Usługa serwera Neos do wersji 6.1.11 była kompilowana z flagą preferencji 32 bit. Zabieg ten miał na celu ograniczenie wykorzystania pamięci RAM do 4GB. Od wersji 6.1.12 usługa jest kompilowana bez tej flagi i ograniczenie wykorzystania pamięci RAM (o ile jest potrzebne) trzeba włączyć ręcznie. Poniżej krótka instrukcja jak można nałożyć górny limit wykorzystania pamięci RAM w Neosie, jak również instrukcja jak w starszym Neosie usunąć flagę preferencji 32 bit.

Wymuszenie ograniczenia wykorzystania pamięci RAM

Aby wymusić na Neosie ograniczenie użycia pamięci RAM należy ściągnąć Process Governor, wejść do edytora rejestru (Win+R i wpisać regedit), a następnie znaleźć klucz Komputer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<Nazwa usługi Neosa> i zawartość ImagePath podmienić z:

"<Ścieżka do Neosa>\Neos.Service.exe" --smdParam
na
"<ścieżka do Process Governor>" -m 6G -- "<Ścieżka do Neosa>\Neos.Service.exe" --smdParam

Powyższa zmiana ustali górny limit wykorzystania pamięci ram na około 4 GB (obowiązujący od następnego uruchomienia usługi), jeśli chcemy ustalić inny limit w argumencie -m 6G trzema zmienić liczbę 6 na coś innego (3/2 razy tyle jaki chcemy limit).

Uwaga!

Może się okazać, że w pewnych sytuacjach pojawi się np. potrzeba importu arkusza z danymi o znacznie większym rozmiarze. Przy wersji 32-bitowej lub z ustawionym limitem taka próba może zakończyć się komunikatem OutOfMemoryException, mówiącym o niewystarczającej ilości pamięci RAM do wykonania takiej operacji.

Usuwanie flagi preferencji 32 bit

Proces usunięcia flagi preferencji 32 bitów z pliku .exe jest dosyć prosty: wystarczy wyłączyć usługę, dokonać potrzebnych zmian, a następnie ponownie uruchomić usługę. Do zmian w pliku .exe potrzebne jest narzędzie konwersji CorFlags, które jest domyślnie instalowane razem z programem Visual Studio. Aby uruchomić to narzędzie możemy skorzystać z wiersza poleceń w programie Visual Studio, bądź też Developer PowerShell dla VS. Posiadając uruchomione którekolwiek z wyżej wymienionych narzędzi wystarczy wpisać w konsoli polecenie:

CorFlags.exe *ścieżka do pliku* -32BITPREF-
gdzie jako ścieżkę do pliku podajemy ścieżkę do aplikacji Neos.Service.exe. Pełną dokumentację tego narzędzia, oraz instrukcję wykorzystania CorFlags znajdziemy pod tym linkiem.