使用vfs时WSO2 ESB 4.6中的OutofMemory问题

时间:2014-01-22 05:11:15

标签: wso2 wso2esb

我们正在使用代理来读取分隔的文本文件,使用smooks进行转换,使用FTL进行转换,然后使用webservice端点来推送数据。

我们正在使用几个自定义类调解器。对于25000条记录的分隔文本文件,最初的交易速度很快。随着时间的推移,事务变慢并最终因OutOfMemory错误而停止。

在分析堆转储时,我们可以发现堆中保留了数百万个对象。

几乎没有数据如下:

org.apache.axiom.om.impl.llom.OMElementImpl 
Objects 821247 
ShallowSize 65699760 
RetainedSize 1729811848

org.apache.axiom.om.impl.llom.OMTextImpl 
Objects 11107880 
ShallowSize 799767360 
RetainedSize 802982200

我们使用'HttpCoreNIOListener/Sender''VFSTransportListener/Sender'作为传输。

nhttp.properties中的值如下:(其他值被注释)

  

http.socket.timeout = 120000

     

http.socket.buffer尺寸= 32768

     

snd_t_core = 20

     

snd_t_max = 100

     

snd_io_threads = 2

     

lst_t_core = 20

     

lst_t_max = 100

     

lst_io_threads = 2

passthru-http.properties中的值为:

  

http.socket.timeout = 120000

     

worker_pool_size_core = 400

     

worker_pool_size_max = 500

synapse.properties中的值为:

  

synapse.threads.max = 200

     

synapse.sal.endpoints.sesssion.timeout.default = 600000

     

statistics.clean.enable =真

     

synapse.observers = org.wso2.carbon.mediation.dependency.mgt.DependencyTracker

我们甚至尝试将25000条记录分成10个文件,每条2500条记录,并在vfs文件夹中逐一复制。还是一样的行为。

在每25000条记录之后,我们必须重新启动esb服务器。部署了大约50个类似的代理。但是一次只丢弃一个代理文件。

从文档中我们可以知道wso2 esb可以处理数百万个事务,但我们无法通过数千个事务。

请告诉我们我们的方法中可能存在的问题以及如何解决此内存问题?文件在链接http://sdrv.ms/1ap5uwK

中共享

0 个答案:

没有答案