Als PDF Downloaden!

Werbung
Tipps & Tricks: Januar 2015
Bereich:
PL/SQL
Erstellung:
01/2015 HA
Versionsinfo:
12c
Letzte Überarbeitung:
01/2015 HA
Debuggen in 12c mit dem SQL Developer
Der SQL Developer als Oracle-proprietäres Tool erfreut sich mittlerweile großer Beliebtheit. Entwicker, die den
SQL Developer auch zum Debuggen nutzen, werden bei 12c-Datenbanken jedoch erst einmal eine neue Hürde
überwinden müssen. Während für andere Tools, wie TOAD oder PL/SQL Developer, auch in Version 12c die
Standard-Grants (DEBUG ANY PROCEDURE, DEBUG CONNECT SESSION) dafür ausreichen, wird für den SQL
Developer zusätzlich eine ACL-Freigabe benötigt. Ohne ACL erhalten Sie folgende Fehlermeldung:
Verbindung mit der Datenbank O12c.
PL/SQL wird ausgeführt: ALTER SESSION SET PLSQL_DEBUG=TRUE
PL/SQL wird ausgeführt: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.0.0.21', '50229' )
ORA-24247: Netzwerkzugriff von Access Control-Liste (ACL) abgelehnt
ORA-06512: in "SYS.DBMS_DEBUG_JDWP", Zeile 68
ORA-06512: in Zeile 1
Prozess beendet.
Abmeldung von der Datenbank O12c.
Der Grund liegt darin, dass der Debugger des SQL Developers - im Gegensatz zu den oben genannten Tools mit dem Package DBMS_DEBUG_JDWP ("Java Debug Wire Protocol") arbeitet. Und ab Version 12c ist dafür eine
entsprechende Freigabe erforderlich. Diese wird über das Package DBMS_NETWORK_ACL_ADMIN erteilt, das hier
schon einmal erwähnt wurde. Die Art der Freigabe lautet in diesem Fall jdwp:
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => '10.0.0.21',
ace => xs$ace_type(
privilege_list => xs$name_list('jdwp'),
principal_name => 'SCOTT',
principal_type => xs_acl.ptype_db));
END;
/
Als Host muss selbstverständlich der Rechner angegeben werden, auf dem der SQL Developer läuft. Die Angabe
von Ports hat Tücken; am einfachsten ist es, Sie lassen sie ganz weg, wie hier gezeigt. Zwar können Sie im SQL
Developer eine Port-Range für den Debugger einstellen, aber wenn Sie beim Aufruf von
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE sowohl lower_port als auch upper_port angeben, wird
das mit dieser Fehlermeldung
ORA-24244: Ungültiger Host oder Port für Zuweisung der Access Control-Liste (ACL)
ORA-06512: in "SYS.DBMS_NETWORK_ACL_ADMIN", Zeile 1071
quittiert. Geben Sie NUR den lower_port an, so ist auch nur dieser EINE Port freigegeben. Nach erfolgreicher
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 1 von 2
an, so ist auch nur dieser EINE Port freigegeben. Nach erfolgreicher
Freigabe können Sie - an diesem Rechner - den Debugger starten:
Verbindung mit der Datenbank O12c.
PL/SQL wird ausgeführt: ALTER SESSION SET PLSQL_DEBUG=TRUE
PL/SQL wird ausgeführt: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.0.0.21', '50815' )
Debugger hat Verbindung von Datenbank auf Port 50815 akzeptiert.
....
An jedem anderen Rechner bekommen Sie weiterhin die Fehlermeldung, dass die ACL abgelehnt wurde:
PL/SQL wird ausgeführt: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.0.0.190', '57524' )
ORA-24247: Netzwerkzugriff von Access Control-Liste (ACL) abgelehnt
Sonstige Funktionen von DBMS_DEBUG_JDWP
Das Package DBMS_DEBUG_JDWP enthält übrigens noch zwei weitere, interessante Funktionen, über die sich SID
und serial# der eigenen Session - auch ohne Admin-Rechte - ermitteln lassen. Und das nicht erst in 12c:
SELECT dbms_debug_jdwp.current_session_id,
dbms_debug_jdwp.current_session_serial
FROM DUAL;
ACEs sind dafür nicht erforderlich, da ja auf keine externe Ressource zugegriffen wird.
Sie möchten wissen, was ist denn eigentlich neu in der Oracle Datenbank Version 12c? Dann besuchen Sie
unsere Schulung Neuerungen 12c und stöbern Sie in der Rubrik Oracle Neuerungen zu 12c Release 1 unserer
Tipps & Tricks, hier finden Sie weitere kleine Hilfen, die das Leben mit Oracle 12c erleichtern. ;-)
Muniqsoft GmbH
Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40
IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0
Seite 2 von 2
Herunterladen