2012-04-19 2 views
2

У меня есть SQL-CLR-триггер в SQL Server 2008, который отправляет сообщение на сервер сокетов. Он работает нормально, но мне нужен клиент TCP, чтобы оставаться на связи с сервером, с которым он общается.Создание сокета внутри триггера SQL-CLR или хранимой процедуры

Для этого мне нужно сделать какую-то нить, которая останется в живых. Таким образом, я создал поток, добавив сообщение в очередь, я вижу, что клиент подключается, но SQL Server выходит, прежде чем клиент сможет обработать сообщение в очереди и отправить его на tcp-сервер.

Цель этого приложения - отправить какие поля и некоторые значения, связанные с ними, которые были обновлены через xml. Я хотел поставить их в очередь, которая обрабатывается в потоке и отправляется на TCP Socket Server.

Теперь я планирую как альтернативу, так как CLR Trigger добавляет сообщения в MSMQ и имеет другую службу для обработки этих сообщений.

Любые хорошие предложения, как это сделать?

+0

Не могли бы вы быть более конкретным с каким сервером вы общаетесь? Сколько данных вы отправите, с какой целью и с каким протоколом? (Информация о протоколировании? Очередь сообщений? Связь с игровым сервером?) – sisve

+0

Я обновляю свой вопрос, чтобы иметь эту деталь. Я хочу отправить измененную ассоциацию столбцов/значений для таблицы в некотором формате XML. Поэтому моя цель - хранить эти данные в очереди и обрабатывать их по одному. Клиент сокета надеется иметь только одно соединение с сервером, так как в этой таблице много изменений. –

+0

HAve вы изучили использование Service Broker? – HLGEM

ответ

1

СОЗДАТЬ СБОРЕ Сообщения АВТОРИЗАЦИЯ DBO FROM 'C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Messaging.dll' С PERMISSION_SET = UNSAFE GO

Смежные вопросы