2015-05-18 8 views
2

Я искал о жизненном цикле состояния сессии SQL и о том, как он работает, но я не нашел ни одного сайта, объясняющего его. Все, что я нашел, это как его настроить.Что такое жизненный цикл состояния сеанса SQL?

Что я пробовал: я создал веб-ферму с двумя серверами и применял к ней сеанс SQL, но я не знаю, как работает сеанс SQL? Требуется ли каждый запрос от пользователя прочитать его идентификатор сеанса из db?
Как события .NET обрабатывают сеанс SQL? Является ли сеанс SQL временно сохранен в памяти?

+0

Как вы создали веб-форму с «двумя» серверами? И что вы подразумеваете под запросом SQL-сессии? Код –

+2

Это веб-ферма, а не веб-форма, и я имею в виду режим состояния сеанса sql в iis. – Jala

ответ

1

Я искал о SQL сессии

SQL-сеанса параллелизм, а вот объяснение о том, как SQL сеанса работы: https://msdn.microsoft.com/en-us/library/aa478952.aspx

Чтобы проверить параллельность, я использовал приложение SQL сессии MVC приложение содержат два контроллера: «Главная», «Учетная запись». Я применил два теста для проверки параллелизма:

Пробный 1: Два контроллера доступа к SQL-сессии.

• Сделано домашний контроллер содержит действия записи в SQL сессии, то спать 30 секунд, как показано ниже: enter image description here

• контроллер Сделанный счета содержат действия для чтения из SQL сессии, как показано: enter image description here

• Запустить приложение и откройте две вкладки: первая вкладка для домашней и второй вкладки для учетной записи. Когда я открываю вторую вкладку, она открывается! И не дожидаясь первой вкладки, чтобы закончить его запрос, а ViewBag.Name имеет нулевое значение; это происходит потому, что SQL-сессия не сохраняется на БД до сих пор.

• После того, как веб-запрос домашнего управления завершает состояние сеанса, сохраненное в БД, я обновляю tab1, затем tab2, и замечает, что вкладка 2 ждет вкладку 1, чтобы завершить его веб-запрос.

Испытание 2: Один контроллер доступа к сеансу.

• код использования Home Controller на пробу 1.

• Изменение контроллера учетной записи и удалить код чтения из сессии, как показано ниже: enter image description here

• открыть две вкладки: Вкладка 1 для дома и вкладки 2 для счета; вкладка 2 дождитесь перехода на вкладку 1, чтобы завершить его веб-запрос.

• Для того, чтобы вкладка 2 не ждать вкладку 1, я делаю состояние счета контроллера сеанса отключено, как показано ниже: enter image description here


Для записи SQL сессии чтения, рабочий процесс ASP.NET хранит объекты, которые принадлежат в коллекцию сеансов клиентов в SQL Server в конце каждого веб-запроса.

Я использую инструмент SQL-профилировщика для отслеживания при чтении/записи на сеансе SQL.