Inhaltsverzeichnis

Oracle Apex 5.0.4 ( 19.2) mit der Oracle Datenbank 12c (18c/19c) - Installation

Seit 12.July.2016 ist die Version 5.0.4 verfügbar, ab April 2019 die 19.1 , seit November 2019 die 19.2

Oracle Apex - Oracle Application Express ermöglicht es in der Datenbank deklarativ und auf Basis von SQL und PL/SQL komplexe Webanwendungen zu erstellen.

Der gesamte Apex Code liegt dabei in der Datenbank und ist damit voll in die Oracle Welt integriert.

Um die Webseite aufrufen zu können, ist allerdings ein Webserver notwendig.

Folgende Optionen sind hier möglich:

Bei der Installation kann unter der reinen notwendigen Apex Laufzeitumgebung (zum Beispiel für die produktive Umgebung) und der Apex Entwicklungsumgebung gewählt werden.

Ist die 12c DBConsole im Einsatz, sind auch schon wichtige Einstellungen für die Verwendung des PL/SQL Gateway Die Oracle 12c Datenbank mit Oracle Database Express administrieren vorbereitet.

Vor der Installation darauf achten, ob nicht bereits Apex 4.x installiert ist!

Wird das nicht benötigt und soll neu mit Apex 5 angefangen werden, zuvor die Version 4 einfach komplett deinstallieren!


Installation der Apex Development Umgebung mit dem Embedded PL/SQL Gateway in der Datenbank

Download Oracle Application Express 5.0.4 von http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html

Ablauf:

Software bereitstellen:

Version 4 entfernen:

Wird eine Container Database Umgebung verwandt, Apex aus der CDB löschen und pro PDP installieren, siehe dazu ⇒ https://blogs.oracle.com/UPGRADE/entry/apex_in_pdb_does_not

Bei Bedarf eigenen Tablespace für APEX anlegen, daran denken das mehr als 400 Tabellen angelegt werden, bei Uniform Tablespaces auf entsprechendes initial achten, wie z.b. 1MB.

Apex 5 neu installieren:

Apex User konfigurieren:

ORDS vorbereiten:

⇒ Nach diesem Schritten kann nun der ORDS installiert werden um auf Apex zuzugreifen ⇒ Oracle ORDS 3.0 (Oracle REST Data Services) mit APEX 5.0 und als REST Interface verwenden

Nur falls wirklich das Embedded PL/SQL Gateway verwandt werden soll:

Quellen ⇒ Installation : https://docs.oracle.com/cd/E59726_01/install.50/e39144/epg.htm#HTMIG29350

Probleme

Login nicht möglich („The server xxx requires a username and password. The server says: XDB“.)

In meinen Fall ⇒ darauf achten das nicht zuvor doch noch eine alte APEX Version in der DB installiert war! Löschen:

DROP USER APEX_040200 CASCADE;
-- fehler???
--EXEC DBMS_NETWORK_ACL_ADMIN.DELETE_PRIVILEGE('power_users.xml', 'FLOWS_030000');
--
startup force

Nächste Problem beim Einsatz mit dem ORDS:

„There are issues with the configuration of the Static Files in your environment. Please consult the „Configuring Static File Support“ section in the Application Express Installation Guide.“

see ⇒ https://community.oracle.com/message/13014173#13014173

APEX_LISTENER und APEX_PUBLIC_USER User angelegt mit:

@apex_rest_config.sql

User Passwörter in der ORDS Propertie Datei gepfegt und ORDS neu initialisert mit(im ORDS HOME):

 java -jar ords.war install

Anweisungen befolgen!

Danach ist der Fehler verschwunden!


Anmerkungen zu Installation auf einer neuen Oracle XE 11g Installation

Leider steht die 12c noch nicht als XE Edition zur Verfügung.

Nach der XE Installation wird sofort die bestehende Apex (APEX_040000) Umgebung auf die 5.03 Apex Umgebung gehoben.

Da es sich um eine neuen Umgebung handelt wird Apex gelöscht und neu installiert

Apex Download apex_5.0.3.zip nach C:\oracle\apex (=APEX_HOME) entpackt.

APEX User und alle alten Synonyme zuvor unbedingt löschen:

-- sauber entfernen:
cd C:\oracle\apex
 
sqlplus / AS sysdba
 
@apxremov.sql
 
 
--pürfen und dann bei Bedarf "Reste" löschen
--drop the user
-- nur bei Bedarf den User DROP USER APEX_040200 CASCADE;
 
--create DDL to drop old synonyms
SELECT 'drop ' || decode(s.owner, 'PUBLIC', 'PUBLIC SYNONYM ', 'SYNONYM ' || s.owner || '.') || s.synonym_name || ';' AS DELETE_ME
 FROM dba_synonyms s
WHERE table_owner IN ('APEX_040200')
/
-- execute the DDL

Im ersten Versuch nur den alten Apex User gelöscht, allerdings gabe es dann erhebliche Probleme mit der Neuinstallation mit ungültigen Synoymen.

Neu installieren:

cd C:\oracle\apex
 
sqlplus / AS sysdba
 
-- Install
 
@apexins.sql SYSAUX SYSAUX TEMP /i/
 
...
Thank you FOR installing Oracle Application Express 5.0.3.00.03
 
Oracle Application Express IS installed IN the APEX_050000 schema.
 
The STRUCTURE OF the link TO the Application Express administration services IS AS follows:
http://host:port/pls/apex/apex_admin (Oracle HTTP Server WITH mod_plsql)
http://host:port/apex/apex_admin     (Oracle XML DB HTTP listener WITH the embedded PL/SQL gateway)
http://host:port/apex/apex_admin     (Oracle REST DATA Services)
 
The STRUCTURE OF the link TO the Application Express development interface IS AS follows:
http://host:port/pls/apex (Oracle HTTP Server WITH mod_plsql)
http://host:port/apex     (Oracle XML DB HTTP listener WITH the embedded PL/SQL gateway)
http://host:port/apex     (Oracle REST DATA Services)
....
-- Images - 
-- nur  C:\oracle vom APEX_HOME angeben !!!, Rest wird ergänzt
@apex_epg_config.sql d:\oracle\
 
..
. Loading images directory: d:\oracle\apex5/images
..
 
-- Password setzen
@apxchpwd.sql
 
 
--Rest Service api vorbereiten
@apex_rest_config.sql
 
 
--Port pürfen
 
SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;
 
-- bei Bedarf setzen
EXEC DBMS_XDB.SETHTTPPORT(8080);
 
 
-- Prüfen ob ein Dispatcher für die XDB zur Verfügung steht und der Local Listener Parameter eingerichtet ist:
 
SHOW parameter dispatchers
 
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string
 
 
-- falls nicht konfiguriert, <sid>XDB einstellen
ALTER system SET dispatchers='(PROTOCOL=TCP) (SERVICE=XEXDB)' scope=BOTH sid='*';
 
 
-- Den Local Listner Parameter einstellen falls nicht gesetzt
ALTER system SET local_listener='10.10.10.110:1521' scope=BOTH sid='*';
 
-- neustarten, falls es immer noch nicht funktioniert
startup force

Nach der Installation ist wieder der Standard HTTP Port 8080 gesetzt, theoretisch sollte dann ein Aufruf über https://host:port/apex/apex_admin möglich sein.

Alternativ ORDS Oracle ORDS 3.0 (Oracle REST Data Services) mit APEX 5.0 und als REST Interface verwenden einsetzen.

Sollte sich nun in der Datenbank ein ungültiges Objekt sys.htmldb_system befinden ⇒ siehe Metalink Node: HTMLDB_SYSTEM Package is Invalid After Removing APEX (Doc ID 1231863.1), hier wird das Package einfach gelöscht.


Quellen

APEX: