=====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 [[prog:oracle_rest_data_service_multiple_databases|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**: - Aufsetzen einer APEX ORDS Standards Umgebung siehe => [[prog:oracle_apex_20_2_install_windows_19c_linux_8|Oracle Apex 21.1 / ORDS 21.2 / Tomcat 9 / Apache 2.4 / Varnish mit der Oracle Datenbank 19c unter Oracle Linux 8 - Installation]] - Konfiguration eines weiteren Connection Pools auf das Zielschema - 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: ---- ==== 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: Saved on Mon Aug 02 15:37:55 CEST 2021 @053281B7897GGHj1BF72243AF9C2679 immohaus immohaus.owa_custom.authorize pkg0001.home 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: wwv_flow_epg_include_modules.authorize ---- ====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/" Options FollowSymLinks AllowOverride None Require all granted .. ---- ==== 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==== ORDS Doku: * https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/21.2/aelig/migrating-mod_plsql-ords.html#GUID-962D052D-A255-47FD-A189-C085C23C3E37