Мы пытаемся настроить dynamodb session manager на tomcat 7 в среде эластичного материала, работающего на одном сервере.Tomcat 7 Стойкий диспетчер сеансов преждевременно загружается из магазина
Мы можем видеть, что данные сеанса периодически копируются на dynamodb, но иногда старые данные сеанса (для того же сеанса) загружаются обратно из dynamodb. В нашем приложении это проявляется, загружая предыдущий элемент, на который вы смотрели (элемент хранится в сеансе). Файл cookie JSESSIONID остается таким же, и клиент сохраняет один и тот же сеанс. Если мы выключим диспетчер сеансов, проблема будет решена.
Вот содержание нашего context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Manager
className="com.amazonaws.services.dynamodb.sessionmanager.DynamoDBSessionManager"
Table="SessionTable"
RegionId="eu-west-1"/>
</Context>
Мы попытались установки maxIdleBackup и maxIdleSwap в больших количествах, как это определено в tomcat 7 docs безрезультатно.
Если мы установим maxIdleBackup и maxIdleSwap в ноль, ошибка будет уменьшена, потому что данные сеанса будут скопированы на dynamodb чаще, но это не решит проблему.
Что вызывает tomcat для загрузки данных сеанса из магазина? Я понял, что его следует загружать только из магазина, если он вообще недоступен (клиент попадает в другой кота).
Спасибо за ваш ответ. Мы используем липкие сеансы и все еще видим проблему при использовании одного сервера. Я попытался отладить код, но не могу точно определить проблему. По какой-то причине сеанс загружается из базы данных до резервной копии текущей версии. Как вы говорите, это может быть асинхронный характер резервного копирования, но наше приложение в основном основано на форме. – drei01
В итоге мы прибегли к использованию встроенного JDBCStore, у которого нет этой проблемы. – drei01