3 Replies Latest reply on Mar 3, 2011 6:07 AM by ataylor

    Hornetq behaviour for acknowledgement

    rahul_516

      Incase of durable subscription , Hornetq provides durability via persistence which is disk based .

      Given the fact that we have lots of messages coming into the system and we do client_ack for each of those messages how does hornetq search for those messages . Does this mean lots of seek on the disk . This might hit the performance badly if there are too many messages and there is certain delay in the ack. Is there a way to overcome this?

       

      If above is true , then , does , Hornetq provides a simple replay functionality , which is not based on acknowledgement ?

        • 1. Hornetq behaviour for acknowledgement
          ataylor

          HornetQ uses a journal for persistence which, apart from on startup, is write only. Messages are in memory so don't need to be searched for.

          • 2. Hornetq behaviour for acknowledgement
            rahul_516

            So incase of Hornetq server going down , i still get the message on the consumer side if ack was not sent. Does this mean , when hornetq again comes back , it reads all the information from the disk once and sends it back ?

             

            If Hornetq keeps all the data in the memory , then incase if there are lots of messages for which we havent sent any ACK , we might run into OOM issues? Or Does Hornetq keeps spilling it on the disk ?

            • 3. Hornetq behaviour for acknowledgement
              ataylor
              So incase of Hornetq server going down , i still get the message on the consumer side if ack was not sent. Does this mean , when hornetq again comes back , it reads all the information from the disk once and sends it back ?

              Im not sure what you actually mean here, if the server goes down and failover or reconnect are not configured then the client will disconnect. when the server comes back up the message will be placed back on the queue.

               

              If Hornetq keeps all the data in the memory , then incase if there are lots of messages for which we havent sent any ACK , we might run into OOM issues? Or Does Hornetq keeps spilling it on the disk ?

              HornetQ has a number of features to cope with this, paging, flow control etc. The user manual would be a good place to start.