多线程上的wso2 esb错误

时间:2015-10-20 13:23:10

标签: multithreading wso2esb

我们有以下设置

  1. 将消息从一个队列发送到另一个队列。
  2. 邮件将从文本转换为xml。
  3. 使用单个消费者(线程),它工作正常。

    当我们有10个并发消费者时。我们得到以下异常。仅当我们转储大约500条消息然后启动wso2 ESB服务器时才会出现此问题。

    引起:org.apache.axiom.om.OMException:javax.xml.stream.XMLStreamException:[row,col]处的ParseError:[1,1] 消息:文件过早结束。     在org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)     在org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)     在org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)     在org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)     at pil.pershing.transform.esb.mediator.TransformNewXmlMediator.mediate(TransformNewXmlMediator.java:60)     在org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78)     ......还有11个 引起:javax.xml.stream.XMLStreamException:[row,col]处的ParseError:[1,1] 消息:文件过早结束。     at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:588)     at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)     在org.apache.axiom.util.stax.dialect.SJSXPStreamReaderWrapper.next(SJSXPStreamReaderWrapper.java:138)     在org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)     在org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)     ......还有16个

1 个答案:

答案 0 :(得分:0)

听起来您正在使用自定义调解员" pil.pershing.transform.esb.mediator.TransformNewXmlMediator"。也许这个不是线程安全的:并发消费者呼叫"调解"在TransformNewXmlMediator的同一个实例上,验证您的代码是否可重入