Запланируйте сервис-брокер для автоматического получения сообщений

Я новичок в Sql Server Service Broker и экспериментирую с ним.

Я смог отправлять сообщения из одной БД и получать эти сообщения в другой БД (того же SQL-сервера), и я вставляю эти сообщения в таблицу в принимающей БД.

Пока все работает, но каждый раз, когда я отправляю сообщение из исходной БД, мне приходится переходить в целевую БД и запускать запрос RECEIVE вручную, чтобы получить сообщение из очереди приема и вставить его в таблицу.

Я хотел бы автоматически получать сообщения из очереди приема, как только они поступят (или по расписанию, скажем, каждые 10 минут), и вставлять их в мою целевую таблицу, не делая этого вручную.

Один из вариантов — создать SP и запланировать его запуск каждые 10 минут. Я не уверен, что это рекомендуемый способ или есть какой-либо другой лучший способ прослушивания очереди приема и автоматического извлечения сообщений, как только они поступят.

Любая помощь будет оценена по достоинству.


person kthiagar    schedule 20.06.2012    source источник


Ответы (1)


Вам нужно то, что называется активацией брокера (в частности, внутренней активацией). По сути, вы можете «прикрепить» хранимую процедуру к очереди брокера служб, которая будет вызываться, когда сообщение появляется в очереди. Подробнее об этом читайте в BOL.

person Ben Thul    schedule 21.06.2012