So we found an interesting bug in TomEE when clustering multiple instances. We use MDBs and Topics to keep caches loosely coherent in our cluster and reduce the number of trips to the database. If you run the same MDB on multiple TomEE instances listening on the same topic, you would expect that every TomEE instance gets a copy of a message sent to the topic.
Currently this isn't happening, the Topic will behave like a Queue: the message will only be sent to one of the instances. It looks like this stems from the way TomEE is generating clientIds for MDBs when it's not specified explicitly. JMS Requires all listeners on a topic have a unique client id. TomEE uses the MDB classname as the clientId, leading to a name collision. I'm unaware of a requirement in the spec that says what clientId to use on MDBs has to be the java classname but I've been wrong before. I plan on fixing this by having tomee prepend the connection id to the client id, or prepend a random UUID. cheers, -- Jonathan | exabr...@gmail.com Pessimists, see a jar as half empty. Optimists, in contrast, see it as half full. Engineers, of course, understand the glass is twice as big as it needs to be.