powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уведомление клиентов об изменениях на сервере
13 сообщений из 38, страница 2 из 2
Уведомление клиентов об изменениях на сервере
    #39853957
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Так этот вариант ТС упоминал: "постоянный опрос сервера с каждого клиента"
А он хочет заменить опросы на вызовы клиента со стороны сервера при наступлении некоего события (что в теории правильно, хотя есть вопрос, стоит ли это такого геморроя).


да я в целом согласен.

это просто альтернатива выборке из таблиц что бы не нагружать сервер множествеными запросами типа "а есть чо?"

в таком же исполнении работает waitfor (receive) для брокера.


ну а если мы хотим совсем альтернативу callback-вызова с сервера на клиент, то на ум приходит такое:
внутри клиента создается служба-сервер (можно обычный REST/SOAP сервис)

при подключении к сиквелу клиент регистрирует себя для обратного вызова на сиквеле какой нибудь хранимкой
вызов аля:
Код: sql
1.
exec RegisterCallback @hostName = 'some_client_host', @pid = 13248, @callback = 'http://some_cliet_host/CallBackEvent:2020', @eventType='update_client';



собственно при возникновении события сервер знает какие клиенты на него подписаны и отправляет обычный POST запрос
средств уйма: CLR / sp_OA / ssis / cmdshell


единственная сложность будет отслеживание отвалившихся сессий, поскольку по хорошему при выходе клиент должен будет вызывать Unregister, но есть варианты когда приложение крашится и.т.д
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854007
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.
не могу даже представить что может пойти не так :) тестовый пример заводится с пол оборота....
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854088
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.

Как сказал классик: не умножайте сущности.
Ваша задача решается при помощи SqlDependency без всяких трехзвенок, MSMQ и т.д.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854118
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoКто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

Ага. Называется "Ваш домен\All Users", емнип.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854212
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgТак для пользователя, которому явно дали такие права (не через паблик, а ему самому), работает?
Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.

alexeyvgА пример кода от MS не подходит?
https://code.msdn.microsoft.com/How-to-use-SqlDependency-5c0da0b3
Блин, именно этот пример мне не попадался. Спасибо. Может попробую :)
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854219
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MinamotoVadim RomanenkoКто в курсе - можно ли как-то выдать гранты одновременно для любого юзера, который подключается через Windows Authentication? Для существующих и будущих юзеров? Возможно, есть какой-то подходящий псевдоним? А то что-то нотификации не приходят. И есть подозрение, что проблема в этом моменте:

Ага. Называется "Ваш домен\All Users", емнип.
Вот блин. Надо будет попробовать :)
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854221
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKVadim Romanenkoalexeyvg,

Или не подошло, или этот SqlDependency вообще странно работает. Уже несколько раз перебрал и код, и документацию - единственное к чему можно прикопаться, это вот эти вот права для пользователя на сервере.
не могу даже представить что может пойти не так :) тестовый пример заводится с пол оборота....

Вот и я не могу. Но что-то идет не так. Причем какие-то запросы - вижу - уходят на сервер, но там все через некие внутренние сущности. Потому не могу сходу понять что же оно там опрашивает. Но коллбек в любом случае не срабатывает
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854282
Vadim RomanenkoMinamotoпропущено...

Ага. Называется "Ваш домен\All Users", емнип.
Вот блин. Надо будет попробовать :)

I'd say better to use "AUTHORITY\Authenticated Users".
Allows you to add permissions for logged to domain users (guests excluded).
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854314
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoalexeyvgТак для пользователя, которому явно дали такие права (не через паблик, а ему самому), работает?
Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.Это нужно попробовать, что бы понять, что не работает.

Вы ведь пока что "придумали" это препятствие, вы же не знаете, что на самом деле не так.

Т.е. вам сначала нужно сделать работающий тестовый пример, а потом уже разбираться, как обойти ограничение "права для вин-пользователей". А вы делаете наоборот - у вас не работает, и вы придумали, что не работает из за прав.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854348
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgVadim Romanenkoпропущено...

Я не пробовал, если честно. В моем случае такое решение в любом случае не катит - потому что юзеры подключаются через эту самую вин. авторизацию, которую я не контролирую никак. Т.е. не контролирую появление новых юзеров, которые могут подключаться к БД. А соответственно нет возможности автоматически выдавать им соответствующие права.Это нужно попробовать, что бы понять, что не работает.

Вы ведь пока что "придумали" это препятствие, вы же не знаете, что на самом деле не так.

Т.е. вам сначала нужно сделать работающий тестовый пример, а потом уже разбираться, как обойти ограничение "права для вин-пользователей". А вы делаете наоборот - у вас не работает, и вы придумали, что не работает из за прав.

Да, Вы абсолютно правы. Но на данный момент у меня закончилось время на изыскания и я сдался. Запилил банальный таймер, который раз в 30 секунд дергает сервер с вопросом "а есть ли чего нового на сегодня с ИД > предыдущего максимального".
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854349
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko,

для начала выполнить раздел "Включение уведомлений запросов" по указанной ссылке.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854402
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoalexeyvgЭто нужно попробовать, что бы понять, что не работает.Да, Вы абсолютно правы. Но на данный момент у меня закончилось время на изыскания и я сдался.Это как раз потому, что вы не попробовали на обычном пользователе.

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

Но если вас устраивает периодический опрос, то можно и так, если операторов немного, а время реакции допустимо большое.
...
Рейтинг: 0 / 0
Уведомление клиентов об изменениях на сервере
    #39854533
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опрашивать лучше не базовые таблицы, а создать вспомогательную, в которой обновлять через триггер базовой метку времени последних изменений.
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уведомление клиентов об изменениях на сервере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]