1 人の特権スケジューラ ユーザー - user1 は電子メール通知を受け取りますが、別の 2 人 (user2、user3) は受け取りません。
以下のコードを user3 スキーマで実行したいのですが、これを user2 (一時的な sys.dbms_aq アクセスを使用してスキーマで直接実行されたコード) で正常に実行したため、彼は通知を受け取るようになりました。user1 のボット ユーザー エージェントに対してデータベース アクセスが有効になっています。
ご覧のとおり、問題を「何」が解決するかはわかっていますが、その方法はわかりません:-)
問題は、2 番目のアカウント (user3) に直接アクセスできないことです。 user3 に代わってこのコードを実行するにはどうすればよいですか?
declare
reginfo1 sys.aq$_reg_info;
reginfolist sys.aq$_reg_info_list;
begin
reginfo1 := sys.aq$_reg_info('SYS.SCHEDULER$_EVENT_QUEUE:SCHED$_AGT2$_X',
1,
'plsql://SYS.SCHEDULER$_JOB_EVENT_HANDLER',
null);
reginfolist := sys.aq$_reg_info_list(reginfo1);
dbms_aq.register(reginfolist, 1);
end;
すでに user3 で create procedure を試行し、すぐに匿名ブロックを実行しましたが、DBA_QUEUE_SUBSCRIBERS に 3 ではなく USER# 1 で登録されています。
データベースのバージョンは、UNIX では 11.2.0.3.0 です。