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

Откуда: Киев
Сообщений: 1387
Мне необходимо оперативно получать данные на веб страницу, Со стороны веб клиента хочу использовать SqlDependensy который может взаимодействовать с Service Brоker.

Так вот что бы не делать запросы каждую минуту хочу задействовать Service Brоker со стороны БД, но раньше никогда с ним не работал.

Поискал информацию по форуму но так и не нашел понятных мне ответов.

Собственно вопросы:

1 Как включить Service Broker для БД.
2 Как от него получать сообщения что в базе произошли изменения.

Спасибо.
14 фев 14, 11:56    [15566897]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3376
Вот прям вот так - "изменения"? Т.е. вообще все, что угодно? Тогда вам лучше посмотреть в сторону CDC, там хотя бы какой-то гуй есть.
14 фев 14, 11:58    [15566926]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708
Так вот что бы не делать запросы каждую минуту хочу задействовать Service Brоker со стороны БД, но раньше никогда с ним не работал.

А для чего Brоker-то ? Если ваш веб сервер сам будет инициировать "получение данных" ?
14 фев 14, 11:58    [15566928]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Glory,

Не совсем вас понял.

Опишу ситуацию

Есть таблица с данными куда внешняя программа заносит данные и к этой программе у меня доступа нет, а есть доступ к БД и мне необходимо оперативно узнавать некоторые данные.

Если эту задачу можно решить другим способом то можно рассмотреть и другие варианты.
14 фев 14, 12:08    [15566992]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708
а есть доступ к БД и мне необходимо оперативно узнавать некоторые данные.

Узнавать где ? В другом приложении ?
14 фев 14, 12:10    [15567008]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Ennor Tiegael,

А CDC есть в 2005?
14 фев 14, 12:10    [15567009]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Glory
VIT2708
а есть доступ к БД и мне необходимо оперативно узнавать некоторые данные.

Узнавать где ? В другом приложении ?


в БД, в таблице.

Доступа к программе у меня нет
14 фев 14, 12:11    [15567016]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708
в БД, в таблице.

И что, триггера для этого недостаточно ?
14 фев 14, 12:14    [15567034]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Glory,

Тригера достаточно для обработки изменений данных в Таблице но как известить Веб клиента об этом?
14 фев 14, 12:18    [15567066]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Glory
Member

Откуда:
Сообщений: 104751
VIT2708
Тригера достаточно для обработки изменений данных в Таблице но как известить Веб клиента об этом?

И что этот Веб клиент собираептся делать после извещения ?
14 фев 14, 12:22    [15567103]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
VIT2708
Member [заблокирован]

Откуда: Киев
Сообщений: 1387
Glory,

Если есть записи превышающие определенные параметры вывести пользователю эти записи
14 фев 14, 12:26    [15567138]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4422
VIT2708
Ennor Tiegael,

А CDC есть в 2005?

Нет. Это появилось в 2008.
14 фев 14, 13:05    [15567470]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
VIT2708
Мне необходимо оперативно получать данные на веб страницу, Со стороны веб клиента хочу использовать SqlDependensy который может взаимодействовать с Service Brоker.

Так вот что бы не делать запросы каждую минуту хочу задействовать Service Brоker со стороны БД, но раньше никогда с ним не работал.

Поискал информацию по форуму но так и не нашел понятных мне ответов.

Собственно вопросы:

1 Как включить Service Broker для БД.
2 Как от него получать сообщения что в базе произошли изменения.

Спасибо.


SqlDependenсy в .NET code на клиенте сработает при появлении изменений в таблице, за которой следите.
Broker запускается несложно, поищите в гугле.
14 фев 14, 13:17    [15567557]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Paul Chabinsky
Member

Откуда:
Сообщений: 322
Почитайте бол по этим ключевым фразам:
Alter database ... set enable_broker
Create endpoint
Grant connect
Остальное за вас сделает SqlDependency(по идее).
14 фев 14, 20:32    [15570504]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
SqlDependency
С ним надо быть очень аккуратным, поделка наколенная, обрастает мусором.
Надо знать как она работает и какие побочные эффекты даёт.
Притом как сама по себе так и используемый ею механизм QueryNotification.
По мне, он тоже выглядит как поделка.

Вообще лучше пользоваться продуктами которые или сделаны капитально или имеют активное сообщество разрабов.
Эти поделки не поддерживаются. Хотя в M$ сейчас очень много что сделано, используется (продаётся) но не поддерживается. Умолять поправить бажок не получится.

Судя во всему у вас практически один простой запрос - можно аккуратно воспользоваться SqlDependenсy. Только службу лучше свою указывать, а то при каждом падении они будут плодится разводя мусор.

Хотя по мне - можно самому посылать сообщения на изменения, банально через триггер, минуя QueryNotification.
Ибо коль уже разобрались в поделках, далее уже самому написать своё уже совсем просто.
А главное безопаснее и эффективнее.
16 фев 14, 08:06    [15573231]     Ответить | Цитировать Сообщить модератору
 Re: Service Brоker  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
1. Сколько клиентов может работать с базой одновременно? ну, приблизительно, 10? 100? 1000? или это в основном один клиент, который веб?

2. Сколько записей в той таблице, за которой вы собираетесь следить? тоже очень приблизительно.

зы. сделайте отдельный thread на клиенте и пусть время от времени шлет запросы и следит за таблицей, если сильно хочется пусть чиатет грязные данные, будет быстрее...
17 фев 14, 11:31    [15576022]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить