2
最近能夠看到,而訪問頁面正在加載非常緩慢,並在error.log文件緩存,內存泄漏相關的錯誤,這使我在一個問題一個AEM實例可以處理多少個JCR會話。?AEM實例能夠處理多少個JCR會話?
最近能夠看到,而訪問頁面正在加載非常緩慢,並在error.log文件緩存,內存泄漏相關的錯誤,這使我在一個問題一個AEM實例可以處理多少個JCR會話。?AEM實例能夠處理多少個JCR會話?
ResourceResolver
接口並避免使用Session
。ResourceResolver
,或者您通過自適應創建了一個實例:請勿關閉它。ResourceResolverFactory
手動創建ResourceResolver,那麼在完成後它應該是短暫的並關閉。Session
。例子:
package io.salihovic.florian.examples;
import javax.annotation.CheckForNull;
interface ResourceResolverTemplate {
@CheckForNull ResourceResolver getResourceResolver();
default void usage() {
final ResourceResolver resolver = this.getResourceResolver();
if (resolver != null) {
// do something
resolver.close();
}
}
}
這取決於很多因素,沒有答案可能。例如:泄漏的原因是什麼? –
@FlorianSalihovic我們有一個DEV框,其中所有的用戶都被連接並試圖執行/測試開發的代碼庫。 (大多數代碼片段都有JCR會話來建立和檢索數據類用例),而測試頁面幾乎無法加載。那麼是否有辦法找出JCR Sessions有多少已經建立,並且AEM服務器可以處理的最大限制。 – VAr
您是否在日誌中看到類似「CacheManager:resizeAll」的內容?如果是,請嘗試以下命令:jmap -histo | grep SessionImpl應該給你一個會話列表。我認爲這取決於兩個主要因素,即開放率和會議結束率。不會關閉會話的錯誤代碼。如果長時間運行的操作太多,那麼即使寫得很好的代碼也會導致JCR會話數量的增加(例如對於慢Mongo部署)並且系統減速停止。 –