I have aways been posting about how great JBM2 is getting, how fast and how good it will be to support very high performance demands.
But today I want to talk about another aspect. What about small computers? Who knows, maybe you want to distribute messages to and from an ATM.
We have developed a way to page messages to disk, what will avoid the server from running out of memory by storing messages on disk when the memory is low.
There is probably nothing new with that, as JBM 1.4 and JBoss MQ already have it. (Well.. some products out there dont :-) )
The great news here is, this is really fast, and the deployment is really simple.. no RDBMS. We have developed a system where the producers will write directly to NIO files when the memory is low, and the server will start depaging those messages as soon as you have more memory available. (i.e. as soon as you consume some messages).
I have sent 500K messages to a server with only 64M on the JVM without any consumers, and it ran as fast as if they were being consumed. Later when the consumer connected, it started getting the messages as nothing special was happening.
JBM2 just buffered the messages on file protecting the server from running out of memory.
So if you have some hardware with low memory and a hard disk JBM2 still your best choice.