Изменить идентификатор тонкого клиента Oracle JDBC - PullRequest
15 голосов
/ 23 октября 2009

При подключении к Oracle драйвер JDBC идентифицирует себя как «Тонкий клиент JDBC» к Oracle (в v $ session как «программа»). В v $ session также может быть использован столбец ClientInfo, но он всегда пуст.

Нам необходимо идентифицировать различные приложения, подключающиеся к Oracle (которые работают на одном хосте, поэтому столбец 'machine' в v $ session одинаков), поэтому можно изменить способ Oracle JDBC Thin Драйвер клиента идентифицирует себя (например, мы могли бы указать имя приложения)?

Или есть рекомендуемый способ сделать это? Одним из ограничений является то, что мы делаем это в Struts для некоторых приложений, которые обрабатывают настройку соединения внутри.

Ответы [ 2 ]

20 голосов
/ 23 октября 2009

[Идентично этому ответу]

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

На уровне приложения вы можете использовать следующие методы для установки client_info , module и action в v $ session :

dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action
3 голосов
/ 23 октября 2009

Есть также функция Oracle:

dbms_application_info.set_client_info('Client Info'); 

, который устанавливает столбец ClientInfo в v $ session.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...