Large Messages will not use any memory on the server, hence you won't have the large body used on the block counts.
The hearders and properties wiill be taken into account but not the file that's on the server.
BTW: Producer Flow control is a different thing. This is aboug blocking policy to avoid OMEs. (Instead of paging).
Thanks for the reply Clebert.
- What I am trying to achieve is the blocking policy of HornetQ. As per the documentation 220.127.116.11. Blocking producer window based flow control,
I am trying to recreate a scenario "When the address gets full, producers will block on the client side"
For reproducing this scenario I did the following reduced the <max-size-bytes>1048576</max-size-bytes> and then had a producer produce messages without a corresponding consumer.
I assumed that after sometime the address will get full and my producer would block.
But after running the experiment few times I couldnt reproduce the scenario, hence this post.
Any ideas would be helpful.
Address full is different from flow control
Flow control = avoiding exaustion on the channel.
Blocking = avoiding OME at the server for the messages that are being held in memory.
on that case, large messages are not stored in memory, hence only their header is counted on the blocking count (post edited this by Clebert)
Thanks for the clarification Clebert, that makes sense.
Can you define "large" ? Is there any config/documentation which defines the value.
large is defined by min-large-message on the connection-factory. Look at the large message chapter..
let me know if you have more questions.