2015-06-12 2 views
0

Я никогда раньше не использовал несколько наборов активных результатов, но похоже, что это поможет мне решить проблему, разрешив нескольким подключениям общий контекст. Мой вопрос заключается в том, есть ли способ указать, какие соединения обмениваются контекстом. Согласно документации, sp_getbindtoken, которая была более старой версией этой технологии, вы могли указать маркер для идентификации каждого сеанса и определить, какие соединения разделяли каждый сеанс. Я не вижу способа указать, какие подключения разделяют те сеансы с MARS.Могу ли я задать сеанс для множества активных наборов результатов?

Похоже, что существует только один общий контекст, и ваше соединение может быть частью его, указав MARS = true или не являясь его частью. Я хотел бы иметь 3 разных сеанса и определять программно, какие соединения обмениваются друг с другом контекстом. Это возможно?

Обновление: Я хочу предоставить немного больше информации по моей проблеме, чтобы узнать, поможет ли моя теория MARS.

Моя система работает хорошо, за исключением одного запроса на обновление. Я получаю много ошибок взаимоблокировки, исходящих из этого одного запроса. Основываясь на том, что я прочитал о sp_getbindtoken, эта более старая функция может быть использована для принуждения нескольких клиентов к одному конвейеру, так что запросы выполняются серийно, что предотвратит взаимоблокирование двух запросов. MARS заменяет sp_getbindtoken, поэтому я надеялся, что он будет поддерживать ту же функциональность. Я хотел использовать MARS только при выполнении этого запроса на обновление, и остальная часть моей системы продолжает использовать строку соединения, которая не использует MARS. Кроме того, если бы я мог указать контекст для запросов MARS, это позволило бы мне разделить запросы обновления по разделу обновляемой таблицы. Я никогда раньше не использовал sp_getbindtoken или MARS, поэтому, возможно, все мои предположения об этих технологиях ошибочны, но если я правильно прочитаю документацию, это будет иметь большое значение для решения моей проблемы с тупиком.

ответ

2

«разрешает множественные соединения для обмена контекстом»

Нет, вы ошибаетесь. MARS позволяет получить несколько результирующих в одном соединении, например:

Смотреть это:

https://msdn.microsoft.com/en-us/library/yf1a7f4f(v=vs.110).aspx

Что вы хотите, сценарий не поддерживается.

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