This is with regard to the query on Sonic MQ Adapter.
I would like to know if it is possible for Sonic MQ adapter to directly communicate with IBM MQ as both are JMS based.
What I am trying to achieve is passing a message from Progress 4GL to IBM MQ using Sonic MQ adapter.
Thanks and Regards,
This is not possible -- and is infact a limitation in the javax.jms.* specification. (See, for example, Section 1.2.4 "What JMS Does Not Include", which notes that JMS is an API, not a wire protocol.) As such, you can't have one set of client libraries (like the ones in the SonicMQ Adapter) that talk to a different provider (like IBM WebSphereMQ).
JMS is a standard API that allows a Java program to use standard interface methods and semantics against different providers, but the creation of the objects used require code to instantiate specific Objects -- in in the OpenEdge case, these are the Sonic classes. (In addition, the OpenEdge ABL wrapper procedures around JMS additionally use SonicMQ provider-specific features like XMLMessage and MultiPartMessage.
NOTE: While the explicit answer above is correct (i.e. the SonicMQ Adapter cannot communicate to another JMS Provider), there have been changes in OpenEdge to support the use case of ABL communicating with IBM WebSphereMQ....
Starting in OpenEdge 11.5.1, Progress OpenEdge provides a generic Java Message Service (JMS) adapter for messaging. This generic JMS adapter can operate with any JMS-compliant vendor, including SonicMQ, IBM WebSphereMQ, and ActiveMQ.
You can get more information in the product documentation, or look at the whitepaper on Community at
Further updates happened in 11.6.1 to support all modes: Client Connect, Broker Connect, and Server Connect.
Progress ABL may yet be able to interact with a generic JMS provider. Here is a KB describing the future possibility of this: