Hi Dushan,

On 13 March 2013 08:04, Nuwan Dias <[email protected]> wrote:

> Hi Dushan,
>
> Can we use Binary relay when dealing with smooks? Doesn't it need to
> engage a proper builder to build the message?
>
> Thanks,
> NuwanD.
>
>
> On Tue, Mar 12, 2013 at 11:44 PM, Dushan Abeyruwan <[email protected]>wrote:
>
>> Hi
>>   Please post the heap memory which you are using for this testing, did
>> you enable binary relay and formatters, you defentely could avoid such
>> situations if use binary relay and formatters when processing large files.
>>
>
I am using default memory allocation. The input message is a XML message,
hence I am using default application/xml builder.

<messageBuilder contentType="application/xml"

class="org.apache.axis2.builder.ApplicationXMLBuilder"/>

The input message size is around 9GB. So if the passthru transport going to
build the message this will always fail.

at
org.apache.synapse.transport.passthru.util.RelayUtils.buildMessage(RelayUtils.java:96)

This same scenario works in ESB 4.5.1.

Also similar big message of text/plain content type trasforms without the
mentioned problem in ESB 4.6.0. So isn't there a way to stop building the
message for application/xml content type as well.


Thanks,
Lakmali

>
>> cheers
>> Dushan
>>
>>
>> On Tue, Mar 12, 2013 at 11:39 PM, Lakmali Baminiwatta 
>> <[email protected]>wrote:
>>
>>> 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
>>> *
>>> *
>>>
>>
>>
>>
>> --
>> Dushan Abeyruwan
>> *Senior Software Engineer*
>> *Integration Technologies Team*
>> *Member of Integration MC*
>> *WSO2 Inc. http://wso2.com/*
>> *Mobile:(+94)714408632*
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Nuwan Dias
>



-- 
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