-
Point to point tests were performed as pairs where a pair consists of 1 producer and 1 consumer, communicating over 1 dedicated queue.
-
Publish/subscribe tests were performed as 1-to-n tests over a single topic where n is the number of subscribers.
-
JMS Session modes used: non-transacted/auto-ack, non-transacted/client-ack (ack after each 10 messages), transacted (commit after each 10 messages)
-
1 KB BytesMessage were used for all tests.
For persistent messages the tests were performed with disk cache disabled and disk sync enabled (most reliable option) and also with disk cache enabled and disk sync disabled (less reliable).
Configuration for disk cache disabled and disk sync enabled:
-
disk cache disabled with: hdparm -W 0 /dev/sda3
-
transaction log disk sync enabled with: force-sync="true"
-
thread pool "jms.connection", max-threads="1"
-
thread pool "jms.session", max-threads="100"
-
Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"
Configuration for disk cache enabled and disk sync disabled:
-
disk cache enabled with: hdparm -W 1 /dev/sda3
-
transaction log disk sync disabled with: force-sync="false"
-
thread pool "jms.connection", max-threads="1"
-
thread pool "jms.session", max-threads="100"
-
Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"
Configuration for tests with non-persistent messages:
-
thread pool "jms.connection", max-threads="1"
-
thread pool "jms.session", max-threads="1"
-
Network NIO Swiftlet: number-selector-tasks="1" use-direct-buffers="true"
Duplicate message detection were disabled for all queues, related queue controllers and the JMS client.