我们使用database1中Schema1的数据库链接访问数据库2中存在的Schema2中的一些对象。 此特定DBlink仅由一个应用程序(ApplicationTest)使用。 目前,当我们从database2(目标数据库)查询V $会话时,PROGRAM,MODULE和CLIENT_INFO列为空或具有一些默认值。
澄清要求: 我们想要监视访问数据库2的所有应用程序。 当通过DB链接访问时,是否可以使用某些标记填充v $ session中的PROGRAM,MODULE和CLIENT_INFO字段?
提前感谢您的帮助! 问候, 内甚
答案 0 :(得分:0)
您需要在远程计算机上调用dbms_applicaion_info
(此处为数据库2)才能填充这些列。通常,最简单的方法是确保您只通过存储过程访问数据库链接,然后执行类似这样的操作,在数据库2中设置module
和action
#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;