OpenEdge 12.4

Najnowsza wersja OE 12.4 pojawiła się jako non-LTS Release. Ponieważ dostaję pytania w tej sprawie, kilka słów wyjaśnienia.
Wersja non-LTS (Non-Long Term Supported), jak sama nazwa wskazuje, jest bez długotrwałego wsparcia technicznego i jest przeznaczona dla tych, którzy wymagają najnowszych rozwiązań i poprawek. Wersja ta zapewnia również klientom możliwość używania i testowania funkcji, które pojawią się w nadchodzących wersjach obsługiwanych długoterminowo.
Wersja LTS (Long Term Supported) umożliwia kilkuletnie wsparcie techniczne i większą stabilizację. Dla przykładu: ostatnia wersja LTS to 12.2 z datą wygaśnięcia 10.2028, a dla wersji OE 11 to 11.7 (04.2025). OE 12.1, która jest non-LTS wygasa w 09.2022, więc za ok. rok (więcej informacji znajdziecie tutaj). Warto pamiętać o tym planując migrację do konkretnej wersji.

Zaczynamy, podobnie jak dla OE 12.3, od nowinek w definiowaniu zmiennych.
Od OE 12.4 dopuszczalne są poniższe konstrukcje, wraz z działaniami:

VAR INT a = 50, b = 20, x = a + b , y = a - b, z = x - y.

Poniższy przykład pokazuje definiowanie i inicjowanie zmiennych za pomocą funkcji standardowej, funkcji zdefiniowanej przez użytkownika, oraz metody:

VAR DATETIME dtm = DATETIME(TODAY,MTIME).
VAR INTEGER x = myFunction().
VAR INTEGER y = classMethod(output v).

Tutaj, z kolei, widzimy przykład definiowania określonych i nieokreślonych elementów macierzy i inicjowanie ich za pomocą wyrażenia:

VAR INT[2] w = [123, a + b].
VAR INT[3] x = [funct( ), 123, a + b].
VAR INT[ ] y = [123, a + b].
VAR INT[ ] z = [funct( ), 123, a + b].

Wprowadzono nową instrukcję języka ABL AGGREGATE do obliczania zagregowanych wartości w bazie danych
po stronie serwera. Wcześniej obliczenia te były wykonywane po stronie klienta przy użyciu instrukcji ACCUMULATE
i funkcji ACCUM.
Teraz można użyć pojedynczej instrukcji AGGREGATE dla COUNT, TOTAL i AVERAGE. Instrukcja AGGREGATE upraszcza kod i poprawia wydajność ponieważ obliczenia są wykonywane po stronie serwera bazy danych. Patrz poniższy przykład:

VAR DECIMAL avgBalance.
AGGREGATE avgBalance = AVERAGE(Balance) FOR Customer
WHERE Country EQ 'USA' AND City EQ 'Chicago'.
MESSAGE "Average balance: " avgBalance
VIEW-AS ALERT-BOX.

Ważną nowością dla administratorów jest wprowadzenie zastrzeżonego trybu bazy danych (restricted database access).
Pamiętacie zapewne, że możliwe jest włączenie w bazie trybu quiet point. Wstrzymuje on aktywne transakcje aż do momentu jego wyłączenia. Są jednak sytuacje gdy trzeba wykonać operacje administracyjne nie martwiąc się o niekompletne transakcje czy nowe logowania w trakcie pracy np: kasowanie dużej ilości niepotrzebnych danych, synchronizacja z innym źródłem, zrzut i ładowanie rekordów itd.
Tryb pracy restricted online umożliwia wykonywanie takich zadań z wykorzystaniem puli buforów czy wspomagających procesów asynchronicznych.

proutil [nazwa-bazy] -C dbrestrict dbadmin enable disconntimeout 500
Powyższa komenda umożliwia dostęp do bazy jedynie dla procesów administracyjnych (database utilities). Ustawiono opcjonalny parametr odłączenia użytkowników na 500 s.
Akcja status pozwala na podgląd czy dany tryb został ustawiony. Patrz na poniższy zrzut ekranu:

Tryb dbadmin nie jest jedynym w OE 12.4. Są jeszcze tryby:
datamove – ograniczenie wszystkich operacji z wyjątkiem PROUTIL DATAMOVE
partitioncopy – ograniczenie wszystkich operacji z wyjątkiem PROUTIL PARTITIONMANAGE COPY
rollforward – ograniczenie wszystkich operacji z wyjątkiem RFUTIL ROLL FORWARD.
Dla każdego trybu można stosować akcje: enable, disable, status.

Inne ciekawe rozwiązania w OE 12.4 z zakresu “Continuous Operations” to zdefiniowanie domyślnego obszaru typu II dla tworzenia nowych obiektów bazodanowych (tabele, indexy, LOBs), uproszczony mechanizm obcinania (truncate) danych w tabeli online czy poprawiony mechanizm zarządzania obszarem before-image. Został on wprowadzony w OE 12.3 w procesie watchdog, a w OE 12.4 to już niezależny proces uruchamiany poleceniem probim [nazwa-bazy].

Wprowadzona została konsola do zarządzania w chmurze OpenEdge Command Center wersja 1.0 , która umożliwia zarządzanie zasobami i instalacją produktów OpenEdge na różnych komputerach i w różnych wersjach OpenEdge.

Po więcej nowości zapraszam do dokumentacji OE.