2010-05-20 6 views
5

Ich habe eine Java-Anwendung, die geprüft werden muss (also natürlich brauche ich eine Möglichkeit, in der die App mit dem Anwendungsnamen identifiziert werden kann). Ich googeln und fand, dass ojdbc14 die Methode hat .setClientInfo, die mit einem eigenen Namen Registrierung der Anwendung ermöglicht, so versuche ich, es zu bekommen zu arbeiten, aber ich bekomme die folgende Fehlermeldung:Einstellung Client-Informationen in JDBC für Oracle

Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V

Ich verwende ojdbc14 mit Oracle 10g Express . Wenn ich nicht setzen die Zeile:

connection.setClientInfo("ApplicationName","Customers"); 

es ziemlich gut funktioniert .... und durch die Prüfung info Überprüfung kann ich das Orakel sehen den Namen der Anwendung bekommt: OS_program_name = JDBC Thin Client, aber ich brauche einen Weg um es für einen benutzerdefinierten Namen zu ändern.

Durch Auskommentieren der Zeile, die den Anwendungsnamen festlegen soll, wird der obige Fehler zurückgegeben.

Per Oracle-Dokumentation, dass die Methode für ein Connection Objekt verfügbar ist. Haben Sie eine Idee, wie Sie dieses Problem lösen können?

Antwort

9

Für AbstractMethodError, überprüfen Sie bitte, Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

Um Ihre Verbindungen in Oracle unterscheiden Sie den folgenden Beispielcode verwenden:

Properties jdbcProperties = new Properties(); 

this.jdbcProperties.put("user", userName); 
this.jdbcProperties.put("password", password); 
this.jdbcProperties.put("v$session.program", "YourApplicationName"); 
DriverManager.getConnection(url, jdbcProperties); 

dann überprüfen v $ session durch die Gruppierung gegen Programm Spalte für Ihre Verbindungen ..

+0

ich schätze wirklich Ihre Hilfe Mann das war wirklich hilfreich für mich ... Ich habe die Zeilen angewendet, die Sie mir gaben und es funktioniert gut .... vielen Dank, aufrichtig. –

+0

Gut zu hören, dass es funktioniert hat. Noch eine Sache, dieser Code wird nicht funktionieren, wenn Sie Oci Urls verwenden, um eine Verbindung zu Ihrer Oracle-Datenbank herzustellen. Es funktioniert nur für dünne URLs, ich verstehe Oracle nicht. An dieser Stelle können Sie das Paket DBMS_APPLICATION_INFO verwenden, um den Modulnamen und die Aktion zum Verfolgen Ihrer Anwendungen festzulegen. – gokhant