Hi, yes... it is clear ;)!
I changed configuration of Heap and Perm progressively as you suggested like this: -server -Xms1024M -Xmx2048M -XX:PermSize=256M -XX:MaxPermSize=512M -Xss512M -XX:+HeapDumpOnOutOfMemoryError -verbose:gc -Xloggc:gc.log ... The number of rows processed has increased, unfortunately the result is the same OOM. With VisualVM, I have traced Threads and Memory and the biggest object found is org.apache.activemq.broker.region.Queue#1 Retained Size Memory 1.449.034.641 B I attached images of heap dump of import result for further information biggest-objects.png <http://camel.465427.n5.nabble.com/file/n5780047/biggest-objects.png> memory-threads.png <http://camel.465427.n5.nabble.com/file/n5780047/memory-threads.png> And then in log of gc, i found this "ActiveMQ Transport: tcp:///127.0.0.1:63664@61616" daemon prio=5 tid=330 RUNNABLE at java.lang.OutOfMemoryError.<init>(OutOfMemoryError.java:48) at org.apache.activemq.util.DataByteArrayOutputStream.ensureEnoughBuffer(DataByteArrayOutputStream.java:249) at org.apache.activemq.util.DataByteArrayOutputStream.writeBoolean(DataByteArrayOutputStream.java:140) at org.apache.activemq.openwire.v6.BaseDataStreamMarshaller.looseMarshalByteSequence(BaseDataStreamMarshaller.java:628) Local Variable: org.apache.activemq.util.ByteSequence#52 at org.apache.activemq.openwire.v6.MessageMarshaller.looseMarshal(MessageMarshaller.java:296) at org.apache.activemq.openwire.v6.ActiveMQMessageMarshaller.looseMarshal(ActiveMQMessageMarshaller.java:111) at org.apache.activemq.openwire.v6.ActiveMQObjectMessageMarshaller.looseMarshal(ActiveMQObjectMessageMarshaller.java:111) Local Variable: org.apache.activemq.util.DataByteArrayOutputStream#2 at org.apache.activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:155) Local Variable: org.apache.activemq.openwire.v6.ActiveMQObjectMessageMarshaller#1 Local Variable: org.apache.activemq.openwire.OpenWireFormat#2 at org.apache.activemq.leveldb.DelayableUOW.create_message_record$1(DBManager.scala:299) at org.apache.activemq.leveldb.DelayableUOW.enqueue(DBManager.scala:311) Local Variable: org.apache.activemq.command.MessageId#42 at org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.doAdd(LevelDBStore.scala:773) Local Variable: java.util.concurrent.atomic.AtomicLong#133 Local Variable: java.lang.Long#47 at org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore$$anonfun$asyncAddQueueMessage$1.apply(LevelDBStore.scala:785) at org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore$$anonfun$asyncAddQueueMessage$1.apply(LevelDBStore.scala:784) at org.apache.activemq.leveldb.LevelDBStore.withUow(LevelDBStore.scala:735) Local Variable: org.apache.activemq.leveldb.DelayableUOW#1 Local Variable: org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore$$anonfun$asyncAddQueueMessage$1#1 Local Variable: org.apache.activemq.store.leveldb.LevelDBPersistenceAdapter#1 at org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore.asyncAddQueueMessage(LevelDBStore.scala:784) Local Variable: org.apache.activemq.leveldb.LevelDBStore$LevelDBMessageStore#1 at org.apache.activemq.broker.region.Queue.doMessageSend(Queue.java:829) at org.apache.activemq.broker.region.Queue.send(Queue.java:723) Local Variable: org.apache.activemq.broker.region.Queue#1 Local Variable: org.apache.activemq.state.ProducerState#2 Local Variable: org.apache.activemq.command.ProducerInfo#3 at org.apache.activemq.broker.region.DestinationFilter.send(DestinationFilter.java:132) Local Variable: org.apache.activemq.security.AuthorizationDestinationFilter#1 at org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:419) Local Variable: org.apache.activemq.broker.jmx.ManagedQueueRegion#1 at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:468) at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:297) Local Variable: org.apache.activemq.broker.jmx.ManagedRegionBroker#1 at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:152) Local Variable: org.apache.activemq.advisory.AdvisoryBroker#1 at org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:96) Local Variable: org.apache.activemq.command.ActiveMQQueue#27 Local Variable: org.apache.activemq.broker.CompositeDestinationBroker#1 at org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:293) Local Variable: org.apache.activemq.broker.ConnectionContext#3 Local Variable: org.apache.activemq.broker.TransactionBroker#1 at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:152) Local Variable: org.apache.activemq.security.JaasAuthenticationBroker#1 at org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:152) at org.apache.activemq.security.AuthorizationBroker.send(AuthorizationBroker.java:223) Local Variable: org.apache.activemq.security.JaasAuthenticationBroker$JaasSecurityContext#2 Local Variable: org.apache.activemq.security.AuthorizationBroker#1 at org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:157) Local Variable: org.apache.activemq.broker.BrokerService$5#1 at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:542) Local Variable: org.apache.activemq.broker.ProducerBrokerExchange#2 Local Variable: org.apache.activemq.command.ProducerId#39 at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:334) Local Variable: org.apache.activemq.broker.jmx.ManagedTransportConnection#2 at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:188) Local Variable: org.apache.activemq.broker.TransportConnection$1#2 at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) Local Variable: org.apache.activemq.transport.MutexTransport#4 at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) Local Variable: org.apache.activemq.transport.WireFormatNegotiator#4 at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:300) Local Variable: org.apache.activemq.transport.InactivityMonitor#4 at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214) Local Variable: org.apache.activemq.command.ActiveMQObjectMessage#27 at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196) Local Variable: org.apache.activemq.transport.tcp.TcpTransport#4 at java.lang.Thread.run(Thread.java:745) How can I improve the Store and forward? Thanks a log again for your support. Greetings Michele -- View this message in context: http://camel.465427.n5.nabble.com/Best-Strategy-to-process-a-large-number-of-rows-in-File-tp5779856p5780047.html Sent from the Camel - Users mailing list archive at Nabble.com.