【问题标题】:wso2 esb error on multi threading多线程上的 wso2 esb 错误
【发布时间】:2015-10-22 18:03:26
【问题描述】:

我们有以下设置

  1. 将消息从一个队列发送到另一个队列。
  2. 消息将从文本转换为 xml。

使用单个消费者(线程),它工作正常。

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

引起:org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[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) 在 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: ParseError at [row,col]:[1,1] 消息:文件过早结束。 在 com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:588) 在 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 更多

【问题讨论】:

  • 虽然我们使用了 reentrantlock,因为它在您的 Mediator 类中使用。我们仍然面临同样的问题。你能建议任何其他选择吗?

标签: multithreading wso2esb


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    相关资源
    最近更新 更多