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

Java 在JDBC for Oracle中设置客户端信息,java,oracle,jdbc,driver,Java,Oracle,Jdbc,Driver,我有一个需要审计的Java应用程序(因此,显然我需要一种可以用应用程序名称识别应用程序的方法)。我在谷歌上搜索发现ojdbc14有一个方法.setClientInfo,该方法允许使用自定义名称注册应用程序,因此我试图让它工作,但出现以下错误: 线程“main”java.lang.AbstractMethodError中出现异常: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)

我有一个需要审计的Java应用程序(因此,显然我需要一种可以用应用程序名称识别应用程序的方法)。我在谷歌上搜索发现ojdbc14有一个方法
.setClientInfo
,该方法允许使用自定义名称注册应用程序,因此我试图让它工作,但出现以下错误:

线程“main”java.lang.AbstractMethodError中出现异常: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V

我正在将ojdbc14与oracle 10g express配合使用。如果我没有设置行:

connection.setClientInfo("ApplicationName","Customers");
它工作得很好…通过检查审计信息,我可以看到oracle获得了应用程序名:OS_program_name=JDBC瘦客户端,但我需要一种方法将其更改为自定义名称

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


根据oracle文档,该方法可用于
连接
对象。您知道如何解决此问题吗?

有关AbstractMethodError,请检查

为了区分您在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,查看您的连接。

我真的很感谢您的帮助人这对我真的很有帮助……我应用了您给我的线路,效果很好……非常感谢,真诚地。很高兴听到它起作用。不过,还有一件事,当您使用oci URL连接到Oracle数据库时,此代码将不起作用。它只适用于精简URL,我不理解Oracle的这一点。此时,您可以使用DBMS_应用程序_信息包设置模块名称和操作以跟踪您的应用程序。