We need a JMS bridge for MSMQ, so that we can receive/send messages to MSMQ and have Java Message Driven Beans act on messages from MSMQ. How can this be done? I see that FioranoMQ have a JMS Implementation which bridges to MSMQ but it is quite expensive and is a complete JMS implementation. We already have Weblogic's JMS implementation. We have thought about bridging ourselves using Jintegra or JCom but it gets quite complicated. Any suggestions on how to do it ourselves or a bridge product would be very useful.
MSMQ-JMS bridges are available from some of the commercial JMS vendors, notably Fiorano and SpiritSoft. Now it seems you are not happy with the commercial terms of these solutions. Unfortunately it appears there is no freeware or open source implementation of such a bridge at this time. Still there some developments I would suggest looking at as these might lead to an acceptable solution to your problem:
- The Active JMS project: It's a freely available, non-proprietary, open source ActiveX JMS client API. With Active JMS it should be fairly straight-forward to develop a JMS-MSMQ bridge application using MS Visual Studio. Your bridge application interfaces to JMS (through the Active JMS wrapper) and to MSMQ (natively). This way your bridge application can receive JMS messages, process them, and re-send them through MSMQ. And vice versa: Receive messages from a MSMQ queue, process them, and re-publish them through Active JMS. In your case the Active JMS wrapper is configured to talk to the WebLgoc JMS provider.
- OpenAdaptor.org: Although a MSMQ adaptor is not part of the OpenAdaptor offering yet, you might want to check with the authors of OpenAdaptor to see whether such a connector is planned. You might even want to consider joining forces with the OpenAdaptor folks and contribute a MSMQ adaptor.
- www.xmlblaster.org: Similar story as with www.OpenAdaptor.org: An interesting, freely available intergration package. No MSMQ support as of yet, but its certainly worth speaking to the authors.
- If none of these projects can provide a solution for your problem, and you decide to develop your own bridge product, SOAP Web services might come to the rescue: Use Visual Studio .NET to develop a simple Web sevice providing access to the MSMQ messaging system. Now you can develop a SOAP Java client (using Axis SOAP, for example), which goes to the MSMQ service to read a message, and then calls the javax.jms API to send that message via a JMS Destination. Or vice versa: Receive a JMS message, then contact the MSMQ Web service to put that message into a MSMQ queue. This means your Java client is both a SOAP and a JMS application and the same time; it imports both sets of Java interfaces.