![]() |
FFMQ is a full-java, light-weight, fast native JMS 1.1 implementation.
From the conception stage, emphasis was made on architecture and performance, achieving interesting results.
As a consequence, extra features were not a priority and may appear scarce comparing to other available implementations.
That does not mean they will never be implemented, but there is no need to rush and compromise the original implementation spirit.
FFMQ is released under the GNU LGPL license, in order to allow integration in all kind of software.
FFMQ internally follows the JMS 1.1 object model.
This is a main difference with most other implementations
that use their own proprietary model, providing JMS through wrappers.
Computing performance
Achieved CPU consumption is pretty low, even in high throughput/ high concurrency scenarios.
Persistence performance
Reliable persistence is achieved through an internal - per queue - synchronous block-file based I/O system, providing high performance figures
(at least for a java implementation, native APIs may achieve better results using a finer-grained synchronous implementation)
Anyway, you should never trust any written performance claim.
The best way to have an exact idea is to test it by yourself !
Please give it a try, if you have a JMS compliant application this should be pretty easy (See 'Quick Start' below).
The following optional JMS operations are not yet implemented :
Just unzip the server package somewhere and start the server using the ffmq-server.bat or ffmq-server.sh shell in the bin/ directory.
(If necessary you can change default listen ports and interfaces in the conf/ffmq-server.properties file)
On the client-side, you need the ffmq-core.jar in your classpath. (plus commons-logging and log4j if you don't already have them)
Here is the JNDI configuration to use :
If you find any bug or problem, you can send me an email to : ffmq@timewalker.net