OpenEdge 12.2

Pół roku, tyle mniej więcej czasu upłynęło od pojawienia się poprzedniej wersji OpenEdge. Zobaczmy co ciekawego pojawiło się w OE 12.2

Zacznijmy od silnika bazy danych i strojenia parametrów online. To dla nas nie jest zaskoczeniem, ponieważ w zapowiedziach wysoka dostępność była jedną z wiodących funkcji całej serii OE 12.

W OE 12.2 jest już 91 takich parametrów. Możemy je zmieniać w programie ABL lub w narzędziu PROMON. Dla administratorów to drugie rozwiązanie jest ciekawsze, ponadto dostępne już w OE 12.1. Wystarczy wejść do menu R&D -> opcja 4. Administrative Functions -> 16. Adjust Startup Parameters (nie pomylmy z opcją Startup Parameters w menu 1. Status Displays).

Tak więc, obecnie dodano: -semsets, -aiarcdir, -Ma, -Mm, -ssj, -dbnotifytime, -dbnotifyops.
Około 20 parametrów można zmienić opcją proutil… increaseto… Pamiętajmy, że każdy zmiana jedną z powyższych metod jest tylko do końca sesji serwera bazy! Aby mieć zmianę na stałe trzeba użyć pliku z parametrami.

Drugim ciekawym tematem jest PASOE. Wprowadzono mechanizm do migracji wybranych aplikacji między instancjami. Do tej pory można było przenieść całą instancję (wkrótce napiszę jak to zrobić), bądź wdrożyć aplikację webową w kilku ruchach. W OE 12.2 rozszerzono komendę tcman (pasman) o opcje export/import. Służą one do przenoszenia całych aplikacji ABL. Aplikacja ABL to session manager + jeden lub więcej agentów wielosesyjnych, wspólna konfiguracja zabezpieczeń, jedna lub więcej aplikacji webowych oraz usługi ABL, zmienne środowiskowe, skrypty itd.

Otóż całą taką aplikację można wyeksportować jednym poleceniem tcman export

Cały proces przebiega automatycznie. Powstaje plik archiwizacyjny o rozszerzeniu .oear, którego zawartość widzimy poniżej.


Plik ten instalujemy w docelowej instancji poleceniem tcman import.
To jeszcze nie koniec, bo jeśli chcemy dokonać migracji niestandardowej, dopasowanej do naszych potrzeb, możemy to zrobić wykorzystując wzorzec ../tlr/build.xml i Ant.

PASOE wyposażono w funkcję agent self-management.
Serwer aplikacji proaktywnie testuje połączenia z bazą danych i jeśli wystąpi awaria, agent zmniejsza wartość parametru: maksymalna liczba sesji ABL oraz informuje broker PASOE aby zmniejszyć ilość równoczesnych żądań do bazy danych.
Zainteresowanych innymi nowościami OE 12.2 odsyłam do stron progress.com.

OpenEdge 12.1. Co nowego…

Tak się składa, że klienci OpenEdge “odpuszczają” sobie wersje “zerowe”, czekając na kolejną w serii, zakładając (czy słusznie?), że posiada ona sporo bugów. Takie podejście jest charakterystyczne także dla wielu innych technologii (z wyłączeniem oczywiście gadżetów). No ale, mamy na rynku wersję OE 12.1, która niesie ze sobą kilka ciekawostek.

Na początek jednak ważna informacja dotycząca instalacji: począwszy od wersji OpenEdge 12.1 Java (JDK) nie jest już dystrybuowana wraz z instalatorem OE. Produkt ten musi być wstępnie zainstalowany przez klienta OpenEdge.

Problem ten został bardzo dobrze wyjaśniony w bazie wiedzy.
Pokazano tam jak sprawdzić wersję zainstalowanej Javy i skąd pobrać produkt dla danego systemu operacyjnego.

W funkcjonalności “wysoka dostępność” wprowadzono m.in. drobne udoskonalenia w replikacji danych – komenda dsrutil oraz nowe pola w tablicach VST.

Zwiększona została liczba parametrów, których wartość można zwiększyć online (-ecsize & -secsize).

Możliwa stała się edycja niestrukturalnych pól schematu dla bazy online (nie jest wymagana blokada exclusive dla schematu).

Wprowadzono dodatkowe możliwości obsługi ekstentów bazy online np. zmianę rozmiaru ekstentu zmiennego czy zamianę go na ekstent stały.

Przetwarzanie SSJ (Server-Side Join) zaimplementowano także dla zapytań dynamicznych.

Zmienione zostały domyślne wartości wielu parametrów startowych bazy danych, co ma poprawić ogólną wydajność.

W serwerze aplikacji (PAS) dodano komendę refreshagents, która kończy wszystkie sesje w agencie wielosesyjnym, dzięki czemu można aktualizować aplikację ABL w czasie rzeczywistym. Umożliwia to np. aktualizacje schematu online dla aplikacji.

Odroczone logowanie w PAS pomaga znaleźć przyczynę awarii agenta, dostarczając dodatkowe dane związane z awarią. Odroczone logowanie poprawia także wydajność, rejestrując tylko niewielką ilość informacji związanych z awarią agenta.

Wprowadzono obsługę uwierzytelniania klientów ABL, łączących się z PAS po protokołach: APSV, REST, SOAP, WEB.

To oczywiście nie wszystko. Dla ciekawych zachęcam do lektury pod tym adresem oraz tutaj.

OpenEdge 12

Stało się! Zgodnie z zapowiedziami nowa wersja OpenEdge 12 jest już na rynku. Jak zwykle gdy pojawia się nowy produkt z wyższym głównym numerem towarzyszy mu szczególnie duże zainteresowanie. Jakie najciekawsze nowości niesie ze sobą OE12? Było na ten temat w necie kilka webinarów, firma Galeos dostarczyła jeden po polsku, ale ja chciałem spojrzeć na nowego OpenEdge’a od strony praktyczno-technicznej.

Sztandarową nowością jest szybszy serwer baz danych, zawdzięczający tę poprawę dzięki kilku istotnym usprawnieniom.

Do wersji OE11 włącznie, serwer bazy danych OpenEdge obsługuje żądania od klientów zdalnych w sposób seryjny – jedno po drugim. Jeśli którekolwiek z żądań nie może być od razu obsłużone, na przykład, gdy istnieje blokada rekordu, żądanie to jest zawieszane i przesyłane na tył kolejki. Jeśli blokada rekordu zostanie zwolniona, klient i tak nadal czeka na swoją kolej. W OE12 serwer bazy może obsługiwać klientów zdalnych jako proces wielowątkowy. Służy do tego parametr -threadedServer 1, który jest włączony domyślnie. Równoległe przetwarzanie żądań poprawia wydajność poprzez usprawnienie mechanizmu oczekiwania na zwolnienie blokady (lock wait processing), odseparowanie od połączeń OLTP itp.

Drugą istotną zmianą w technologii jest możliwość obsługi złączeń z kilku tablic po stronie serwera (Server-Side Join). Do tej pory złączenia te były realizowane po stronie klienta, przez co przez sieć była transportowana znacznie większa ilość danych niż ta, która była istotna w zapytaniu. W OE12 takie zapytania są rozwiązywane po stronie serwera. Tylko rekordy, które spełniają warunki zapytania, są przesyłane do klienta, co znacząco poprawia wydajność. Obsługiwane są połączenia FOR EACH do 10 tablic. Funkcja jest włączana parametrem -ssj 1 i wymaga wielowątkowego serwera.

Trzecim elementem jest usprawnienie problemu występowania konfliktów dostępu do tablicy BHT (Buffer Hash Table).  Mechanizm BHT pozwala w wydajny sposób sprawdzić czy żądany blok z danymi znajduje się już w puli buforów, czy też trzeba go wczytać z dysku. Różne procesy walczą o aktualizację tablicy BHT, co wymaga dostępu do zapadek (latch) i tu występują konflikty. Wprowadzono (od 11.7.3) parametr -hashLatchFactor określający ilość zapadek jako procent parametru –hash. Mechanizm ten poprawia współbieżność dla losowego dostępu do puli buforów bazy danych.

Progress Software twierdzi, że powyższe nowości mogą przyspieszyć działanie serwera aż trzykrotnie i to bez jakichkolwiek zmian w samej aplikacji!

PASOE: W nowym serwerze aplikacji wprowadzono PASOE HealthCheck – proces który monitoruje serwer i system operacyjny i określa relatywny „stan zdrowia” agenta PASOE.

Te informacje mogą być użyte do podjęcia działań w celu uzdrowienia PASOE.

Na przykład w nowym interfejsie API mamy StopAgent API, którego zadaniem jest wycofanie bieżącej instancji serwera z eksploatacji (zatrzymanie akceptowania nowych żądań, zakończenie przetwarzania bieżących żądań i wyłączenie); jednocześnie startuje nowa instancja serwera.

Replication AI File Streaming: wprowadzono ulepszony mechanizm w OE Replication.

Serwer replikacji wysyła dane AI w taki sam sposób, jak w poprzedniej wersji (opisanej we wcześniejszym artykule nt OE11), ale wielowątkowy agent replikacji buforuje przychodzące bloki AI w buforze bloku replikacji (RSB). Bloki te są następnie odczytywane z bufora RSB i zapisane w bazach target. Ten mechanizm eliminuje kolejkowanie bloków AI po stronie bazy Source i utratę części danych w przypadku awarii.

Progress Development Studio

Wprowadzono sposób poprawienia jakości kodu ABL dodając Analizator Kodu ABL SonarLint, który stale analizuje i mierzy jakość kodu pokazując problematyczne miejsca. Zawiera także zalecenia jak rozwiązać napotkane problemy, jak lepiej napisać kod. Pomaga to osiągnąć lepsze praktyki kodowania i poprawić wydajność aplikacji.

Analizator można uruchomić dla określonego pliku, zestawu plików, ostatnio zmienionych plików lub nawet całego projektu.

Pierwszym krokiem jest ustawienie w preferencjach zasad i i innych parametrów.

Następnie w istniejącym projekcie wywołujemy Analizę pliku lub plików.

W tym prostym przykładzie, jeśli np. w kodzie jest definicja zmiennej, do której nie ma odniesienia w dalszej części kodu, jest to zgłaszane w Raporcie z analizy.

Zaktualizowany został zestaw kontrolek .NET. OpenEdge 12.0 używa Infragistics NetAdvantage dla .NET.

Tyle wybranych nowości jakie niesie ze sobą nowa wersja OpenEdge 12. Więcej szczegółów szukajcie na stronach Progress Software.

Pizza & Beer wrzesień 2018

Zgonie z wiosenną zapowiedzią 20 września spotkaliśmy się w Hotelu Marriott na kolejnej “pizzy i piwie”. Standard spotkań, sponsorowanych przez firmę Galeos, pozostał na wysokim poziomie (popatrzcie tylko na zdjęcia!). Pizza została zastąpiona przez tyle przystawek, że trudno było wszystkiego popróbować.

Na samym początku firma Galeos zaprezentowała nową, dynamiczną stronę internetową, której fragment zrzutu ekranu jest w nagłówku do niniejszego postu.

Podobnie jak na ostatnich spotkaniach mieliśmy trzy prezentacje, każda z innej dziedziny:

1. OpenEdge Table Partitioning
2. ODATA – Open Data Rest API Protocol for OpenEdge
3. Temp-Table Monitorowanie i Strojenie

Dwa pierwsze tematy wybrała firma Galeos. Temat związany ze strojeniem i monitorowaniem tablic tymczasowych zwyciężył w plebiscycie z dużą przewagą. Dziękujemy Wszystkim głosującym!

Wszystkie prezentacje znajdziecie w dziale Do pobrania.

OpenEdge 11.7.3

Pojawiła się wersja OpenEdge 11.7 z Service Packiem 3, czyli 11.7.3, a wraz z nią kilka ciekawych nowości.

1. Archiwizacja logu bazy danych.

Mamy kilka parametrów dających możliwość automatyzacji archiwizacji pliku log bazy online.
-lgArchiveEnable – włączenie możliwości archiwizacji logu.
-lgArchiveDir – podanie katalogu, w którym będą zapisywane zarchiwizowane fragmenty. Brak parametru oznacza bieżący katalog.
-lgTruncateTime – czas wykonania obcięcia i archiwizacji logu w formacie HH:MM. Musi być ustawiony w parze z poniższym parametrem:
-lgTruncateFrequency – częstotliwość, czyli w jakie dni ma być wykonywane obcięcie i archiwizacja. “0” oznacza codziennie.
-lgTruncateSize – obcięcie nastąpi po osiągnięciu przez plik określonego rozmiaru w MB.

Po przykładowym uruchomieniu serwera bazy możemy zweryfikować ustawienia w promonie: R&D -> 4. Administrative Functions -> 15. Database log file management

Archiwizacja ma być codziennie o godz. 20:35.

proserve sports2000 -lgArchiveEnable -lgTruncateFrequency 0 -lgTruncateTime 20:35

Podczas archiwizacji został utworzony plik, zawierający w nazwie oryginalną nazwę plus datę i czas obcięcia:
sports2000.lg.2018-05-15.20-35.00
Oryginalny plik rozpoczyna się komunikatami o archiwizacji.

sports2000.lg

2. PASOE

W OE 11.7.3 zajęto się także tematem migracji aplikacji z klasycznego AppServera do PASOE. W sieci znajdziemy poradnik: Quick Start: Moving Your Classic AppServer Applications to the Progress Application Server for OpenEdge a także webinar: Moving Your Classic AppServer Applications to the Progress Application Server for OpenEdge.

PASPROPCONV – nowe narzędzie/komenda służące do migracji właściwości z klasycznego AppServera do PASOE. Właściwości są pobierane z pliku ubroker.properties lub .merge, a następnie generowany jest szereg plików np. pasoename.ubrokername.oemerge. Dokładne informacje można znaleźć w Progress Application Server for OpenEdge: Quick Start Guide.

Komenda tcman deploy została wzbogacona o nowy parametr -l. Powoduje on, że wdrożenie nowej aplikacji odbywa się bez konieczności restartu instancji PASOE.

Zostało udoskonalone zarządzanie agentem multi-session. Do tej pory zamknięcie agenta następowało natychmiastowo, przerywając obsługiwane żądanie. Dodane zostały dwa opcjonalne parametry waitToFinish oraz waitAfterStop rozwiązujące ten problem.

Dodane zostało także REST API umożliwiające dodanie nowego agenta multi-session dla aplikacji.

Pełną listę wprowadzonych zmian znajdziemy w dokumencie: OpenEdge® Service Pack 11.7.3: New Information.

 

 

Pizza & Beer kwiecień 2018

19. kwietnia odbyło się pierwsze w 2018 r. spotkanie z cyklu Pizza & Beer.
Na miejsce spotkania firma Galeos wybrała, leżący w samym centrum Warszawy, Hotel Marriott.
Oprócz smacznych przekąsek, piwa i ciekawych rozmów w kuluarach mieliśmy trzy prezentacje, których bohaterem był Progress Application Server for OpenEdge czyli PASOE.
1. Progress Application Server for OpenEdge (PASOE)
2. Wprowadzenie do serwisów REST za pomocą WebHandlerów OE
3. OpenEdge Authentication Gateway

Dyskutowaliśmy na temat przyszłych prezentacji i doboru tematów. Ustaliliśmy, że firma Galeos przedstawi kilka propozycji do wyboru, a Państwo wybiorą te najciekawsze w drodze głosowania.

Wszystkie te prezentacje znajdują się w dziale Do pobrania.

Następne spotkanie planujemy na 20 września w tym samym miejscu.

EMEAPUG Challenge – Praga 2017

O tym wydarzeniu informowaliśmy już pod koniec zeszłego roku. EMEAPUG Challenge 2017 odbyła się w dniach 15-17.11 w czeskiej Pradze. Uczestniczyła w niej rekordowa liczba 526 osób z 35 krajów, w tym 8 osób z dwóch polskich partnerów: Novum z Łomży oraz Politechniki Gdańskiej. Uczestnicy mieli do wyboru 83 prezentacje i 12 warsztatów.

Jedna z pierwszych prezentacji – Rob Straight przedstawia OpenEdge Roadmap.


Nie samym Progressem żyje programista czy administrator. Mecz Polska kontra reszta świata.


A tutaj fragment polskiego zespołu. Wynik pozostał nieznany nawet sędziom.


Te karykatury będą kiedyś warte fortunę!


Przykład integracji wielopoziomowej – Marków dwóch: z Novum i Progress Bravepoint, a z tyłu Peter Judge z PSC.


Marco Squintani prezentuje najsłynniejszy włoski gest


Wymyślna fontanna przed restauracją na Malej Stranie gdzie, zaproszeni przez firmę Galeos, za chwilę zjemy przepyszną kolację!


To była baaardzo udana konferencja. Następna odbędzie się za rok w Dublinie.

OpenEdge 11.7

Wprowadzeniu najnowszej wersji OpenEdge 11.7 towarzyszyło bardzo duże zainteresowanie. Było ono związane m.in. z niedawnym pojawieniem się nowych technologii i produktów, które szybko zyskują uznanie. Mowa głównie o nowym serwerze aplikacji PASOE i produktach firmy Telerik a także produktach bazodanowych. Ta ostatnia z wersji 11-tkowych (następna ma być OE 12) nie zawiodła oczekiwań. Przyjrzyjmy się co ma nam do zaoferowania.


OpenEdge Authenticating Gateway

OE Authenticating Gateway jest kluczowym elementem scentralizowanego systemu identyfikacji i autoryzacji połączeń z bazą danych. Jest to implementacja systemu Security Token Service (STS) i jest obsługiwane przez różne komponenty OpenEdge.

Centralnym punktem tego systemu jest zabezpieczona instancja Progress Application Server for OpenEdge (PAS) z wdrożoną aplikacją webową OESTS. Serwer bazy ściśle współdziała z Gatewayem: gdy użytkownik che się zalogować do bazy, serwer przesyła jego dane do OEAG w celu identyfikacji i autoryzacji. Jeśli ten proces się powiedzie, Gateway tworzy obiekt tzw. client-principal – zaszyfrowany klucz do dalszych połączeń.


OpenEdge Change Data Capture

OE Change Data Capture (CDC) to nowy produkt służący do przechwytywania i przechowywania zmian (Create, Update, Delete) w bazach danych. CDC działa poprzez specjalne trygery i jest wbudowany w system zarządzania bazą. Zakres przechwytywanych danych zależy od użytkownika, który może zdefiniować zasady (CDC Policy) na poziomie tabel i/lub pól. Dane te są przechowywane w tabeli źródłowej w relacyjnej postaci, a dostęp do nich użytkownik ma poprzez zwykły kod ABL lub SQL. W oparciu o te dane można stworzyć własny system kopiujący wybrane informacje np. do innej bazy i czyszczący je w bazie źródłowej. OE Change Data Capture można kupic oddzielnie lub mieć go za darmo jeśli posiada się licencję OE Advanced Enterprise RDBMS.



OE Replication Target Synchronization

OE Target Synchronization to system wspomagający dostarczanie danych 24x7x365. Jest on rozwinięciem istniejącego OE Replication.
W systemie tym mamy dwie bazy: zródłową i docelową. Transakcje z bazy żródłowej są “przenoszone” do docelowej poprzez bufory AI. W momencie awarii bazy źródłowej (głównej) mamy bazę docelową, która może stać się bazą główną do momentu usunięcia awarii.
Niestety, od tego momentu do odbudowy wyjściowej konfiguracji baza nie jest chroniona.

OE Replication Target Synchronization rozwiązuje ten problem. Replikacja jest tutaj realizowana do dwóch baz docelowych i awaria bazy źródłowej powoduje automatyczne przełączenie na układ: baza źródłowa -> baza docelowa. Administrator ma więcej czasu (i komfortu) aby odbudować bazę główną.

Ten produkt jest darmowy przy migracji z wcześniejszej wersji OE Replication, OE Replication Plus i OE Enterprise Advance RDBMS.

Customer Self Service (CSS)

CSS to portal, w którym możemy znaleźć m.in. wszystkie nasze licencje, których dane mogą posłużyć do wygenerowania pliku konfiguracyjnego .cfg. Wcześniej, jedyną metodą aby ten plik uzyskać była instalacja wybranych produktów. Zmiana pliku była konieczna np. przy zamianie wersji czasowej na bezterminową, dla poprawności danych podczas audytu oprogramowania itp.
Portal dostępny jest pod adresem: https://secure.progress.com/css/



ABL Dojo

Dojo to po japońsku sala do ćwiczeń sztuk walki. To także miejsce gdzie można było testować skrypty Kendo UI. ABL Dojo służy do testowania programów ABL poprzez przeglądarkę www na dowolnym urządzeniu. Dojo jest podłączone do bazy sports2000. Każdy ma do niego dostęp. Sprawdżcie sami: ABL Dojo.

Top Community Requests

Podobnie jak dla poprzedniej wersji użytkownicy OpenEdge mogli wnosić propozycje zmian/ulepszeń i niektóre zostały uwzględnione w OE 11.7 np:

  • Poprawa wydajności OOABL
  • Udoskonalenia w tablicach VST w celu dostarczenia dodatkowych
    informacji podczas procesu debugowania
  • OE Management – alerty i wartości progowe dla PAS
  • Debugger dla Serwera Aplikacji Progress
  • Obsługa EMPTY-TEMP-TABLE dla uchwytu tabeli Temp-table
  • Poprawa wydajności dla OpenEdge Developer Studio
  • inne…

Więcej informacji znajdziecie w dokumentacji Progressa i np. na stronie poświęconej nowościom OE 11.7.

Header image source: Wallpapers Wide.

Pizza & Beer po raz trzeci

Zapowiadane na wiosnę 2017, trzecie spotkanie z cyklu Pizza & Beer odbyło się 18.05 dokładnie “pod siedzibą” firmy Galeos Polska – w restauracji MOMU.
Znowu nie było pizzy, ale nikt się już temu nie dziwił, bo jedzenie było bardzo urozmaicone i smaczne. Wiadomo, MOMU piecze dymem! Piwa za to było pod dostatkiem, i to Pilsnera z kijka.

Najciekawsze jednak były prezentacje. Gościliśmy prelegenta z Progress Software – Marka Bujnarowskiego. Marek jest znany przede wszystkim polskim użytkownikom jako wieloletni pracownik Wsparcia Technicznego. Obecnie należy do zespołu MDBA Services i właśnie tym usługom była poświęcona jego bardzo ciekawa prezentacja. W przerwie Marek był tak oblężony, że nie miał kiedy napić się piwa!

Po przerwie na kawę i coś słodkiego uczestnicy mieli jeszcze dwie prezentacje – Nowości OE11.7 oraz Wprowadzenie do Kendo UI Builder.

Wszystkie te prezentacje znajdują się jak zwykle w dziale Do pobrania.

Dziękujemy za przybycie i zapraszamy ponownie!

Instalacja OpenEdge w nowej wersji

Większość z Was wie, że model licencjonowania PSDN (Progress Software Developer Network) został zastąpiony przez Progress OpenEdge Developers Kit.

Zmiana wiąże się z rozszerzeniem dostępu do produktów Telerik, Corticon oraz wybranych usług. Model OEDK zawiera 5 licencji: Classroom (darmowa), Basic, Corporate, Premier, Innovator. Np. od licencji Corporate dostępne są wszystkie nowe szkolenia online. Porównanie 5 licencji możecie znaleźć tutaj.

Instalacja OpenEdge została uproszczona za pomocą tzw. plików instalacyjnych. Nie trzeba już wpisywać numerów licencji i kodów – wystarczy tylko wybrać z listy instalowane produkty.
I teraz wielu z Was zapewne zaprotestuje: przecież już od OE 10.1C można było instalować bez “wklepywania” tych kodów! Rzeczywiście od tamtej wersji można było zapisać plik licencyjny w formacie html i podczas instalacji wczytać License Addendum File. Jednakże była także opcja instalacji przez ręczne wpisywanie S/N oraz kodów wybranych produktów. Myślę, że wiele osób w ogóle nie stosowało opcji z Licenses Addendum File. Obecnie generowanie plików instalacyjnych (aktywacyjnych) jest obowiązkowe.

Po kolei: po zalogowaniu się do swojego konta ESD wybieramy opcję Manage OEDK Activation Files. Tu trzeba nadmienić, że Activation Files to to samo co Installation Files. Informacja, jaką dostajemy automatycznie emailem odnosi się do Installation Files, co może być w pierwszej chwili mylące.

Po wybraniu powyższych informacji i nadaniu nazwy Reference zaznaczamy które produkty będziemy instalować. Takich plików aktywacyjnych można wygenerować kilka dla różnych produktów, co jest bardzo użyteczne.

Zawartość utworzonych plików można przeglądać.

Podczas instalacji wystarczy wczytać konkretny plik i lista produktów pojawia się automatycznie.

1 2 3 4