|
forward
|
|
Продолжение сессии при FileUpload07.06.2011, 16:00. Показов 1364. Ответов 9
Метки нет (Все метки)
Собственно сабж.
DiskFileUpload fu = new DiskFileUpload(); fu.setSizeMax(SIZE_MAX); fu.setSizeThreshold(SIZE_THRESHOLD); fu.setRepositoryPath(FileAccessHelper.ge tTmpDir(servlet)); List fileItems = fu.parseRequest(request); ... Собственно при вызове последней строки происходит запись временного файла. Все бы ничего, но файлы могут быть и десятки мегабайт. И соответсвенно этот процесс длится больше сессии, и после чего приложение вываливается. Так вот как бы и сам вопрос: Как тут можно 'дергать' сессию во время записи файла? |
|
| 07.06.2011, 16:00 | |
|
Ответы с готовыми решениями:
9
Продолжение работы при ошибке в библиотеке При вводе информации пропускается запрос на продолжение |
|
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
|
|
| 07.06.2011, 21:04 | |
|
Выражаетесь Вы как-то... вообче. Если, однако, я правильно понимаю, что все это происходит в servlet/JSP контейнере, то сконфигурируйте таймаут для сессии побольше:
<session-config> <session-timeout>480</session-timeout> </session-config>
0
|
|
|
mishgun
|
|
| 07.06.2011, 22:13 | |
|
V takom sluchae sessiya dlya vsego servera budet 480 minut
Mozhno sdelat session.setMaxInactiveInterval(int intervalInseconds); DiskFileUpload fu = new DiskFileUpload(); fu.setSizeMax(SIZE_MAX); fu.setSizeThreshold(SIZE_THRESHOLD); fu.setRepositoryPath(FileAccessHelper.ge tTmpDir(servlet)); List fileItems = fu.parseRequest(request); |
|
|
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
|
|
| 08.06.2011, 09:15 | |
|
А почему бы этому таймауту и не быть 480 минут?... Если сервер писан грамотно и сессии не забиваются всяческим хламом (что бывает, правда, весьма часто), ничего страшного не произойдет.
0
|
|
|
forward
|
|
| 08.06.2011, 11:03 | |
|
Нет, тайм-аут у сессии менять нельзя. Я думаю надо многопоточность реализовать. Один thread - на запись файла, а другой - на пролонгирование сессии. И пока не завершиться первый поток, второй будет 'дергать' сессию через некоторое время (допустим session.getMaxInactiveInterval()*4/5).
|
|
|
forward
|
|
| 08.06.2011, 11:49 | |
|
Тут даже проблема не в этом. Теперь как интересно можно из бина продлить сесиию...
Наверное это сделать нельзя. Ведь продлением сессии непосредственно занимается Томкет. Может как-то из загаловка можно... Что Вы думаете об этом? |
|
|
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
|
|
| 08.06.2011, 11:54 | |
|
Ну, раз все так сложно... остается дергать. Чем хуже, тем лучше. Не забудьте только, что LastAccessedTime в сессии обновляется при поступлении нового запроса. То есть 'дергать' придется из того же окна браузера (чтобы JSESSIONID был тот же) или из сервера - посылая loopback запрос с обязательной передачей JSESSIONID.
0
|
|
|
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
|
|
| 08.06.2011, 11:59 | |
|
да поменяйте Вы таймаут и не парьтесь... только в конце не забудьте вернуть таймаут в исходное состояние:
// запоминаем int prevTimeOut = session.getMaxInactiveInterval(); // устанавливаем 8 часов session.setMaxInactiveInterval( 480 * 60000 ); ..... // работаем ..... // восстанавливаем session.setMaxInactiveInterval( prevTimeOut );
0
|
|
|
forward
|
|
| 08.06.2011, 15:54 | |
Уже так сделал.... Но все равно спасибо.
|
|
|
mishgun
|
|
| 08.06.2011, 19:23 | |
|
8 chasov v sluchae fila v 10-ki MB i dial- up mozhet byt malo.I kstati gde mne spasibo za ideyu, a?
))))
|
|
| 08.06.2011, 19:23 | |
|
Помогаю со студенческими работами здесь
10
Продолжение работы цикла при возникновении исключения
StringGrid, продолжение поиска при повторном нажатии на кнопку Продолжение записи документов в цикле при возникновении отказа проведения Как осуществить продолжение выполнения программы только при закрытии формы? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|