I'm using JBoss EAP 4.3 (which contains 4.2 AS and 1.4.0 JBM).
I have 2 clustered machines, identical apart from the ServerNode id.
The DB is running on a separate machine (MySQL), and the DefaultDS is configured
to point to a 'jbossdb' database.
The connection factory is JmsXA.
I have an application which, when it receives a call, puts 10000 messages onto a queue. Each message is then processed by an MDB.
Everything works fine ... but :
- When only one machine is running the messages are all processed in 54 seconds, and the MDB processing takes an average of 30 ms.
- When both machines are running the messages take 6 1/2 minutes to process and the average time is 60+ ms!
The distribution of messages between the systems seems fairly even - Java CPU time is roughly the same on both machines.
I have played with the 'prefetch' params, and all the message bean params I can find, but nothing I do seems to make a difference.
I have read the documentation and forums and can find nothing I haven't tried.
Could anybody point me towards other things to investigate please - the entire system is based on horizontal scalability via MDB's and is dead in the water if I can't get quicker throughput by adding more machines.