我是SOA新手,目前我們在使用BPEL進行XML轉換時遇到了一個問題。 我們有3個SOA項目會做這樣的事情:BPEL,線程被哈希映射到HashMap.getEntry?
- 從文件夾位於文本格式 在數據庫
- 保存文件的內容並把AQ
- 讀取文件ID從AQ,加載內容讀取輸入文件從數據庫轉換爲我們內部的XML格式
- 應用一些業務邏輯並將內容轉換回文本格式。
SOA proejct1執行步驟1-2,project2執行步驟3並將project3執行到step4。
我們正在使用輸入7000文件進行一些負載測試。
我們遇到的問題是,內存使用「老一代」的不斷積累,但主要GC可以減少它,它仍然保持增長,直至100%。然後不能創建新的BEPL實例,並且我們遇到事務超時。
分析堆轉儲後,我們得到如下的結果,似乎BPELFactoryImpl擁有超過180M的HashMap,並且它會不斷增長。所有人都有類似的經歷嗎?
我們使用SOA版本12.1.3。這個問題使我們停了好幾個星期,請大家幫忙,謝謝。 Image of heap analysis
線程我認爲他們應該在這裏使用的ConcurrentHashMap,而不是HashMap,它不是線程安全的。 – sujoe
另請參閱:http://stackoverflow.com/questions/17070184/hashmap-stuck-on-get – sujoe