【问题标题】:Change Oracle JDBC Thin Client Identifier更改 Oracle JDBC 瘦客户端标识符
【发布时间】:2010-12-09 10:02:39
【问题描述】:

当连接到 Oracle 时,JDBC 驱动程序将自己标识为 Oracle 的“JDBC 瘦客户端”(在 v$session 中作为“程序”)。 v$session 中还有一个“ClientInfo”列可能用于此目的,但它始终为空。

我们需要识别连接到 Oracle 的不同应用程序(它们在同一台主机上运行,​​因此 v$session 中的“机器”列都是一样的),那么是否可以更改 Oracle JDBC Thin 的方式客户端驱动程序标识自己(例如,我们可以将应用程序名称放入其中)?

或者有推荐的方法吗?一个限制是我们在 Struts 中为某些应用程序执行此操作,这些应用程序在内部处理连接设置。

【问题讨论】:

标签: oracle jdbc


【解决方案1】:

[Identical to this answer]

java.util.Properties props = new java.util.Properties();
props.setProperty("password","mypassword");
props.setProperty("user","myusername");
props.put("v$session.osuser", System.getProperty("user.name").toString());
props.put("v$session.machine", InetAddress.getLocalHost().getCanonicalHostName());
props.put("v$session.program", "My Program Name");
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
Connection conn=
    DriverManager.getConnection("jdbc:oracle:thin:@myhostname:1521:mysid", props);

SQL>select username,osuser,program,machine
from v$session
where username = 'ROB'; 

USERNAME  OSUSER       PROGRAM             MACHINE
--------- -----------  ------------------  -----------
ROB       rmerkw       My Program Name     machine

在应用程序级别,您可以使用以下方法在 v$session中设置 client_infomoduleaction >:

dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action

【讨论】:

  • 干杯,这应该对某些应用程序有所帮​​助 - 这是否适用于 OracleConnectionPoolDataSource?我看到那里有一个 setConnectionProperties 方法。我是否必须指定所有列出的字段,即使我在 OracleConnectionPoolDataSource 上使用 .setUser()、.setPassword() 等方法?
  • 我知道它适用于 OracleConnectionPoolDataSource。很久以前的事了,具体的记不太清了。 setConnectionProperties 将 java.util.Properties 作为参数。不要认为这会清空之前使用 .setUser()、.setPassword() 设置的用户和密码。我说得通吗? ;-)
  • 嗨!是的,这是有道理的,它只适用于 v$session.program 集。干杯。
【解决方案2】:

还有一个Oracle函数:

dbms_application_info.set_client_info('Client Info'); 

在 v$session 中设置 ClientInfo 列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多