We use it for message transfer, mostly for a queue of the messages. Sometimes, we also consider using the topic space solution. But it is mostly for transferring messages between two applications. The applications are located in a different country, so it is also used for communication of MQ to MQ.
What I like the most about IBM MQ is the
What could be improved is the high-availability. The way MQ works is that it separates the high-availability from the workload balance. The scalability should be easier. If something happens so that the messages are not available on each node, scalability is only possible for the workload balance. That's a big difference. And the application must be prepared to consume from each node so that it doesn't lose a message. Otherwise, you lose the ordering of the messages.
I've been using IBM MQ for more than five years. We're currently using version 8 and we are switching to version 9.
MQ is known for its stability.
The technical support depends on the kind of request you have. IBM is a big organization, and sometimes it takes time, while other times it's very quick. But what is great is the documentation and they even define some bugs. They have a willingness to describe these as an APAR (authorized program analysis report) on IBM pages and they're easy to find for the solution.
The installation is easy but the configuration could be complicated because you have to specify a lot of stuff, like queues. It could be a little bit complicated to configure if you have some specific scenarios. For a simple scenario it's easy, but when you have somewhat more complicated scenarios — for example, when you have a hybrid or you need to support some specific security requirements which you use to implement custom components — then it's not easy.
The time it takes to deploy depends on what type of clusters you need. For deployment for testing purposes, where you do not need any cluster, it can really be done in one day, maximum. It's not that difficult. But if you need to deploy a cluster, like a Veritas Cluster, and to prepare the workload balance, it can take days, with system testing etc. You have to combine a lot of other components.
I would recommend it. If you're looking for a traditional queuing system, IBM MQ is the right choice because of the stability and the performance. And from the support perspective, it's enough to have a really small team. It depends on the number of instances, of course. But MQ is not difficult to support. It's mostly to solve communication issues for applications and to determine what type of communication you prefer: the traditional MQ or via JMS, where you have to put it into the headers. But if you pass it, it is very stable after that and has very good performance.
What were other products on your shortlist?