programing

Oracle JDBC Thin Client 식별자 변경

batch 2023. 7. 5. 20:34
반응형

Oracle JDBC Thin Client 식별자 변경

Oracle에 연결할 때 JDBC 드라이버는 Oracle에 대한 "JDBC Thin Client"(v$session에서는 '프로그램'으로 표시)로 인식합니다.v$session에도 이에 사용할 수 있는 'ClientInfo' 열이 있지만 항상 비어 있습니다.

Oracle에 연결되는 서로 다른 애플리케이션(같은 호스트에서 실행되므로 v$session의 'machine' 열이 모두 동일)을 식별해야 하는데, Oracle JDBC Thin Client 드라이버가 자신을 식별하는 방법을 변경할 수 있습니까(예: 애플리케이션 이름을 입력할 수 있습니다)?

아니면 추천할 만한 방법이 있습니까?한 가지 제한 사항은 내부적으로 연결 설정을 처리하는 일부 응용 프로그램에 대해 Struts 내에서 이 작업을 수행한다는 것입니다.

[이 답변과 동일]

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_info, 모듈 작업을 설정할 수 있습니다.

dbms_application_info.set_client_info
dbms_application_info.set_module
dbms_application_info.set_action

오라클 기능도 있습니다.

dbms_application_info.set_client_info('Client Info'); 

v$session에서 ClientInfo 열을 설정합니다.

언급URL : https://stackoverflow.com/questions/1612657/change-oracle-jdbc-thin-client-identifier

반응형