我一直在寻找关于如何从使用IBM Websphere MQ迁移到仅使用Weblogic 10.3.x服务器中的QueueManager的日子。这将节省IBM MQ的许可证成本。我最接近的是找到一个外部链接,该链接声明存在类似的IBM示例(从MQ迁移到标准jms库),但当我尝试关注链接时:http://www.developer.ibm.com/isv/tech/sampmq.html 它会导致死页:\
更具体地说,我对
感兴趣我们将队列消息转发到的数据库是Oracle 11 Standard(带有高级排队),如果这改变了什么,那么基本上我们正在寻找“切断中间人”,可以这么说。您的学习回复将受到高度赞赏!
答案 0 :(得分:0)
我已经完成了一个支持JBossMQ和MQSeries / WebSphere MQ的应用程序。
我需要的MQSeries特定类是
import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQConnectionFactory;
import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.mq.jms.MQTopicConnectionFactory;
这些足以创建javax.jms.QueueConnection/TopicConnection
。
对于WebSphere MQ,我直接连接。 至于JBossMQ,我使用JNDI查找工厂。
所以除此之外只有JMS。
因此,第一步是重写您的应用程序,以便仅初始化部分使用WebSphere MQ特定类(我上面列出的那些)
使用应用程序服务器提供的queue connection factory
的JNDI /目录查找替换剩余的MQ特定部分
从源中删除MQ系列特定部件。
这是一个简单的example,其中显示了如何发送消息。
答案 1 :(得分:0)
您似乎使用MQI的MQI api,手头没有替代品。除了实际重写MQ应用程序逻辑以使用JMS API之外别无他法。
一种好方法可能是首先使用相同的WebSphere MQ服务器迁移到JMS,因为它允许您以可靠的方式验证结果。
你要求更换哪些类说MQGetOptions。没有单一的1对1替换(甚至有些JMS无法轻易替换的MQI方面)。通过在JMS中设置会话和消息的参数,可以使用大多数MQPutOptions和其他选项。在尝试此切换之前,您确实需要了解JMS api。
然后,当你有jms使用WebSphere MQ时,你可以按照Beryllium的建议,但是将库交换到Weblogic,切换对com.ibm.mq.jms.MQConnectionFactory;
的任何引用,配置新参数并向任何可用的神祈祷 - 按下运行:)