Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_ords_mod_plsql_with_apex

Aufruf einer mod_PLSQL Applikation mit dem ORDS 21.2 parallel zu einer bestehenden APEX Umgebung - MOD_PLSQL mit dem ORDS ersetzen

Aufgabe:

Nach der Installation einer Oracle APEX Basis Installation mit dem Apache httpd / Tomcat / ORDS Webserver soll in der gleiche Umgebung auch eine alte mod_plsql Applikatoin 1zu1 weiter betrieben werden.

Ähnlich wie Oracle ORDS 3.0 (Oracle REST Data Services) für mehrere APEX Datenbank Instancen betreiben, allerdings funktioniert in der Version 21.2 erstaunlicher weise sogar gleich auf Anhieb.

Ablauf:

  1. Konfiguration eines weiteren Connection Pools auf das Zielschema
  2. Authorisierung/Standard Seite hinterlegen

Neuen Connection Pool im ORDS als MOD_PLSQL Ersatz aufsetzen

Achtung, hier wird nur der zusätzliche Pool angelegt, wo die Konfiguration abgelegt werden muss wird bei der Bais Installation definiert, siehe dazu den APEX 21.1 Artikel (Link weiter oben Punkt 1)!

Hilfe anzeigen lassen:

 java -jar ords.war setup --database

Konfiguration starten / nur Connection Pool anlegen ohne weitere Optionen:

java -jar ords.war setup --database immohaus
Specify the database connection type to use.
Enter number for [1] Basic  [2] TNS  [3] Custom URL [1]:1
 
Enter the name of the database server [apex01.gpi.local]:
Enter the database listen port [1521]:
 
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:1
Enter the database service name [GPIDB]:
 
Enter 1 if you want to verify/install Oracle REST Data Services schema or 2 to skip this step [1]:2
Enter 1 if you want to use PL/SQL Gateway or 2 to skip this step.
 
If using Oracle Application Express or migrating from mod_plsql then you must enter 1 [1]:
 
Enter the PL/SQL Gateway database user name [APEX_PUBLIC_USER]:immohaus
Enter the database password for immohaus:
Confirm password:
 
Enter a number to select a feature to enable:
   [1] SQL Developer Web  (Enables all features)
   [2] REST Enabled SQL
   [3] Database API
   [4] REST Enabled SQL and Database API
   [5] None
Choose [1]:5

Datei conf/immohaus.xml wird angelegt.


URL hinterlegen

Damit über die URL der Ords auch weiß welcher Pool verwendet werden soll, muss ein Alias für eine URL hinterlegt werden.

Hilfe anzeigen lassen:

java -jar ords.war help map-url

URL Mapping auf dem Pool anlegen:

 java -jar ords.war map-url --type base-path /immohaus immohaus

Die Datei url-mapping.xml wird angelegt:

<?xml version="1.0" encoding="UTF-8"?>
  <pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
  <pool name="immohaus" base-path="/immohaus" updated="2021-08-02T13:49:20.442Z"/>
</pool-config>

Mod_PLSQL Parameter hinterlegen

Die notwendigen Konfigurationsparameter für eine MOD_PLSQL Anwendung können nun in der Pool Konfiguration hinterlegt werden.

Mapping siehe https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/21.2/aelig/migrating-mod_plsql-ords.html#GUID-C10DBB78-6C7A-4E2E-ADC2-3D24F087C031

conf/immohaus.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Saved on Mon Aug 02 15:37:55 CEST 2021</comment>
<entry key="db.password">@053281B7897GGHj1BF72243AF9C2679</entry>
<entry key="db.username">immohaus</entry>
<entry key="security.requestAuthenticationFunction">immohaus.owa_custom.authorize</entry>
<entry key="misc.defaultPage">pkg0001.home</entry>
</properties>

Nun kann über https://apex01.gpi.local/ords/immohaus/ die Applikation wie zuvor über MOD_PLSSQL aufgerufen werden.

Sollte der Aufruf nicht funktionieren, prüfen das die APEX Security Verify Fuktion nicht im default.xml sondern auf den einzelen Pools definiert ist!

Wie auf den conf/apex.xml Pool:

<entry key="security.requestValidationFunction">wwv_flow_epg_include_modules.authorize</entry>

Verweise auf statischen Kontent über den Apache umleiten

Den statischen Content der APP, wie Bilder, JavaScipt auf dem neuen Webserver ablegen und über den Apache ausliefern lassen.

Der Statische Connect muss dann über einen Alias auch vom Apache ausgeliefert werden, in der entsprechenden Vhost Section hinterlegen:

vi /etc/httpd/conf.d/ssl.conf
 
..
Alias "/immohaus/" "/srv/immohaus/"
 
<Directory  "/srv/immohaus/">
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
..

Fazit

Ich bin vorsichtig begeisert, nach vielen Rückschlägen und Eigentümlichkeiten mit den ORDS nun mal einfach ein Feature verwendet und es funktioniert einfach so!

Bin platt !


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
prog/oracle_ords_mod_plsql_with_apex.txt · Zuletzt geändert: 2021/08/02 22:00 von gpipperr