2015-10-20 69 views
0

我們具有以下設置WSO2 ESB錯誤多線程

  1. 從一個隊列發送消息到另一個隊列。
  2. 該消息將從文本到XML進行轉化。

隨着單個消費者(線程),這是工作的罰款。

當我們有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) at 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: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更多

+0

雖然我們已經使用ReentrantLock的,因爲它是在你的中保類使用。我們仍面臨同樣的問題。你可以請建議任何其他選項。 – Muthu

回答

0

聽起來好像您正在使用自定義介體「pil.pershing.transform.esb。 mediator.TransformNewXmlMediator」。也許這一個不是線程安全的:併發消費者呼籲TransformNewXmlMediator的同一個實例「調解」,確認如果你的代碼是可重入