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

Откуда: Новосибирск
Сообщений: 3811
ну т.е. буквально select count(*) from master..syspocesses (sys.processes, sys.dm_exec_connections, sys.dm_exec_sessions и т.д. и т.п.) = 1 внутри процедуры, которую дергает брокер ... всегда!

посмотрел сиспроцессы, брокер и попутные темы в бол, никакого объяснения не нашел ...

это сразу к Билли или кто-то что-то видел/слышал/догадывается/одна бабка сказала?
19 окт 06, 18:22    [3284352]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Вроде, в BOL четко написано:
BOL
If a user has VIEW SERVER STATE permission on the server, the user will see all executing sessions in the instance of SQL Server; otherwise, the user will see only the current session.
19 окт 06, 18:26    [3284370]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
да, настолько четко, что я ее тоже запомнил ... однако внутри брокера это не так (определено эмпирически!) ... ээээ ... жалко я не захватил пример с работы, извините ... придется снова написать
19 окт 06, 18:49    [3284487]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
iSestrin
да, настолько четко, что я ее тоже запомнил ... однако внутри брокера это не так (определено эмпирически!) ... ээээ ... жалко я не захватил пример с работы, извините ... придется снова написать

К сожалению, не знаком с брокером, но если судить по внутри процедуры, которую дергает брокер, то почему бы в этой процедуре не написать Execute As? К тому же, наверняка имеется какой-то пользовательский контекст выполнения?
19 окт 06, 18:54    [3284511]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
поверьте, писал! execute as owner!

более того, sys.dm_broker_activated_tasks говорит, что выполняется под sa...


>К тому же, наверняка имеется какой-то пользовательский контекст выполнения?<
да, вот тут мной наверно не совсем договорено, но это лучше проиллюстрировать примером ... кратко - его нет, поскольку это реакция на event notification
19 окт 06, 18:58    [3284520]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
это скрипт, чтобы продемонстрировать проблему:

create database broker
go
alter database broker set enable_broker
go
use broker
go
create table t (id int identity, rc int)
go
create proc p as
receive * from q
insert t (rc) select count(*) from sys.sysprocesses
go
create queue q with status=on, activation(status=on,procedure_name=p,max_queue_readers=1,execute as owner)
go
create service s authorization dbo on queue q ([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification])
go
drop event notification n on server
go
create event notification n on server for audit_login, audit_logout to service 's', 'current database'
go

/*
далее подключаемся к бд broker откуда-то еще и проверяем, сколько процессов видит брокер:
select * from t

можно проверить, что прием из очереди разрешен (колонка is_receive_enabled):
select * from sys.service_queues where name = 'q'
*/
20 окт 06, 07:10    [3285343]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
упс
20 окт 06, 15:21    [3288828]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
WiRuc
Member

Откуда: Воронеж
Сообщений: 1280
ALTER DATABASE broker SET TRUSTWORTHY ON
20 окт 06, 16:03    [3289212]     Ответить | Цитировать Сообщить модератору
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
WiRuc, спасибочки огроменное!
20 окт 06, 16:36    [3289532]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: брокер не видит процессы, кроме сябя самого!!!  [new]
alexclerk
Member

Откуда:
Сообщений: 2
аналогичная ситуация.

Пример из ветки хорошо работает после SET TRUSTWORTHY ON но когда те же действия
выполняю для имеющейся бд перестает вызываться процедура p, хотя
сообщения в очередь попадают. Если отключить TRUSTWORTHY то процедура
вызывается и записи попадают в табл.t но с rc=1

Пожалуйста помогите советом
24 сен 13, 14:29    [14877541]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить