迁移IBM MQ到的javax.jms *执行 - 如何MQOPEN转化为JMS API?(Migr

2019-10-18 07:44发布

如何使用MQ与JMS API,当你作为IBM专有的API MQ的openOptions同样的效果?

有没有连的JMS API在openOptions的概念? 如果是这样,什么是在API类/方法方面equivilent?

相关计算器的问题-迁移-从-IBM-MQ-到的javax-JMS-的WebLogic

Answer 1:

你是比较苹果和桔子。 是的,都是水果,但它们是完全不同的水果。 还有就是2之间没有直接的比较。

1)“交易”和“createSender” A JMS会话基本上是一个开放的输出与同步点。 即

// Open Options
int oo = MQC.MQOO_OUTPUT + MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING;
// Put Msg Options
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQC.MQPMO_SYNCPOINT + MQC.MQPMO_FAIL_IF_QUIESCING;

2)用“createReceiver” A JMS会话(非事务处理)基本上是一个开放的输入。 即

int oo = MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING;
// Get Msg Options
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = MQC.MQGMO_FAIL_IF_QUIESCING;


Answer 2:

这个简单的例子示出了如何发送Message (使用JBoss MQ):

    final Properties initialContextProperties = new Properties();
    initialContextProperties.put("java.naming.factory.initial",
            "org.jnp.interfaces.NamingContextFactory");
    initialContextProperties.put("java.naming.provider.url",
            "jnp://localhost:1099");

    //

    final InitialContext ic = new InitialContext(initialContextProperties);

    final QueueConnectionFactory qcf = (QueueConnectionFactory) ic
            .lookup("XAConnectionFactory");

    final Queue queue = (Queue) ic.lookup("queue/A");

    //

    final QueueConnection queueConnection = qcf.createQueueConnection();

    final boolean transacted = false;
    final QueueSession queueSession = queueConnection.createQueueSession(
            transacted, Session.AUTO_ACKNOWLEDGE);

    final QueueSender queueSender = queueSession.createSender(queue);

    final TextMessage textMessage = queueSession.createTextMessage("Hello");
    queueSender.send(textMessage);

所以在不同的阶段/层次不同的选项:

  • 通常你需要有JNDI查找(以获得一些属性InitialContext )。
  • 你要查找的工厂和使用JNDI名字队列。
  • 还有,当你创建了一些设置QueueSession :交易,确认。
  • 当你调用指定的使用createSendercreateReceivercreateBrowserQueueSession实例。


文章来源: Migrating IBM MQ to javax.jms.* implementation - How does MQOPEN translate to JMS API?
标签: java jms ibm-mq