将IBM MQ迁移到javax.jms.*实现-MQOPEN如何转换为jms API?

将IBM MQ迁移到javax.jms.*实现-MQOPEN如何转换为jms API?,java,jms,ibm-mq,Java,Jms,Ibm Mq,在使用mq和JMS api时,如何获得与ibm专有mq api的openOptions相同的效果 jmsapi中甚至有openOptions的概念吗?如果是,API类/方法的等效性是什么 这个简单的示例演示了如何发送消息(使用JBoss MQ): 因此,在不同的阶段/级别上有不同的选项: 通常需要为JNDI查找提供一些属性(以获取InitialContext) 您必须使用JNDI按名称查找工厂和队列 创建队列会话时有一些设置:Transactived,acknowledge 在QueueSes

在使用mq和JMS api时,如何获得与ibm专有mq api的openOptions相同的效果

jmsapi中甚至有openOptions的概念吗?如果是,API类/方法的等效性是什么


这个简单的示例演示了如何发送
消息(使用JBoss MQ):

因此,在不同的阶段/级别上有不同的选项:

  • 通常需要为JNDI查找提供一些属性(以获取
    InitialContext
  • 您必须使用JNDI按名称查找工厂和队列
  • 创建
    队列会话时有一些设置:Transactived,acknowledge
  • QueueSession
    实例上调用
    createSender
    createReceiver
    createBrowser
    时,会指定用法

    • 你在比较苹果和桔子。是的,两者都是水果,但它们是完全不同的水果。两者之间没有直接的比较

      1) 带有“Transact”和“CreateSsender”的JMS会话基本上是带有同步点的开放输出。 i、 e

      2) 带有“createReceiver”(非事务)的JMS会话基本上是一个开放输入。 i、 e


      请发布您的MQ代码。很难确定您实际使用的选项。没有代码。这是关于标准的一般性问题。我一定不太清楚。嗯,我的问题一定不清楚。我的问题更简单:“当使用mq和jms api时,如何获得与ibm专有mq api的openOptions相同的效果?”好吧,很酷。谢谢你的信息。
          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);
      
      // 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;
      
      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;