Я пытался найти некоторую документацию о политике повторного использования рабочих потоков на веб-серверах, особенно tomcat 6, но не смог ничего найти, поэтому доводил это до сведения экспертов!
Насколько я понимаю, веб-сервериспользует пул рабочих потоков для обслуживания http-запросов.
В нашем приложении мы сохраняем некоторую информацию на карте, ключом которой является текущий поток (что-то вроде способа сделать поток локальным).
Недавно мы обнаружили ошибку в нашемкод, в котором мы полагались на тот факт, что по истечении сеанса (для нас настроенного на 2 часа) наш реализующий класс HttpSessionBindingListener получит обратный вызов, а в методе мы будем использовать текущий поток для запроса карты и очистки некоторыхданные.Проблема с этим подходом состоит в том, что веб-сервер не всегда дает вам рабочий поток, который был связан с тем же сеансом 2 часа назад, и поэтому мы не выполняли очистку должным образом.
После обнаружения этой проблемы яЯ на самом деле запутался в сценарии с другой стороны.Для нас мы видели, как этот код работает 80% случаев, то есть получается рабочий поток, который корректно очищает данные.
Я не совсем понимаю, почему это работает?Может ли кто-то со знанием о внутренностях контейнера сервлета пролить свет на это?