Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Мониторинг очереди с помощью Service Broker.  [new]
Steevenson
Member

Откуда:
Сообщений: 3
Добрый день. Начал изучать компонент Service Broker. Возник вопрос - возможно ли с помощью service broker отследить переполнение очереди (когда количество строк в очереди становится больше определенного значения). Я знаю что есть events, которые можно привязать к действиям Alter, Insert, Drop, Create, но в данном случае это все не подходит т.к. они не считывают количество элементов в таблице (очереди).
4 окт 17, 15:59    [20842695]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 574
Steevenson,

Уточните что вы понимаете под "очередью" ибо из вашего поста я что то засомневался.
Очередь компонента конечно по факту является внутренней таблицей но мало ли под формулировкой "таблицы" вы озвучили что то еще.

а именно:
количество элементов в таблице (очереди).


Вы хотите отслеживать изменение наполнения какой то таблицы (user table) которую считаете очередью?
Или все-таки хотите отслеживать количество сообщений в очереди компонента (Service Queue)?

Так вот для последней можно вполне законно применять оператор SELECT что бы посмотреть количество сообщений поступивших в очередь.
Дополнительно если вы хотите свой мониторинг осуществлять на "автомате" то настраивайте на очереди активацию, внутреннюю или внешнюю - решать вам.
4 окт 17, 21:42    [20843709]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
Steevenson
Member

Откуда:
Сообщений: 3
Очередь в плане Service queue. Необходимо, что бы когда становилось записей больше определенного количества (например 100) брокер записывал уведомление в event_notifications (он же вроде туда пишет?)



felix_ff


Дополнительно если вы хотите свой мониторинг осуществлять на "автомате" то настраивайте на очереди активацию, внутреннюю или внешнюю - решать вам.


А где можно про это понятным языком почитать?
5 окт 17, 08:21    [20844138]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 574
Steevenson,

Не совсем. Event notification - реакция сервера на определенное ddl событие и отправка уведомления в определенную очередь брокера.

Есть два события для компонента но не сказалбы что в вашем случае оно нужно.

А раз вы хотите дожидаться пока в очереди наберется 100 сообщений и только потом ее обрабатывать можете написать хранимую процедуру которая будет отслеживать буфер сообщений и разгребать ее когда будет достигнут порог. Право конечно ваше но в чем смысл ждать наполнения а не разгребать по факту поступления сообщений?


https://msdn.microsoft.com/ru-ru/library/ms171617(v=sql.90).aspx
5 окт 17, 10:14    [20844350]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
Ролг Хупин
Member

Откуда: Оттуда
Сообщений: 1454
felix_ff
Steevenson,

Не совсем. Event notification - реакция сервера на определенное ddl событие и отправка уведомления в определенную очередь брокера.

Есть два события для компонента но не сказалбы что в вашем случае оно нужно.

А раз вы хотите дожидаться пока в очереди наберется 100 сообщений и только потом ее обрабатывать можете написать хранимую процедуру которая будет отслеживать буфер сообщений и разгребать ее когда будет достигнут порог. Право конечно ваше но в чем смысл ждать наполнения а не разгребать по факту поступления сообщений?


https://msdn.microsoft.com/ru-ru/library/ms171617(v=sql.90).aspx


да, в процедуре активации, если вы ее используете - считатет количество записей в очереди и далее шлете сообщение куда-то, обрабатываете и т.д.. хотя задача выглядит немного парадоксально.

Возможно вы хотите сбоку следить за количеством, чтобы определить, что процедура не обработала, я бы так не делал.
Чаще бывает, что очередь заполняется, блокируется и т.д..
5 окт 17, 11:06    [20844555]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31049
Блог
вероятно, автору нужно просто знать, когда "приемник" не справляется с переработкой очереди
5 окт 17, 16:51    [20845970]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5142
select count(*) from очередь
5 окт 17, 17:04    [20846038]     Ответить | Цитировать Сообщить модератору
 Re: Мониторинг очереди с помощью Service Broker.  [new]
Steevenson
Member

Откуда:
Сообщений: 3
Критик
вероятно, автору нужно просто знать, когда "приемник" не справляется с переработкой очереди


да, именно. И что бы уведомление записывалось автоматически. У меня просто есть джоб, который каждые несколько минут проверяет табличку с уведомлениями сервис брокера, и если видит что-то важное, то посылает на почту текст строчки
6 окт 17, 08:23    [20847047]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить