Hi,
I am trying to send a large file (2 gig) to a remote server using FTPClient.
And the transfer consistently stalls at around 1.7 gig and throws the below
exception subsequently. Interestingly, if I run five concurrent threads each
with its own instance of FTPClient, all of then hang when the cumulative
transfer gets to around 1.7 gig. Both my client and server are running on
Solaris 10 X64 (64 bit AMD Optron). Any pointers would be of great help.
org.osoa.sca.ServiceUnavailableException: java.net.SocketException: Broken
pipe
at
org.sca4j.binding.ftp.runtime.FtpTargetInterceptor.invoke(FtpTargetInterceptor.java:117)
at
org.sca4j.proxy.jdk.JDKInvocationHandler.invoke(JDKInvocationHandler.java:168)
at $Proxy30.receiveData(Unknown Source)
at
com.voca.bgc.gateway.router.FtpPassThroughRouter.receiveData(FtpPassThroughRouter.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.sca4j.pojo.component.InvokerInterceptor.invoke(InvokerInterceptor.java:162)
at
org.sca4j.pojo.component.InvokerInterceptor.invoke(InvokerInterceptor.java:130)
at
org.sca4j.binding.ftp.runtime.BindingFtpLet.onUpload(BindingFtpLet.java:91)
at
org.sca4j.ftp.server.handler.StorRequestHandler.transfer(StorRequestHandler.java:169)
at
org.sca4j.ftp.server.handler.StorRequestHandler.service(StorRequestHandler.java:107)
at
org.sca4j.ftp.server.host.FtpHandler.messageReceived(FtpHandler.java:99)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:722)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
at
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:392)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:228)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:48)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:802)
at
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:59)
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
at
org.sca4j.ftp.server.host.SCA4JExecutorService$1.execute(SCA4JExecutorService.java:47)
at
org.sca4j.host.work.DefaultPausableWork.run(DefaultPausableWork.java:103)
at
org.sca4j.threadpool.ThreadPoolWorkScheduler$DecoratingWork.run(ThreadPoolWorkScheduler.java:112)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:78)
at
org.apache.commons.net.io.ToNetASCIIOutputStream.write(ToNetASCIIOutputStream.java:80)
at
org.apache.commons.net.io.ToNetASCIIOutputStream.write(ToNetASCIIOutputStream.java:116)
at
org.apache.commons.net.io.SocketOutputStream.write(SocketOutputStream.java:72)
at
org.sca4j.binding.ftp.runtime.FtpTargetInterceptor.storeFile(FtpTargetInterceptor.java:207)
at
org.sca4j.binding.ftp.runtime.FtpTargetInterceptor.transfer(FtpTargetInterceptor.java:164)
at
org.sca4j.binding.ftp.runtime.FtpTargetInterceptor.invoke(FtpTargetInterceptor.java:110)
Thanks
Meeraj