我是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