Обновление ответа для VS2012, чтобы охватить исполняемый файл и библиотеки.
Если ваш проект является исполняемым файлом, вам нужно перемещаться следующим образом: Myproject -> properties -> linker -> дополнительные зависимости и добавить dll или lib.
Если вы проектируете библиотеку, вкладка «компоновщик» отсутствует, поэтому вам нужно перемещаться следующим образом: Myproject -> properties -> Librarian -> дополнительные зависимости и добавить dll или lib
Если бы это не вызвало никакого кода, я бы посмотрел на использование памяти. Это может быть результатом того, что Tomcat исчерпывает память и делает недействительными сеансы для восстановления.
Если это вообще возможно, отслеживайте сборку мусора и / или включите наблюдение с помощью jconsole или jvisualvm.
Я бы увеличил мониторинг сервера в целом и сессий в частности.
Хорошим приложением для мониторинга является лямбда-зонд - он позволяет просматривать текущие сеансы и их данные. Я бы также добавил HttpSessionListener для регистрации создания и уничтожения сеанса.
Правка
Возможно ли, что вы добавляете некоторые несериализуемые объекты в сеанс, и Tomcat не может пассивировать их на диск?
Править 2
Лямбда-зонд, кажется, мертв, и есть гораздо лучший форк проекта на http://code.google.com/p/psi-probe/
Увеличьте количество журналов сеансов, что может пролить свет на вашу проблему.
Страница конфигурации Tomcat Ведение журнала в Tomcat включает пример увеличения количества журналов сеансов.
Несмотря на то, что я не знаю причину проблемы, одно из возможных исправлений (которое я сделал в моем предыдущем проекте) - запустить приложение в кластере tomcat и выполнить аварийное переключение сеанса. По умолчанию сеансы могут быть закрепленными, и когда один из узлов выходит из строя, исправные узлы перехватывают сеансы, и все это прозрачно для конечного пользователя.
You can search Tomcat's bug database, but it would be better to have another look at your web application first. The chances that there is something wrong with Tomcat are very low.
Try to investigate what causes session invalidation. Are you using filters? Do you have cross-context requests? Try adding logging information for every request to find out, when exactly the session is lost.
есть тайм-аут, который вы можете настроить в своем web.xml:
<web-app>
...
<session-config>
<session-timeout>-1</session-timeout>
</session-config>
</web-app>
используйте -1 без тайм-аута
Возможная причина заключается в том, что вы помещаете в сеанс объект, который НЕ реализует интерфейс Serializable. Tomcat иногда записывает некоторые сеансы на диск. Если сеанс содержит несериализуемые объекты, он будет просто удален из контейнера (из-за NotSerializableException). Если это происходит, вы должны увидеть исключение в файле журнала tomcat.
Мы только что столкнулись с этим с tomcat 6_0_18 и ibm 1.5 jvm
оказалось, что это проблема ibm jvm с атомарными операциями.
В tomcat выше 6_0_19 есть исправление для решения этой проблемы.
Это также не происходит в sun 1.5 jvm
вот некоторые подробности