通过DB链接访问时,在v $ session中填充带有某些标记的PROGRAM,MODULE和CLIENT_INFO字段

时间:2015-08-10 12:01:24

标签: database oracle dblink

我们使用database1中Schema1的数据库链接访问数据库2中存在的Schema2中的一些对象。 此特定DBlink仅由一个应用程序(ApplicationTest)使用。 目前,当我们从database2(目标数据库)查询V $会话时,PROGRAM,MODULE和CLIENT_INFO列为空或具有一些默认值。

澄清要求: 我们想要监视访问数据库2的所有应用程序。 当通过DB链接访问时,是否可以使用某些标记填充v $ session中的PROGRAM,MODULE和CLIENT_INFO字段?

提前感谢您的帮助! 问候, 内甚

1 个答案:

答案 0 :(得分:0)

您需要在远程计算机上调用dbms_applicaion_info(此处为数据库2)才能填充这些列。通常,最简单的方法是确保您只通过存储过程访问数据库链接,然后执行类似这样的操作,在数据库2中设置moduleaction #39;在运行查询之前v$session

declare
  l_cnt integer;
begin
  dbms_application_info.set_module@dblink_to_2( 
    module_name => 'DB Link', 
    action_name => 'Reading over link' 
  );

  select count(*)
    into l_cnt
    from table@dblink_to_2;
  ...
end;