Sunday, 15 September 2019

What is the difference between JMS IBM MQ and Native IBM MQ?

Traffic Parrot allows mocking and service virtualization of IBM MQ via both Java JMS and IBM MQ Java APIs. What does that mean?

First, let's start with what is an API. In simple terms, an API is a specification that describes how two or more systems will communicate with each other. For example, how your application will communicate with a third party service. 

If you are using IBM MQ as your message broker, your application will use an API to put and read messages to and from the IBM MQ queues.

There are several ways your application can put and read messages to and from IBM MQ queues.

For example, if your application is written in Java, it can use the IBM MQ classes for JMS or the IBM MQ classes for Java. So, you would be using either the JMS API or the (Native) MQ Java API.

Both methods are APIs to the same Java interface to the MQI and share the majority of features. So, it should not matter which API you use for mocking and service virtualization, as they should be compatible. You should be able to swap them around with no impact in many situations. Just remember, if you use some features that are only available in IBM MQ classes for JMS, then Traffic Parrot will not be able to support them if you use Traffic Parrot Native IBM MQ.

The recommended way of doing mocking and service virtualization of IBM MQ using Traffic Parrot would be to use the same API your application is using.

If your application is using IBM MQ classes for JMS, we advise you to use Traffic Parrot JMS IBM MQ. If your application is using the IBM MQ classes for Java, then we recommend you use Traffic Parrot Native IBM MQ. If your application is using both APIs, we recommend you use those both in Traffic Parrot as well.