Пуленепробиваемые сессии для веб-фермы IIS

Вы можете объединить таблицу с собой и получить желаемое значение. Предполагая, что ваш столбец даты является первичным ключом или уникальным.

update your_table upd set period_number = tbl.period_number 
from
(
   select b.date, max(b2.date) as d2 from your_table b 
   inner join d_batch_tab b2 on b2.date< b.date and b2.period_number  is not null 
   group by b.date
)t 
inner join your_table tbl on tbl.date = t.d2
where t.date= upd.date

Если вам не нужно обновлять таблицу, а только оператор выбора, то

select yt.date, yt.category, yt.start_period, tbl.period_number
from your_table yt
inner join 
(
   select b.date, max(b2.date) as d2 from your_table b 
   inner join d_batch_tab b2 on b2.date< b.date and b2.period_number  is not null 
   group by b.date
)t on yt.date = t.date
inner join your_table tbl on tbl.date = t.d2
5
задан ppeterka 16 January 2013 в 11:58
поделиться

5 ответов

Еще после некоторого расследования мы решили пойти с опцией StateServer. Мы все еще надеемся видеть, как преодолеть единую точку отказа на StateServer, и мы подняли два дальнейших пути расследования.

Наша первая опция состоит в том, чтобы использовать стороннюю программу для обработки сессий. Тот, на который мы смотрим прямо сейчас, называют nCache: Я думаю, что существует, другой назвал ScaleOut, на который мы также можем смотреть.

Опция номер два состоит в том, чтобы использовать состояние сеанса paritioning, и мы в настоящее время изучаем эту опцию также: http://msdn.microsoft.com/en-gb/magazine/cc163730.aspx

2
ответ дан 14 December 2019 в 09:00
поделиться

Это может быть боль, но я решил выключить Сессию и соглашение с последствиями. До сих пор ничто непреодолимое не подошло.

3
ответ дан 14 December 2019 в 09:00
поделиться

Я думаю, что Вы перемещаетесь в другой arquitecture: больше чем один Фронтэнд IIS.

Вы собираетесь использовать NLB?

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

Здесь в моей компании мы перемещаем приложение.NET в два IIS с Балансировкой Сетевой нагрузки и использованием приложений, чтобы иметь управление Сессией в материалах.

Мы исследовали это была другая альтернатива:

  • с помощью клиентской привязки в конфигурации NLB, позволяя обратной передаче вернуться к IIS, где процесс был сгенерирован, цена должна была освободить весь NLB...

После консультации Microsoft наилучшим вариантом был Сервер состояния :)

Надежда это помогает!

С уважением!

1
ответ дан 14 December 2019 в 09:00
поделиться

К моему знанию нет никакого способа создать резервную копию или копировать Ваши услуги StateServer. Другая проблема при использовании StateServer в веб-ферме - то, если кластер позволяет, чтобы тот же браузер достиг различных машин по различным запросам, у них могли бы быть различные данные сессии по каждому запросу! (редактирование: Martin указал, ниже которого можно зафиксировать это путем совместного использования единственного экземпляра StateServer среди нескольких веб-серверов). В Ваших целях опция 2 или 3 была бы более отказоустойчивой, и я добавлю другую идею: поскольку маленькие части данных пытаются использовать cookie для устройства хранения данных сессии.

1
ответ дан 14 December 2019 в 09:00
поделиться

Также удостоверьтесь, что Вы не используете SQL Server для хранения состояния сеанса, которое просто прибывает из базы данных так или иначе. Если так, Вы могли бы также просто назвать базу данных каждым разом.

0
ответ дан 14 December 2019 в 09:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: