Hi all,

When I was running a ESB proxy service which transforms a huge xml message
using smooks mediator, following exceptions were thrown.

java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.LinkedHashMap.init(LinkedHashMap.java:223)
    at java.util.HashMap.<init>(HashMap.java:188)
    at java.util.HashMap.<init>(HashMap.java:199)
    at java.util.LinkedHashMap.<init>(LinkedHashMap.java:172)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.addAttribute(OMElementImpl.java:588)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.addAttribute(OMElementImpl.java:632)
    at
org.apache.axiom.om.impl.builder.StAXBuilder.processAttributes(StAXBuilder.java:232)
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.populateOMElement(StAXOMBuilder.java:432)
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.createOMElement(StAXOMBuilder.java:461)
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.createNextOMElement(StAXOMBuilder.java:318)
    at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling(OMElementImpl.java:336)
    at
org.apache.axiom.om.impl.traverse.OMChildrenIterator.getNextNode(OMChildrenIterator.java:36)
    at
org.apache.axiom.om.impl.traverse.OMAbstractIterator.hasNext(OMAbstractIterator.java:58)
    at
org.apache.axiom.om.impl.traverse.OMFilterIterator.hasNext(OMFilterIterator.java:54)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.getFirstChildWithName(OMElementImpl.java:273)
    at
org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:96)
    at
org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:62)
    at
org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:114)
    at
org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:154)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at
org.apache.axis2.transport.base.AbstractTransportListener.handleIncomingMessage(AbstractTransportListener.java:328)
    at
org.apache.synapse.transport.vfs.VFSTransportListener.processFile(VFSTransportListener.java:565)
    at
org.apache.synapse.transport.vfs.VFSTransportListener.scanFileOrDirectory(VFSTransportListener.java:312)
    at
org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:158)
    at
org.apache.synapse.transport.vfs.VFSTransportListener.poll(VFSTransportListener.java:107)
    at
org.apache.axis2.transport.base.AbstractPollingTransportListener$1$1.run(AbstractPollingTransportListener.java:67)
    at
org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)


Below given is my synapse sonfiguration and this worked in ESB 4.5.0.

<definitions xmlns="http://ws.apache.org/ns/synapse";>

    <localEntry key="smooks-key"
src="file:repository/samples/resources/smooks/smooks-config-802.xml"/>
    <proxy name="StockQuoteProxy" transports="vfs">
         <!--CHANGE-->
        <parameter
name="transport.vfs.FileURI">file:///home/lakmali/dev/test/smooks/in</parameter>
        <parameter
name="transport.vfs.ContentType">application/xml</parameter>
        <parameter name="transport.vfs.FileNamePattern">.*\.xml</parameter>
        <parameter name="transport.PollInterval">5</parameter>
        <!--CHANGE-->
        <parameter
name="transport.vfs.MoveAfterProcess">file:///home/lakmali/dev/test/smooks/original</parameter>
        <!--CHANGE-->
        <parameter
name="transport.vfs.MoveAfterFailure">file:///home/lakmali/dev/test/smooks/original</parameter>
        <parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
        <parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
        <target>
            <inSequence>
               <smooks config-key="smooks-key">
                    <input type="xml"/>
                    <output type="xml"/>
                </smooks>
           </inSequence>
        </target>
    </proxy>
</definitions>

Is any configuration needed to avoid this problem?

Thanks,
Lakmali
-- 
Lakmali Baminiwatta*
*
Software Engineer
WSO2, Inc.: http://wso2.com
lean.enterprise.middleware
mobile:  +94 71 2335936
*
*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to