Max_Queue_Readers властивість ігнорується під Вільний час спроби обмежити активації завдань посередник служби

ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 3163368
Ознаки
Розглянемо таку ситуацію:
  • сценарій виконання служби посередник у Microsoft SQL Server-2014 або Microsoft SQL Server 2012 немає.
  • Посередник служби встановлено асинхронний Збережена процедура виконання.
  • Властивість Max_Queue_Readers для певного значення для обмеження на кількість випадків активації, збереженої процедури, що запуск у той же Вільний час, черги посередник служби
У цьому випадку ви помітите, що більше активовано, завдання запущено значення, яку настроєно наMax_Queue_Readers.
причина
Ця проблема може виникати, якщо базу даних посередник служби перейшли з одного користувача режимі (RESTRICTED_USER) в кількох користувачів режим (MULTI_USER), виконавши такі:

alter database <dbname> set multi_user
Якщо користувацький режим змінено на базі даних, посередник служби завершення роботи та перезавантаження. Під Вільний час цього процесу наявний QueueMonitor об'єкт буде видалено, а також створення ще одного QueueMonitor об'єкт. Процес активації під керуванням операції, багато в той Вільний час як посередник служби завершує роботу, стан QueueMonitor об'єкта змінюється на "пропущених".

Проте наявний QueueMonitor екземпляра об'єкта не видаляється через те, що не досягнуто його лічильник продуктивності посилань на нуль. Якщо процедура активації все ще працює під Вільний час посередник служби, перезавантаження, новий екземпляр об'єкта QueueMonitor і пропущених QueueMonitor об'єкт буде співіснувати, у свою чергу. Роз'єднані екземпляра об'єкта QueueMonitor, буде видалено під Вільний час наступного запуску в посередник служби.
Обхідний шлях
Щоб усунути цю проблему, переконайтеся, що запустити ", змінити базу даних, [dbname]-set multi_user" під Вільний час процедури, не активується працює. Для цього скористайтеся одним із наведених нижче способів.

  • Перед зміненням режимі для користувача, вимкніть усі черги, бази даних і повторно ввімкнути всі черги.
  • Перед зміненням режиму користувача, вимкнути процедура активації впливу черги, запустіть наведену нижче команду та знову ввімкнути процедуру активації:

    alter queue <queueName> with activation ( status = off)
Додаткові відомості
Можна перевірити кількість процедури активації, під керуванням для певного черги, запустивши запитів "sys.dm_broker_activated_tasks" наступним чином:

select * from sys.dm_broker_activated_tasks where queue_id = <queue number>
Можна надсилати запит стану черги монітор, запустивши такий запит:

Select * from sys.dm_broker_queue_monitors where queue_id = <queue number>
Черга монітор стану відображається "пропущено", якщо користувач режим базу даних було змінено.

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 3163368 – останній перегляд: 05/19/2016 18:27:00 – виправлення: 1.0

Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup

  • kbprb kbsurveynew kbexpertiseadvanced kbmt KB3163368 KbMtuk
Зворотний зв’язок