If you are using 2.1.1, a message this big will be sent in chunks anyway. (it all depends on the
min-large-message-size configured at the connectionFactory)
But if you just create a Bytemessage, you will first have to allocate the entire message in memory before sending it, while if you stream it.. it will just leave the source (The InputStream, on whatever media it is) directly without having to be allocated.
So, you have an extra step on the BytesMessage.