activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kevinle92618 <kevinle92...@yahoo.com>
Subject Re: Large File Transfer
Date Wed, 09 Jun 2010 22:28:58 GMT

Thanks Lou.  I was afraid of this.  If I understand you correctly, ActiveMQ
does NOT support resume transfer.  However, you were able to get around that
problem by implementing the snippet codes you mentioned in your previous
post right?  Do you mind posting the codes for the TransferStatus class as
well.  Many thanks.


Lou Parisi wrote:
> 
> 
> kevinle92618 wrote:
>> 
>> I don't have answers to your questions.  I'm interested in knowing if
>> ActiveMQ has the "resume" transfer capability for large file.  Please
>> reply if you have the answer.  Thanks.
>> 
> 
> It has been a while since I worked on this but I did get the "resume"
> working.  As I recall, I kept track of the number of bytes transferred and
> if there was a failure I just had to resume and read past that many bytes
> and restart transfer.  Here is a snippet from some sample code I created
> for testing.
> 
> 
>    private static void startTransfer() throws Exception {
>       RandomAccessFile outFile = null;
>       InputStream in = null;            
>       byte[] buf = new byte[bufSize];
>       int len = 0;     
>       URLConnection conn = null;
>       
>       // len == -1 when end of InputStream is read
>       while (len != -1) {
>          try {                  
>             conn = url.openConnection();       
>             conn.setConnectTimeout(connectionTimeout);
>             in = getInputStream(conn);         
>             in.skip(transferStatus.getBytesDownloaded());
>             
>             int count = 0;
>             System.out.println("downloading");
>             transferStatus.setStatus(TransferStatus.DOWNLOADING);
>             outFile = new RandomAccessFile("build/outfile", "rw");
>             outFile.seek(transferStatus.getBytesDownloaded());
>             while ((len = in.read(buf)) > 0) {
>                outFile.write(buf, 0, len);
>                transferStatus.incrementBytesDownloaded(len);
>                updateElapsedTime();
>             }
>          } catch (Exception e) {
>             System.out.println("Exception transfering data: " +
> e.getMessage());
>          } finally {
>             if ( in != null ) {
>                in.close();
>             }
>             if ( outFile != null ) {
>                outFile.close();
>             }
>             conn = null;
>          }
>       }
>       System.out.println("transfer complete");
>       transferStatus.setStatus(TransferStatus.COMPLETE);
>    }
> 
> 

-- 
View this message in context: http://old.nabble.com/Large-File-Transfer-tp23378044p28836565.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message