在JDBC for Oracle中设置客户端信息

时间:2010-05-20 19:02:56

标签: java oracle jdbc driver

我有一个需要审核的Java应用程序(显然我需要一种可以使用应用程序名称识别应用程序的方法)。我用Google搜索并发现ojdbc14的方法.setClientInfo允许使用自定义名称注册应用程序,所以我试图让它工作,但是我收到以下错误:

  

线程“main”中的异常java.lang.AbstractMethodError:   oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava /郎/字符串; Ljava /郎/字符串;)V

我正在使用带有oracle 10g express的ojdbc14。如果我没有设置行:

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

它工作得很好....通过检查审计信息,我可以看到oracle获取应用程序名称:OS_program_name = JDBC瘦客户端,但我需要一种方法来更改它以获得自定义名称。

通过取消注释应该设置应用程序名称的那一行,它返回上面的错误。

根据oracle文档,该方法可用于Connection对象。你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:9)

对于AbstractMethodError,请检查Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

为了区分您在Oracle中的连接,您可以使用以下示例代码:

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

然后通过对连接的程序列进行分组来检查v $ session ..