Произвольная ошибка Channel.Connect.Failed при обращении к серверу Java из приложения Flex с использованием протокола AMF
У меня есть проект, опубликованный в Интернете, которым пользуются тысячи пользователей каждый день. По сути, я использую сервер в AmazonAWS с серверной частью, скомпилированной в Java 6, работающей в Tomcat. Я использую AMF для публикации сервисов, а мой клиент построен на Flex 4.6 с использованием Flash Builder для генерации классов для подключения к сервисам AMF. Код, который я использую для подключения к сервисам:
public var cpcService:RemotingServicesImpl;
private function callService():void
{
FlexGlobals.topLevelApplication.callingService=true;
encryptedSession=ResourcesUtil.buildSessionId(globalSettings.sessionId, globalSettings);
var responder:Responder=new Responder(gameStateLoaded, gameStateFailed);
var token:AsyncToken=cpcService.getGameState(encryptedSession, taskKey);
token.addResponder(responder);
}
private function gameStateFailed(ev:FaultEvent=null):void
{
DisplayUtil.trackErrorInfoEvent("FATAL - FatalError", "getGameState-" + FlexGlobals.topLevelApplication.mainView.currentState, ev, encryptedSession);
}
private function gameStateLoaded(ev:Object):void
{
// my fantastic code when everything is ok
}
Обычно все в порядке, и мое приложение работает, но некоторые вызовы (например, 1 раз в 500) не работают, я знаю это, потому что в функции trackErrorInfoEvent я регистрирую событие в Google Analytics, поэтому я знаю, что это происходит случайно, Это ошибка:
faultCode = "Client.Error.MessageSend"
faultDetail = "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'https://appcog.cognifit.com/messagebroker/amf'"
faultString = "Send failed"
rootCause = (null)
Конечно, URL-адрес правильный и работает все время.
Я видел в некоторых блогах, что добавление этой строки:
<add-no-cache-headers>false</add-no-cache-headers>
проблема исправлена, но у меня есть эта строка в моем файле конфигурации и все еще происходит.
Я проверил журналы своего сервера, и у меня нет записей о прерываниях обслуживания в любое время.
Я очень ценю любую помощь, спасибо заранее!