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,
>> I would like to know if it is possible for Sonic MQ adapter to directly communicate with IBM MQ as both are JMS based.?
ANSWER: 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: community.progress.com/.../1986
This may not have the solution but gives you some insight for your approach. I am familiar with Sonic and OpenEdge and have no experience on IBM MQ series.
I doubt Sonic MQ client libraries can connect to IBM MQ series. The major issue would be the connection method and the libraries to IBM MQ broker acceptors. The message format is standard which is JMS which comes after connecting to the MQ broker.
Here is one of the connection method from ABL to Sonic:
/* Start up the session to the SonicMQ broker */
RUN jms/ptpsession.p PERSISTENT SET sessionH ("-H hostname -S 1234 -DirectConnect").
Note: The above connection does not require an MQ adapter and has many advantages using this method.
Sonic supports several clients to connect to MQ broker via java, Progress ABL and so on.
Similarly, IBM MQ also supports a client and it is listed below:
If the client is JAVA instead of ABL, you just include IBM MQ series jars and use API to connect to broker and send a message. If it needs to be done on ABL, one might have to do custom connection method to broker.
Hope this helps. If you find a solution for your approach, please share with the community.
For the record, JMS is a standard API, but not a standard communication protocol. As such, a JMS client from one vendor cannot directly communicate with a broker/server from another vendor.
As such, the SonicMQ adapter in OpenEdge definitely cannot communicate with an IBM WebSphere MQ broker.
SonicESB offers a WebSphereMQ gateway, and you could use that to go between OE/Sonic and WebSphereMQ.
Progress ABL may yet be able to interact with a generic JMS provider. Here is a KB describing the future possibility of this:
This is huge for us. Thanks for adding the note.
Even if a customer continues to use Sonic MQ, the fact that we have other options helps during contract negotiations every three years. ;) Otherwise OE customers are basically locked-in with "Aurea".
I tried this out with Active MQ and was very pleased. I think Active MQ looks like a fairly robust product and it has options for using a real RDBMS for the message storage. It may not match Sonic MQ on performance but it has a very large number of features, is actively enhanced, and the price is right.
PS. One thing I wanted to point out about my testing is that I initially had a bit of trouble with "client-connect" mode. The generic adapter was not initially going to be supported in that mode, but I think that has been changed now. The reasoning for not supporting it (as I recall) was that the generic adapter doesn't supply all of the features as Sonic MQ does in "client-connect" mode (eg. local client persisntence) and therefore that mode wasn't needed.
However for us "client-connect" is a much better choice than "broker-connect", and it is for reasons that go well beyond the feature set of the JMS client. (IE. It is less complex, and more reliable because a failure in the adapter for one ABL process doesn't necessarily impact anyone else.) Of course the trade-off is that there are going to be tons of not-so-small java processes (aka "symbionts") which are launched whenever an ABL program needs to do messaging. (Only about half of our _progres clients do JMS messaging)
>>> One thing I wanted to point out about my testing is that I initially had a bit of trouble with "client-connect" mode. >>> ... for us "client-connect" is a much better choice....
OpenEdge 11.6.1 service pack just shipped (7-March-2016) with Client-Connect.
Release 11.6.1 of OpenEdge Messaging now supports Client Connect, Broker Connect, and Server Connect modes for the generic JMS adapter. (Note: For more information on generic JMS adapter, see the OpenEdge Development: Messaging and ESB guide.