Migracja do PASOE
O PASOE sporo pisałem. Wiadomo, w OE12 nie ma już klasycznego AppServera i trzeba podjąć decyzję o migracji aplikacji, a przed decyzją dobrze jest poznać za i przeciw nowego produktu.
Teraz jednak powracam do tematu samej migracji w szerszym kontekście (pisałem o podstawach migracji w 2017).
Korzyść z nowego AppServera widać już podczas instalacji: możemy wybrać czy instalowana instancja będzie deweloperska czy produkcyjna. Dla tej ostatniej dodajemy w komendzie parametr -Z prod i mamy instalowanie instancji z implementacją silniejszych zabezpieczeń niż dla wersji deweloperskiej. O samych zabezpieczeniach nie będę pisał ponieważ temu tematowi poświęciłem tutaj kilka wpisów.

Następnym krokiem jest migracja ustawień, czyli pliku z właściwościami. Istniejący plik ubroker.properties musi zostać przekonwertowany na nowy format używany przez PASOE openedge.properties.
Kolejność działania jest następująca: najpierw uruchamiamy polecenie paspropconv, które konwertuje właściwości z pliku ubroker.properties do tymczasowego pliku ubrokername.oemerge. Plik ten można dopasować do naszych potrzeb i włączyć ustawienia naszej nowej instancji do pliku openedge.properties.

Komendę paspropconv uruchamiamy w podkatalogu conf dla instancji PASOE z przykładowymi parametrami, które są wymagane. Podwójne myślniki przed nazwą parametru wynikają stąd, że skrypt jest napisany w języku Perl.
--ubrokerPropsFile C:\classicapp\ubroker.properties --ubrokerName UBroker.AS.asbroker1 --pasoeAppName myprod
Pierwszy parametr określa ścieżkę do pliku z właściwościami dla klasycznego AppServera, drugi jest nazwą instancji tego AppServera, wreszcie trzeci określa nazwę nowej instancji PASOE.
Po uruchomieniu komendy w katalogu conf zostały utworzone poniższe pliki:

Dla nas istotny jest plik .oemerge. Niemal całą jego zawartość stanowi przewodnik po migracji, zawierający sekcje np:
Tryby pracy (operating modes) – zawiera porady dotyczące migracji istniejących trybów pracy (state-reset, state-aware, stateless, statefree) na tryby pracy w PASOE. Omówione są proste instrukcje, realizujące ten etap migracji, które wiążą i zwalniają bieżącą sesję ABL (były omawiane na blogu kilka lat temu).
Procedury zdarzeniowe (event procedures) – omawiane są stare i nowe procedury (agentStartupProc, sessionStartupProcParam) związane z inicjalizacją agenta wielo-sesyjnego oraz każdej sesji ABL.
# paspropconv v1.15 (MSWin32)
#
# Input arguments:
#
# ubrokerPropsFile = C:\classicapp\ubroker.properties
# ubrokerMergeFile =
# ubrokerName = UBroker.AS.asbroker1
# pasoeAppName = myprod
# pasoeWebAppName = ROOT
# pasoeMergeFile = myprod.asbroker1.oemerge
# pasoeSetEnvFile = asbroker1_setenv
# convNotesDBFile = C:\OPENED~1\bin\paspropconv_notesdb.en
# logFile = paspropconv.log
# loggingLevel = 2
#
# Operating Modes
# ---------------
#
# The classic AppServer supports 4 operating modes:
# state-reset
# state-aware
# stateless
# statefree
#
# In the classic AppServer, the operating mode is specified when the AppServer
# is deployed. Consequently, all ABL sessions supported by the AppServer
# employ the same operating mode.
#
# In PASOE, the operating mode of a session is not specified during deployment.
# As such, a single PAS server can support concurrent ABL sessions, each
# emulating the behavior of different classic operating modes.
#
# To support the different types of operating mode behavior
# provided in the various classic modes, some ABL code modifications
# may be required. It is recommended that these changes are made in
# the PASOE sessionConnectProc () and
# sessionDisconnProc () event procedures.
.......
[AppServer.Agent.myprod]
PROPATH=${CATALINA_BASE}/openedge,${CATALINA_BASE}/webapps/ROOT/WEB-INF/openedge,.....
agentMaxPort=2202
agentMinPort=2002
keyAlias=
keyAliasPasswd=
keyStorePasswd=
keyStorePath=${DLC}/keys/
noSessionCache=0
numInitialSessions=5
sessionActivateProc=
sessionConnectProc=
sessionDeactivateProc=
sessionDisconnProc=
sessionExecutionTimeLimit=0
sessionShutdownProc=
sessionStartupProc=
sessionStartupProcParam=
sessionTimeout=180
sslAlgorithms=
sslEnable=0
.......
Ostatnia sekcja nie jest komentarzem – zawiera zestaw właściwości, które powinny zostać scalone z plikiem openge.properties dla nowej instancji serwera.
Dalsze porady dotyczą ręcznej konfiguracji wynikającej z różnic w ścieżkach dostępu, architektury systemu operacyjnego, zmiennych środowiskowych, połączeń z bazami danych itd.
Dla pełniejszych informacji warto pobrać i przeczytać dokument: Quick Start: Moving Your Classic AppServer Applications to the Progress® Application Server for OpenEdge®.