2010-05-20 23 views
5

Tengo una aplicación Java que necesita ser auditada (así que obviamente necesito una forma de identificar la aplicación con el nombre de la aplicación). Busqué en Google y encontró que ojdbc14 tiene el método .setClientInfo que permite registrar la aplicación con un nombre personalizado, así que estoy tratando de conseguir que funcione, pero me sale el siguiente error:Configuración de información del cliente en JDBC para Oracle

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

estoy usando ojdbc14 con Oracle 10g Express . Si no establezco la línea:

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

funciona bastante bien .... y comprobando la información de auditoría puedo ver que Oracle recibe el nombre de la aplicación: OS_program_name = JDBC Thin Client, pero necesito una manera para cambiarlo por un nombre personalizado.

Al descomentar esa línea que se supone que configura el nombre de la aplicación, devuelve el error anterior.

Documentación por oráculo que el método está disponible para un objeto Connection. ¿Tienes alguna idea de cómo resolver este problema?

Respuesta

9

Para AbstractMethodError, compruebe Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

Con el fin de distinguir las conexiones de Oracle puede utilizar este código de ejemplo siguiente:

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); 

a continuación, comprobar v $ session agrupando contra la columna de programa para sus conexiones ..

+0

realmente aprecio tu ayuda, esto fue realmente útil para mí ... apliqué las líneas que me diste y funciona bien ... muchas gracias, sinceramente. –

+0

Me alegra oír que funcionó. Sin embargo, una cosa más, este código no funcionará cuando use oci urls para conectarse a su db Oracle. Funciona solo para URLs delgadas, no entiendo Oracle sobre esto. En este punto, puede usar el paquete DBMS_APPLICATION_INFO para establecer el nombre y la acción del módulo para rastrear sus aplicaciones. – gokhant

Cuestiones relacionadas