[英]Session being deleted prematurely from database when using Tomcat and PersistentManager using JDBC Store
[英]Tomcat 7 Persistent Session Manager prematurely loads from Store
我們正在嘗試在運行單個服務器的Elasticbeanstalk環境中為tomcat 7配置dynamodb會話管理器 。
我們可以看到會話數據被定期備份到dynamodb,但是偶爾(對於同一會話)舊的會話數據也被從dynamodb中加載回去。 在我們的應用程序中,這通過加載您正在查看的上一個項目來體現出來(該項目存儲在會話中)。 JSESSIONID cookie保持不變,並且客戶端保持相同的會話。 如果我們關閉會話管理器,則此問題已解決。
這是我們的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>
我們嘗試將tomcat 7文檔中定義的maxIdleBackup和maxIdleSwap設置為高數字,但無濟於事。
如果將maxIdleBackup和maxIdleSwap設置為零,則會減少錯誤,因為會話數據更頻繁地備份到dynamodb,但這不能解決問題。
是什么導致tomcat從商店中加載會話數據? 我的理解是,只有在根本不可用的情況下,才應該從商店中加載它(即,客戶端訪問了另一個tomcat)。
最后,我們求助於使用不存在此問題的JDBCStore 。 我希望將來有更多時間回到這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.