2012-01-31 5 views
0

Я использую Tomcat 7 (7.0.25), работающий на Oracle Java 1.6.0_30. У меня установлен libtcnative-1 и используется соединитель APR (org.apache.coyote.http11.Http11AprProtocol).Tomcat удаляет соединения во время передачи с использованием sendfile и APR Connector

Я стараюсь служить статические файлы с помощью SendFile (но это не имеет значения, потому что это воспроизводимое без SendFile)

Все отлично работает, если пользователь загрузить файл держит «Сохранить файл» диалог открытия в своем браузере слишком долго. Если диалог «сохранить файл» открыт более 10 секунд до того, как пользователь нажимает кнопку ОК, только часть загруженного файла записывается на компьютере пользователя (обычно около 1.08 МБ).

Кажется, что это некий вид соединения из-за отсутствия активности. Любые идеи, если есть настройка, позволяющая настроить значение таймаута? Или любая идея, как обойти проблему, не избавившись от соединителя APR alltogether?

ответ

0

Эти две настройки, которые приходят на ум, отключены: UploadTimeout и connectionTimeout. Можете ли вы передать значения этих двух? Его можно найти в файле server.xml.

+0

Я уже проверял эти параметры конфигурации. ConnectionTimeout был установлен в 600000, а disabledUploadTimeout - на false –

+0

Хмм. Существует ли межсетевой экран/балансировка нагрузки между серверами и конечным пользователем? С самого сервера вы можете попробовать загрузить файл с помощью браузера/wget? – bubbly

+0

Отсутствие брандмауэра, без балансировки нагрузки. Если я обслуживаю статический файл (т. Е. Не просматривая сервлет), он работает нормально. К сожалению, это не вариант, поскольку файл генерируется динамически, и мне также нужен механизм для предотвращения хотлинкинга. –