DBMS_ALERT медленно запускается на RAC

Ранее я задавал вопрос о том, работает ли DBMS_ALERT на RAC. Ответ был положительным, и я настроил тестовую среду VMWare и подтвердил ее.

Однако, похоже, что между выполнением вызова SIGNAL() и WAITONE() возвращается большая задержка, когда они представляют собой разные блоки.

Мои тесты такие же, как на http://vitspinka.blogspot.com/2008/04/dbmsalert-on-rac.html

Если я запускаю сценарий WAIT на моем блоке RAC2, а затем SIGNAL на RAC1, запуск может произойти где-то через 0,5-5 секунд.

Как ни странно, если несколько сценариев WAIT выполняются одновременно на RAC2, а затем SIGNAL на RAC1, сценарии WAIT не все запускаются одновременно. Они варьируются от 0,5 до 5 секунд.

Кто-нибудь знает какие-либо параметры настройки или какие-либо подробности работы DBMS_ALERT, которые могут помочь с этим?

Я использую Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi.

1 ответ

Задача решена.

Яркая искра здесь заметила, что в журналах время между ожиданием сигнала и срабатыванием всегда было кратно 5. Это связано с тем, что методы DBMS_ALERT.Wait используют опрос в режиме совместного использования (что и является экземпляром удаленной базы данных RAC).). Хотя в документации оракула говорится, что время опроса составляет 1 секунду, на самом деле это 5 секунд.

Использование DBMS_ALERT.SET_DEFAULT(1) уменьшило время до 1 секунды макс.

Достаточно хорошо.

Другие вопросы по тегам