2009-06-29 3 views
0

За последние несколько месяцев у нас была проблема с нашим сайтом. Время от времени различные запросы к базе данных с использованием ADO.NET DataSets будут вызывать ошибку ... наиболее распространенным из которых является «Не удалось включить ограничения. Одна или несколько строк содержат значения, нарушающие непустые, уникальные или чужие -ключительные ограничения ".Есть ли проблема с ADO.NET DataSets в сбалансированной нагрузке среде?

Данные действительно действительны, хотя, не изменяя ничего, ошибка будет прерывистой. Кроме того, «исправление» для него состоит в том, чтобы повторно использовать пул приложений на обоих веб-серверах ... поэтому проблема не может быть плохим возвращенным данными. Как только это будет сделано, он может работать нормально в течение нескольких недель за раз, или перерыв 3 раза за один день. Там нет согласованности ...

Он также кажется, как более новые средства доступа к данным, такие как Linq 2 SQL, работают нормально ... хотя это сложно сказать, поскольку сайт использует оба момента , (Работая над тем, чтобы все перешло к L2S, но у вас не так много времени, чтобы переписать старые компоненты, к сожалению ...)

У кого-нибудь было что-то в этом роде раньше? Это что-то с балансировкой нагрузки? Может быть, что-то не так с серверами? (Я по очереди заставлял все подключения к каждому серверу и испытывал ошибку на обоих из них.) Может быть, что-то не так с запуском в виртуальной машине?

Err ... ok, поэтому общий вопрос: что вызывает это и как его исправить?

О, и веб-сайт в .NET 3.5 ...

ответ

0

Исходя от того, что вы сказали, я бы предположил, что это связано с испытывала нагрузку на серверы в момент ошибки ,

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

Также убедитесь, что на ваших производственных серверах установлены все последние пакеты обновлений/обновлений. MS имеет тенденцию не рассказывать нам все, что они фиксируют. Наконец, посмотрите на MS connect, чтобы узнать, исправляет ли исправление проблему, о которой вы говорите.

UPDATE:

нагрузочное тестирование может быть простым или сложным, как вы можете себе позволить. То, что он должен делать, выполняется через последовательность страниц, которые выполняют стандартные операции на вашем сайте повторяемым образом. Обычно вы хотите моделировать «мыслить» раз между загрузкой/операцией каждой страницы, которая соответствует ожидаемому поведению пользователя.

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

Some links to load testing tools are here. Another list is here.

В качестве примечания, я видел, что приложения начинают проявлять странное поведение под нагрузкой всего 5 одновременных пользователей. Это зависит от того, как строится сайт.

+0

Я был бы очень удивлен, если бы это была проблема с загрузкой ... Я не думаю, что мы получаем такой трафик. – CodeRedick

+0

выглядит так, как обновления обновляются для серверов ... как мне пройти тестирование нагрузки? – CodeRedick