środa, 24 sierpnia 2011

Migracja do APEX Listener

Dziś zajmę się instalacją i konfiguracją Oracle Apex Listener-a w tzw. konfiguracji standalone. Konfiguracja standalone nie wymaga dodatkowego serwera aplikacji, dzięki temu uruchomienie Listenera jest bardzo proste i szybkie.

Zanim zacznę przedstawiać poszczególne kroki konfiguracji kilka słów o samym Apex Listenerze. Jak wiadomo Oracle Apex wymaga pewnego rodzaju Web Server-a który będzie serwował HTML do klienta (przeglądarki). Do czasu powstania Apex Listenera mieliśmy do wyboru tzw. Embeded PL/SQL Gateway (EPG) lub Oracle HTTP Server (OHS). Rozwiązania te miały kilka wad np. marne zabezpieczenia, przestarzałość technologiczną, małą elastyczność. W związku z tym Oracle chcąc rozwijać technologię APEX-ową zdecydował się stworzyć darmowe narzędzie, które by zniwelowało słabe strony warstwy pośredniczącej.


Apex Listener wprowadza wiele dodatkowy możliwości i udogodnień ,a konkretnie chciałbym zwrócić uwagę na:

  • brak potrzeby posiadania ORACLE HOME na komputerze, na którym Listener jest zainstalowany (połączenie z bazą odbywa się przy pomocy sterowników jdbc). Dzięki temu całe środowisko możemy rozproszyć.
  • Cachowanie, pliki aplikacji mogą być magazynowane w pamięci, czego efektem jest znacznie szybsze wyświetlanie stron.
  • Bezpieczeńśtwo, już na poziomie Listenera można określić do jakiej procedury użytkownik może mieć dostęp
  • inne..

To wszystko co powyżej można przeczytać w dokumentacji, ja chciałbym dodać z własnego doświadczenia, że APEX Listener znacznie przyśpieszył środowisko APEX-owe na moim laptopie. Działa to wyraźnie szybciej i stabilniej, dlatego zachęcam do migracji. Konfiguracje na laptopie sprowadziłem do Oracle APEX Listener w wersji 1.1.2 w opcji Standalone. Standalone oznacza tyle że korzystam z wbudowanego kontenera Java-wego i nie muszę instalować zewnętrznego serwera aplikacji. Oczywiście nic nie stoi na przeszkodzie aby skorzystać z dostępnych serwerów aplikacji takich jak np.:

- Oracle Web Logic Server (komercyjne)
- Oracle Glassfish Server (komercyjne)
- OC4J (komercyjne)
- GlassFish (darmowe)
- Tomcat (darmowe)


Aby rozpocząć instalację musimy mieć dostępną maszynę Javy w wersji minimum Java 6 Update 20 JDK lub nowszą. Bazę danych Oracle w wersji (Enterprise Edition, Standard Edition, Standard Edition One release 10.2.0.3 lub nowszej, lub Oracle Database 10g XE lub nowszą).
  1. 1. Ustawienie użytkownika łączącego Oracle z Apex Listenerem W tym celu logujemy się do bazy danych jako SYSDBA i zmieniamy użytkownika APEX_PUBLIC_USER.
    c:\>sqlplus / as sysdba

    sql> ALTER USER APEX_PUBLIC_USER IDENTIFIED BY twoje_tajne_haslo ACCOUNT UNLOCK;
  2. 2. Jeżeli do tej pory używałeś Embeded PL/SQL Gateway (EPG) i chcesz używać APEX Listenera na dotychczasowym porcie to musisz wyłączyć z niego nasłuch lub zmienić port nasłuchu. W tym celu należy uruchomić następującą polecenie PL/SQL:

    sql> begin
    --ustawienie wartości „0” wyłącza nasłuch
    dbms_xdb.sethttpport('0');
    end;
  3. 3. Od tej pory baza danych jest gotowa do współpracy z Apex Listenerem. Następnym krokiem jest przygotowanie APEX-a, a konkretnie pliki tematów. W tym celu niezbędna jest nam instalka aktualnie używanej (w bazie danych) wersji APEX-a a konkretnie katalog images z instalki.
    Najlepiej stwórzmy na dysku C katalog APEX i przekopiujmy do niego katalog images z instalki APEX-a.
  4. 4. Teraz przechodzimy do przygotowania samego APEX Listenera. W tym celu musimy pobrać najnowszą instalkę dostępną tutaj i rozpakować ją do naszego katalogu APEX na dysku C. W moim przypadku po rozpakowaniu Listenera mam następującą ścieżkę do pliku apex.war c:\APEX\apex_listener.1.1.2.131.15.23\apex.war.
  5. 5. Teraz możemy uruchomić inicjacyjnie Apex Listenera (pierwsze uruchomienie nazwane przeze mnie inicjacyjne różni się od następnych uruchomień). Aby wykonać uruchomienie należy z linii poleceń wprowadzić następujące komendy:

    #przechodzimy do katalogu apex listenera
    cd /
    c:\>cd APEX\apex_listener.1.1.2.131.15.23
    c:\APEX\apex_listener.1.1.2.131.15.23>java -Dapex.home=C:\APEX\listener_conf -Dapex.images=C:\APEX\images -Dapex.port=8080 -jar apex.war

    Jeżeli wszystko pójdzie prawidłowo to jeszcze w konsoli będzie trzeba podać 4 dodatkowe informację:

    a) Enter a username for the APEX Listener Administrator [adminlistener]:
    Jeżęli chcemy zostać przy zaproponowanej nazwie użytkownika administrującego Listenerem „adminlistener” to wystarczy zatwierdzić Enterem
    b) Enter a password for adminlistener:
    Tutaj wprowadzamy hasło dla zdefiniowanego w punkcie a) użytkownika i zatwierdzamy Enterem
    c) Confirm password for adminlistener:
    Potwierdzamy hasło wpisując ten sam ciąg znaków i potwierdzamy Enterem
    d) pozostałe kroki wyglądają identycznie jak poprzednie tylko że dla użytkownika „managerlistener”

    Po potwierdzeniu hasła dla użytkownika managerlistener, system automatycznie otworzy przeglądarkę na stronie configuracyjnej APEX Listenera.

    Należy uzupełnić wszelkie niezbędne informacje tj.:
    Password – podajemy hasło określone w pkt. 1
    Hostname – podajemy nazwę serwera lub adres IP na którym zainstalowana jest baza danych
    Port – zostawiamy bez zmian chyba, że Oracle Listener (nie mylić z APEX Listener) nasłuchuje na innym porcie
    SID – zgodny z konfiguracją bazy danych (dla Oracle XE należy zmienić na XE)

    Te informacje wystarczą aby nasłuch APEX zaczął działać. Zatwierdzamy przyciskiem Apply. Konfigurator powinien przenieść nas na główną stronę logowania APEX-a.

Od teraz możemy już zająć się używaniem środowiska APEX przy konfiguracji APEX Listener : ).

Chcą wyłączyć APEX Listener-a możemy zamknąć okienko konsoli lub użyć kombinacji klawiszy Ctrl+C po tej operacji APEX przestanie być dostępny.
Aby ponownie uruchomić APEX Listenera należy użyć tej samej komendy co w pkt. 5. Można ją nieco zmodyfikować np. zmienić port nasłuchu ale nie należy zmieniać ścieżki dla parametru -Dapex.home ponieważ spowoduje to uruchomienie ścieżki inicjacyjnej i całej konfiguracji z tym związanej.

Pewnie zaraz niektórzy się zapytają: Ale jak zrobić aby APEX Listenera uruchamiał się automatycznie wraz ze startem systemu ? Na tą chwilę odpowiem tak: Odwiedzajcie nasz Blog ! : ) W ciągu dwóch tygodni pojawi się artykuł jak uruchomić APEX Listenera jako Usługę Windows.

I jeszcze jedna uwaga.
Podana ścieżka instalacji oparta jest o system Windows jednak nic nie stoi na przeszkodzie aby dokładnie wykonać to samo np. na Linuxie, należy tylko odpowiednio zmodyfikować komendy systemu operacyjnego i ścieżki.

EDIT
Artykuł o ustawieniu Apex Listenera jako serwis windows dostępny już jest TUTAJ

4 komentarze:

  1. Zainstalowałem baze 11gR2 Standard One + Apex 4.1 + Listener na Windows Server 2008 32bit. Przy używaniu Apexa proces java.exe pochłania do 100% zasobów procesora. Z czym może być to związane? Jak ustawić cachowanie aby poprawić ten stan rzeczy? Embeded PL/SQL Gateway nie był tak pazerny na zasoby. Pozdrawiam, Jacek.

    OdpowiedzUsuń
  2. Proponowałbym w pierwszej kolejności przeinstalować Jave, najlepiej ściągnąć najnowszą wersję. Sam Listener nie jest CPU-żerny problem musi być gdzie indziej.

    OdpowiedzUsuń
  3. Dzięki za szybką odpowiedź. Java jest najnowsza 7. Może dlatego, że wszystko testuję na jednej wirtualnej maszynie ;) spróbuje odseparować Listenera na osobnym komputerze. Pozostaje kwestia ustawień Cache, jakieś sugestie?

    OdpowiedzUsuń