Flex произвольно сбрасывает соединения с сервером - PullRequest
2 голосов
/ 26 ноября 2009

У нас есть гибкое приложение, связывающееся с нашим сервером. Приложение flex делает много HTTP-запросов (отправляет и получает) к серверу, во многих случаях параллельно.

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

Сервер вообще не видит сбойных запросов и не загружен.

Я также подозреваю, что flex может быть при соединении-сбрасывании, автоматически повторяя запрос POST или GET, в результате чего наш сервер получает запрос дважды.

Кто-нибудь сталкивался с таким сценарием?

Как я могу смягчить эту проблему?

Ответы [ 2 ]

2 голосов
/ 26 ноября 2009

Я столкнулся с этой проблемой, которая возникла из-за того, что я не держался за ссылку на загружаемый объект (URLLoader?), Думая, что добавления всех правильных слушателей событий к нему будет достаточно после его настройки. Он собирает мусор и не может его завершить. Решением было сохранить все загрузки URLLoader s в укорененной коллекции, например в словаре, и удалить их по завершении.

Может ли ваша проблема быть связана?

1 голос
/ 26 ноября 2009

У нас были подобные проблемы, и мы не смогли найти ни одной проблемы. После долгого поиска мы обнаружили, что наш sqlserver был перегружен (потому что мы вошли во многие данные на сервере). Теперь мы заходим в текстовый файл и все работает нормально.

Наше гибкое приложение представляет собой инструмент для тестирования, который одновременно отбирают 350 кандидатов (в среднем). Загрузка веб-сервера и sqlserver довольно высока, потому что каждые 30 секунд состояние гибкого приложения сохраняется на сервере (состояние = текущее упражнение, над которым работает кандидат).

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

Мы работаем с удаленными вызовами WebORB и amf. У нас также есть обработчик retrieveBlob.aspx, используемый для извлечения медиа. В среднем, когда 350 кандидатов начинают сессию, около 3500 медиа-файлов выбираются одновременно (с кэшированием на сервере). В этом случае у нас пока не было никаких проблем.

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

Flex, автоматически повторяющий публикацию или получение, - это то, чего я еще не видел в нашем приложении.

Какой сервер вы используете? (мы используем Flex-Weborb-asp.net-sqlserver).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...