Hello,

We are using an ActiveMQ 5.5.1.fuse-70-097 broker deployed inside ServiceMix
3.6.0-fuse-00-89 to send large files from one endpoint to another. The FTP
upload URL is on the same server where the broker is and there shouldn't be
any kind of problems related to disk space, permissions, etc. The most
annoying thing is that most of the times the upload is successfully, so we
can't find a decent explanation.

This is the exception:
javax.jms.JMSException: IOException caught while copying.
        at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
        at
org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:177)
        at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1747)
        at
org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:231)
        at
org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:241)
        at
com.rs.sw.nec.necMasterDataImportService.processor.InitialisationRequestsProcessor.sendSnapshotFile(InitialisationRequestsProcessor.java:122)
        at
com.rs.sw.nec.necMasterDataImportService.processor.InitialisationRequestsProcessor.process(InitialisationRequestsProcessor.java:79)
        at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:59)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:314)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
        at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:274)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:111)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:61)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:104)
        at
org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:272)
        at 
org.apache.camel.processor.SendProcessor.process(SendProcessor.java:98)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:59)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:314)
        at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
        at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:274)
        at
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:139)
        at
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:106)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:80)
        at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
        at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
        at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:106)
        at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
        at
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:93)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
        at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325)
        at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050)
        at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.commons.net.io.CopyStreamException: IOException caught
while copying.
        at org.apache.commons.net.io.Util.copyStream(Util.java:127)
        at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:399)
        at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1388)
        at
org.apache.activemq.blob.FTPBlobUploadStrategy.uploadStream(FTPBlobUploadStrategy.java:61)
        at
org.apache.activemq.blob.FTPBlobUploadStrategy.uploadFile(FTPBlobUploadStrategy.java:41)
        at org.apache.activemq.blob.BlobUploader.upload(BlobUploader.java:51)
        at
org.apache.activemq.command.ActiveMQBlobMessage.onSend(ActiveMQBlobMessage.java:174)
        ... 72 more


After retrieving the IOException from CopyStreamException we found the
following message: Software caused connection abort: socket write error.
First we thought that it's an older, known bug of the commons-net library:
https://issues.apache.org/jira/browse/NET-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

We upgraded from commons-net 1.4.1 to commons-net 3.3 but the error
continues to come up on only one test environment. Any ideas?



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Socket-write-error-when-uploading-BlobMessage-tp4671132.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to