我是SOA的新手,目前我们在使用BPEL进行XML转换时遇到了一个问题。 我们有3个SOA项目会做类似的事情:
SOA proejct1执行步骤1-2,project2执行步骤3,将project3执行到步骤4。
我们正在使用输入7000文件进行一些负载测试。
我们遇到的问题是" Old Generation"继续积累,虽然主要GC可以减少它,它仍然保持增长,直到100%。然后,不能创建新的BEPL实例,并且我们遇到了事务超时。
分析堆转储后,我们得到如下结果,似乎BPELFactoryImpl持有超过180M的HashMap,并且它将继续增长。所以有人经历过类似的事情吗?我们使用SOA版本12.1.3。这个问题让我们停了好几个星期,请帮忙,非常感谢。 Image of heap analysis
答案 0 :(得分:0)
专家
最后我们得到了一个答案,它是由一个错误引起的,正如Oracle Support所说,我们正在等待补丁。 谢谢你的关注。
这是一个错误。你应该提出一个SR引用:卡在线上
at java.util.HashMap.getEntry(HashMap.java:465)
at java.util.HashMap.get(HashMap.java:417)
at oracle.xml.parser.v2.XMLNode.setUserData(XMLNode.java:2137)
at oracle.bpel.lang.v20.model.impl.ExtensibleElementImpl.doCreateElement(ExtensibleElementImpl.java:502)
at oracle.dp.entity.impl.EmFacadeObjectImpl.getElement(EmFacadeObjectImpl.java:35)
at oracle.bpel.lang.v20.model.impl.ExtensibleElementImpl.performDOMChange(ExtensibleElementImpl.java:707)
at oracle.bpel.lang.v20.model.impl.ExtensibleElementImpl.doOnChange(ExtensibleElementImpl.java:636)
at oracle.bpel.lang.v20.model.impl.ExtensibleElementImpl$DOMUpdater.notifyChanged(ExtensibleElementImpl.java:535)
at oracle.dp.notify.impl.NotifierImpl.emNotify(NotifierImpl.java:39)
at oracle.dp.entity.impl.EmHolderImpl.doNotifyOnSet(EmHolderImpl.java:53)
at oracle.dp.entity.impl.EmHolderImpl.set(EmHolderImpl.java:47)
at oracle.bpel.lang.v20.model.impl.CopyImpl.setTo(CopyImpl.java:115)
at com.collaxa.cube.engine.ext.bpel.v2.wmp.BPEL2xCallWMP$CallArgument$1.evaluate(BPEL2xCallWMP.java:190)
at com.collaxa.cube.engine.ext.bpel.v2.wmp.BPEL2xCallWMP.invokeMethod(BPEL2xCallWMP.java:103)
at com.collaxa.cube.engine.ext.bpel.v2.wmp.BPEL2xCallWMP.__executeStatements(BPEL2xCallWMP.java:62)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:188)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2880)
....
错误20857627(20867804):由于大量线程卡在HashMap.get中而导致性能问题