2015-02-09 9 views
0

У меня есть приложение, основанное на flex client и blazeds на стороне сервера. Сценарий: 1. Клиент совершает удаленный вызов по каналу secure-amf. 2. Сервер занимает некоторое время, обрабатывая запрос, как правило, более 60 секунд.Время ожидания Flex BlazeDS на стороне сервера через 60 секунд

Когда код на стороне сервера пытается записать обратно в трубу, по которой выполняется соединение. он сообщает об ошибке обрыва трубы.

Я нашел несколько запросов по этой теме без какого-либо убедительного решения.

журнала ошибок на стороне Servier: [BlazeDS] java.io.IOException: Broken труба Ошибка записи: Broken труба

Вот мой serives-config.xml фрагмент кода.

<channel-definition id="my-secure-amf"    class="mx.messaging.channels.SecureAMFChannel"> 
<endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/> 
      <properties> 
       <add-no-cache-headers>false</add-no-cache-headers> 
      </properties> 
</channel-definition> 

ответ

0

Тайм-аут вашего соединения AMF/http устанавливается вашим приложением Http-сервера. И в зависимости от того, на каком сервере вы работаете, вы должны найти конфигурацию, соответствующую значению тайм-аута. Если вы работаете в Apache Tomcat 7, обратитесь к следующей конфигурации: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

Существует также возможность изменения времени ожидания в услугах-config.xml: (но это не относится к Вам)

<channel-definition id="my-channel" .... > 
    <endpoint url...../> 

    <properties> 

    <add-no-cache-headers>false</add-no-cache-headers> 

    <connect-timeout-seconds>10</connect-timeout-seconds> 

    </properties> 

</channel-definition> 
+0

Спасибо за направление, спас меня когда-нибудь. Мне удалось заставить его работать, как ожидалось, без проблем с трубами. Но, похоже, сейчас есть какая-то другая проблема. Я внес изменения в последнюю версию tomcat 8, используя параметр connectTimeout, который, похоже, не работал. Но когда я переместил/развернул мое приложение на предыдущей версии tomcat tomcat-7.0.27, он, похоже, работал нормально. – Manu

+0

Наконец-то я нашел реальную основную причину проблемы. Таймаут был вызван значением socket_timeout со значением по умолчанию 60 секунд. Увеличение этого значения соответствующим образом устраняет проблему на tomcat 8, а также tomcat 7. https://tomcat.apache.org/connectors-doc-archive/jk2/jk/workershowto.html – Manu