Oracle JDBC Debugging

ralfb1105

Bekanntes Mitglied
Hallo,
ich würde gerne das JDBC Debug Feature in meinem Programm aktivieren. Als Referenz dazu habe ich folgendes Dokument von Oracle gelesen:
https://docs.oracle.com/en/database/oracle/oracle-database/18/jjdbc/jdbc-developers-guide.pdf Hier den Abschnitt "34.1.2.2 Enabling Logging" auf Seite 34-2.
Ich habe wie beschrieben den ojdbc Treiber mit Debug Feature "ojdbc8_g" und in meiner logging.properties die entsprechenden Eintraege erstellt:
Code:
oracle.jdbc.level = FINEST
oracle.net.ns.level = FINEST
oracle.jdbc.handlers = java.util.logging.FileHandler
Wenn ich den folgenden System Parameter setze funktioniert das ganze auch:
Java:
System.setProperty("oracle.jdbc.Trace", "true");
Allerdings ist das nicht sehr schön, da ich über das Programm nicht in einzelnen Teilen das Debugging ein bzw. ausscchalten kann. Deshalb habe ich versucht das wie von Oracle beschrieben im Code zu implementieren:
Java:
ClassLoader l = oracle.jdbc.OracleDriver.getClassLoader();
Hier bekomme ich schon folgenden Fehler:
Code:
The method getClassLoader() is undefined for the type OracleDriver

Frage:
Hat das schon jemand am laufen und kann mir ein Beispiel Code bereitstellen?

Zur Info, ich benutze den 18.3 JDBC Treiber von Oracle, aber auch bei 12.2 habe ich den Fehler.
Was ich auch nicht ganz verstehe in der Doku ist folgender Absatz:
First, get the Object Nameof the Diagnosability MBean. The ObjectName is com.oracle.jdbc:type=diagnosability,name=<loader>
Here, loader is a unique name based on the class loader instance that loaded the
Oracle JDBC drivers
Wie habe ich das zu verstehen? Muss ich da noch etwas machen?

Bin für jeden Tipp dankbar.
Gruß
Ralf
 

mihe7

Top Contributor
getClassLoader ist keine statische Methode der Klasse oracle.jdbc.OracleDriver sondern der Metaklasse (java.lang.Class), also müsste es dort oracle.jdbc.OracleDriver.class.getClassLoader(); heißen.
 

ralfb1105

Bekanntes Mitglied
Hallo Mihe7,

Danke für den Hinweis, ich ahbe es dann mal folgendermassen im Programm eingebaut:
Java:
// JDBC Logging
        ClassLoader l = oracle.jdbc.OracleDriver.class.getClassLoader();
        String loader = l.getClass().getName() + "@" + l.hashCode();
       
        javax.management.ObjectName name = new javax.management.ObjectName("com.oracle.jdbc:type=diagnosability,name=" + loader);
       
        javax.management.MBeanServer mbs = java.lang.management.ManagementFactory.getPlatformMBeanServer();
       
        System.out.println("JDBC LoggingEnabled = " + mbs.getAttribute(name, "LoggingEnabled"));
Eclipse ist erst einmal zufrieden, aber beim startendes Programms kommt eine Exception :-(
Code:
Exception in thread "main" javax.management.InstanceNotFoundException: com.oracle.jdbc:type=diagnosability,name=sun.misc.Launcher$AppClassLoader@705927765
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(Unknown Source)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(Unknown Source)
    at oracle.OraSimpleBench.main(OraSimpleBench.java:275)
Auch wenn ich das im Detail nicht deuetn kann, sieht es so aus als wenn es mit dem ClassLoader Probleme gibt .. ??
Hast Du noch eine Idee oder geht das bei Dir?
Gruß
Ralf
 

ralfb1105

Bekanntes Mitglied
Das aus stackoverflow ist ja so wie aus der Oracle Doku, aber das funktioniert bei mir nicht - siehe oben.
Wenn ich l.getName() schreibe kommt wie bei getClassLoader() ohne ".class" folgender Fehler in Eclipse:
Code:
The method getName() is undefined for the type ClassLoader

Es ist schon komisch das die Zeilen aus der original Oracle Doku nicht wirklich funktionieren??
Vielleicht hat ja noch jemand eine Idee ...
Gruß
Ralf
 

ralfb1105

Bekanntes Mitglied
Leider auch mit ojdbc8dms_g.jar die Exception
Code:
Exception in thread "main" javax.management.InstanceNotFoundException: com.oracle.jdbc:type=diagnosability,name=sun.misc.Launcher$AppClassLoader@705927765
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(Unknown Source)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(Unknown Source)
    at oracle.OraSimpleBench.main(OraSimpleBench.java:276)
 

mihe7

Top Contributor
Hab jetzt mal mit dem Treiber rumprobiert. Wenn man
Code:
        mbs.createMBean("oracle.jdbc.driver.OracleDiagnosabilityMBean", name);
einfügt, dann wird zumindest keine Exception mehr geworfen.
 

ralfb1105

Bekanntes Mitglied
Ja, und es wird auch einiges an Trace Informationen ausgegeben ... allerding bei weitem nicht so viel als wenn ich es über System.setProperty("oracle.jdbc.Trace", "true"); mache - warum weiß ich noch nicht.
Das andere Problem ist, wenn ich den Code zum Trace enable drin habe funktioniert mein Logger nicht mehr, sprich es werden nur noch die JDBC Trave Meldungen in das Log geschrieben :-(

Anyway, Danke für Deine Hilfe - ich werde es über die System Properties machen - da kommt mehr an Ausgabe und mein Standard Logging geht auch weiterhin.

Gruß
Ralf
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..." Datenbankprogrammierung 15
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
D Asynchrone Aufrufe mit jdbc Datenbankprogrammierung 5
Edin JDBC Hilfe Datenbankprogrammierung 2
H JDBC Tabellen ausgeben Datenbankprogrammierung 8
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
J JDBC anschaulich präsentieren Datenbankprogrammierung 2
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
B MySQL JDBC Kommentarfilter Datenbankprogrammierung 4
Aruetiise MySQL Name JDBC Drive finden Datenbankprogrammierung 4
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
F MySQL JDBC Problem Datenbankprogrammierung 5
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
looparda SQLite Active JDBC Abstraktion Datenbankprogrammierung 2
J JDBC SQL Statement mit Parameter Datenbankprogrammierung 7
S JDBC PreparedStatement durchiterieren Datenbankprogrammierung 6
J RESTServie + JDBC + No suitable driver found for jdbc Datenbankprogrammierung 4
KaffeeFan JDBC/ODBC-Bridge entfernt Datenbankprogrammierung 4
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
A Mit JDBC auf postgreSQL Datenbank zugreifen Datenbankprogrammierung 5
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
flenst111 SQL-Statement Wie konfiguriert man JDBC-Connect.richtig, damit es bei riesigen Tabs keinen Speicherüberlauf gibt? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
S JDBC mit Postgres DB connecten Datenbankprogrammierung 3
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
D JDBC - Verständnisfrage Datenbankprogrammierung 2
C Tabelle erstellen mit Apache JDBC-Util Datenbankprogrammierung 1
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
U JDBC prepaird Statements Datenbankprogrammierung 4
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
C Dateipfad des jdbc Treibers Datenbankprogrammierung 2
G JDBC Connect nur über SID fehlerfrei möglich Datenbankprogrammierung 2
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
T JDBC Fehler Datenbankprogrammierung 2
J JDBC via Singleton Datenbankprogrammierung 12
Z PostgreSQL JDBC mit Postgresql Datenbankprogrammierung 2
B No suitable driver found for jdbc:oracle:thin:@$HOST:$PORT:$SID Datenbankprogrammierung 7
K JDBC via Netzwerk Datenbankprogrammierung 4
B JDBC Connection Fehler Datenbankprogrammierung 8
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
D JDBC insert mit select abfrage Datenbankprogrammierung 5
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
H JDBC prüfen ob Table existiert Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
0 JDBC Oracle Verbindungsaufbau Datenbankprogrammierung 6
Q Oracle Linux: ClassNotFoundException: oracle.jdbc.driver.OracleDriver Datenbankprogrammierung 6
B JDBC MySQL Statement Datenbankprogrammierung 3
F Oracle Oracle JDBC Anbindung unter Glassfish 3.1.2 Datenbankprogrammierung 3
V PostgreSQL JDBC Treiber fehlt Datenbankprogrammierung 6
Y JDBC - Datenbankabfrage Webserver Datenbankprogrammierung 4
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
C JDBC , JDO oder JPA Datenbankprogrammierung 17
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
K JDBC Buch kaufen? Datenbankprogrammierung 3
K Hibernate vs. JDBC Datenbankprogrammierung 4
K JDBC Driver not found Datenbankprogrammierung 10
GianaSisters Per JDBC auf Microsoft SQL 2005 Datenbankprogrammierung 24
S ich brauche tipps für JDBC Datenbankprogrammierung 4
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
J jdbc-dataSource in Klassen nutzen Datenbankprogrammierung 2
H Rechnen in Datenbanken - JDBC Mittel der Wahl? Datenbankprogrammierung 32
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
D JDBC Fehler beim laden der nativen Bibliothek db2jcct2 Datenbankprogrammierung 9
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
I Master/Detail Tabellen mit JDBC und Swing Datenbankprogrammierung 10
S MSSQL JDBC "Driver class not found" Datenbankprogrammierung 9
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
ruutaiokwu jdbc connection als singleton Datenbankprogrammierung 11
J MySQL Löschen von Rows mit JDBC Datenbankprogrammierung 9
G JDBC Exception Datenbankprogrammierung 3
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
F Fehlerhandling bei JDBC Datenbankprogrammierung 9
T JDBC und Arrays Datenbankprogrammierung 7
X Oracle JDBC und Joins? Datenbankprogrammierung 7
A No suitable driver found for jdbc:microsoft:sqlserver... Datenbankprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben