The size is limited by memory only. The server uses about 2-3x times the byte size of the message in memory for handling it. For a 32 bit JVM on a 4GB box, you're probably going to hit a limit of about 1 GB for your message, probably less though.
i hope limit can go beyond the memory if the queue/topic is a durable one... becoz....messages are stored in a persisternce DB, pls. correct if i am wrong