2 Replies Latest reply on Aug 31, 2010 10:26 AM by Gary Tully

    Can ActiveMQ provide any means to support transfer resume?

    thuy nguyen Newbie

      We need to send large files from a producer to consumer(s). If for some reason the whole file does not send successfully and we want to resume from the previous position. Is there any way to do it?

        • 1. Re: Can ActiveMQ provide any means to support transfer resume?
          Michel Van Hoof Newbie

          Well.. i've been working on something simular but the only way we got this to (more or less work) is handle that intelligence ourselves.


          First off:


          What size of files are we talking about ?

          Are you sending these as a whole or split them up ?



          We got files ranging from 6 Mb up to 8 Gb that need to be passed through the queueue.


          what we do is:


          We split each file into 1 Mb blocks and put this on the queue



          Then, when we reassemble the files on the Consumer side, when connection breaks, you can just get the last message you were processing or the next one after that  (the file on your consumer will be N * 1 Mb so you should know what part to consume) and continue from there. We are trying to achieve this through Both consumers ( when file needs to be sent only once) and QueueBrowser ( when the file needs to be send to many consumers)


          at this point, we are mainly struggeling with ActiveMQ stability and performance when putting for example 1000 * 6 Mb on a queue that needs to be consumed by for example 100 consumers. ActiveMQ and filetranser is obviously not on the Websphere MQ level yet

          • 2. Re: Can ActiveMQ provide any means to support transfer resume?
            Gary Tully Novice

            It is not supported at the moment, but it is possible to provide your own upload/download strategy (extend FTPBlobUploadStrategy) that could first attempt to resume. The apache mina FTPServer used by default does support that feature set.

            Please raise an enhancement request if it is something that you need or want to contribute a patch.