Хорошо, вот фон. У нас есть настройка кластерной среды для запуска нашего сервера Coldfusion, он в основном разделен на два разных экземпляра, на которые общий адрес перенаправляет запросы. У меня есть настройки моего приложения, чтобы отправлять мне электронные письма всякий раз, когда пользователь обнаруживает ошибку.
За последнюю неделю или около того у меня были случаи, когда я получал 500+ сообщений об ошибках более чем за 5 минут для одного пользователя, когда он просматривал рассматриваемое приложение. При нормальных обстоятельствах я могу получить дюжину за весь день. В большинстве случаев мне удалось поговорить с пользователем вскоре после этого, и они сообщили, что не получили ни одной страницы с ошибкой, и что они смогли выполнить свою транзакцию просто отлично.
Приложение, о котором идет речь, довольно прямолинейно, пользователь входит в систему, он просматривает около 6 различных страниц, каждая из которых отправляет опубликованные данные формы следующей, эти переменные формы необходимы для продолжения. Ошибка, которую я, похоже, получаю для каждой из этих коллекций массивных электронных писем, заключается в отсутствии первой переменной формы, ищущейся на каждой странице. «Сообщение об ошибке: элемент SESSION_ID не определен в FORM». - казалось бы, каждый раз.
Когда я просматриваю электронные письма об ошибках, я могу видеть, какие были ссылающаяся страница и страница отчетов, и могу отслеживать пользователя, проходящего через приложение от шага к шагу до его завершения - генерируя эти сообщения об ошибках по десяткам за раз для каждой страницы .
Одна из моих гипотез состоит в том, что кластерный сервер отправляет запросы обоим экземплярам приложения на каждом из физических серверов, и тот, на котором находится сеанс пользователя, проходит нормально, но запрос к «неиспользованному» Сервер получает запрос без данных формы и отправляет эти сообщения об ошибках. Это правдоподобно? * 1009 Благодарения и *
Дополнительная информация - я просто просматривал свои отчеты, и другое основное сходство между всеми этими случаями заключается в том, что переменная CGI.referrer (которую я отправляю в своем сообщении об ошибке) не заполняется. В каждом случае этих массовых электронных писем ни один из них не проходит cgi.referrer, но во всех моих обычных отчетах об ошибках он добавляется. Я думал, что это было любопытно ..