with activemq we had disk database crashes once a month. activemq did nothing on crash - it still accepted messages and discarded them all.
activemq have poor tooling - there is no way to browse queue or send a message from console, web interface allows to browse queue but is very inconvinient(only limited subset of headers is displayed).
custom binary messaging format(openwire) is simply plain wrong - no interop with third party products, no traceability.
activemq is persistent MQ - this severely affects performance. our deployment was unable to reach even 300messages/second with a queue