dbms_aq and RAC

Вы все еще думаете, что ваше приложение заработает в среде RAC без изменений ?

Тогда Вот вам еще пример:
10gR2 RAC
Вы создали очередь, стартовали ее, добавили подписчиков - но пропагация данных в эту очередь осуществляется с помощью sys.dbms_aqadm.aq$_propaq(job); работающей как job (dba_jobs)

И соответсвенно, пропагация прекратится, если узел кластера , на которой вы создали очередь, упадет. Проблему можно вылечить при помощи DBMS_AQADM.ALTER_QUEUE_TABLE где которой указать два узла, на которых будет поддерживаться пропагация. Но и это еще не все, рекомендую прочитать внимательно
Oracle Streams Advanced Queuing and Real Application Clusters: Scalability and Performance Guidelines. Насколько я понимаю, в этой статье предлагается модифицировать приложение гораздо более существенно.


PS
Конечно, это странно, что dbms_aq использует dbms_job. И в 11g это исправили

"
Transition from Job Queue Processes to Database Scheduler
EMON PL/SQL notifications are executed by background jobs. In this release these
jobs are DBMS_SCHEDULER jobs and are no longer conducted by DBMS_JOBS.
"

Комментариев нет:

Отправить комментарий