Ясное дело, что MQ от IBM лучше по всем параметрам, как показано
здесь в статье IBM. Но зачем же мухлевать? В сравнение надёжности при отказе питания используется клиентское соединение. В IBM MQ есть встроенная поддержка транзакций, в ActiveMQ её нет. Как всякая порядочная java библиотека, ActiveMQ рассчитывает на исполнение в JavaEE контейнере (сервере приложений), который обеспечивает ту самую транзакцию. Понятно едало, что при использовании клиентского соединения без координатора транзакции ActiveMQ будет терять, или дублировать сообщения (аж 2% потеряли). Сравнили бы внутри сервера приложений, был бы совсем другой результат.
А по производительности ActiveMQ проигрывает всем, не только IBM.
В общем, ActiveMQ использовать можно, но надо обязательно внутри сервера приложений держать и брокер ActiveMQ, и приложение, которое к нему обращается, иначе - беда.
PS. Tomcat - это не сервер приложений, а WSO2 ESB такое же дерьмо, в котором ActiveMQ будет терять и дублировать сообщения. Но почему то многие покупаются на это дерьмо.