【问题标题】:Websphere with JMS Queues and MQ Queues带有 JMS 队列和 MQ 队列的 Websphere
【发布时间】:2016-01-29 07:52:20
【问题描述】:

我是 IBM Websphere MQ 服务器的新手,使用它时遇到的问题很少。 我正在使用MQQueueConnectionFactory 向队列发送消息。这是我的代码。

MQQueueConnectionFactory connectionFactory = null;
QueueConnection queueConn = null;
QueueSession queueSession = null;
QueueSender queueSender = null;
TextMessage message = null;

try
{
    connectionFactory = new MQQueueConnectionFactory();
    connectionFactory.setHostName("192.16.34.45");
    connectionFactory.setPort(1415);
    connectionFactory.setTransportType(1);
    connectionFactory.setQueueManager("MQSLLXQ1");
    connectionFactory.setChannel("TO.MQSLLXQ1");

    queueConn = connectionFactory.createQueueConnection("username", "password");
    queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    queueSender = queueSession.createSender(queueSession.createQueue("TestQueue"));
    queueSender.setDeliveryMode(DeliveryMode.PERSISTENT);
    message = queueSession.createTextMessage("Test Message");
    queueSender.send(message);
    queueConn.close();

} catch (Exception je) {
    je.printStackTrace();
}

在带有 JMS 标头的 MQ 队列中可见的消息。

  <mcd><Msd>jms_text</Msd></mcd>
    <jms><Dst>queue:///TestQueue</Dst><Tms>1454047279356</Tms><Div>2</Div></jms>
   Test Message

1) 有没有办法避免这个 jms 标头,只获取 MQ Queue 中的有效负载?

2) 有没有办法同时同步 MQ 队列和 JMS 队列?

【问题讨论】:

    标签: ibm-mq mq


    【解决方案1】:

    JMS 是 API 规范,而不是线路级协议规范。所以不同的供应商有自己的方式来实现 JMS API 规范。 IBM MQ(又名 WebSphere MQ)使用 RFH2 标头来实现 JMS API。

    1) 如果您使用 JMS API 接收消息,则该标头可作为不同的消息属性提供给应用程序。可以使用message.getBody()(在 MQ v8 中)方法检索有效负载。根据消息的类型,即文本、字节等,您可以使用getText(), readBytes() 等方法来检索消息正文。

    如果您的接收应用程序使用 MQ API,则可以通过更改队列属性来去除消息头。

    2) 在 IBM MQ 中,一个 JMS 队列实际上指向一个 MQ 队列。

    【讨论】:

    • 我可以知道我应该更改哪些队列属性吗?
    • 队列的PROPCTL属性必须设置为NONE。
    【解决方案2】:

    如果您对使用 JMS 向传统 MQI 应用程序发送消息感兴趣,那么 JMS 队列的TARGCLIENT option。请注意,这意味着某些 JMS 属性将不会被传输。

    正如 Shashi 前面解释的,MQ JMS Queue 指向 MQ Queue;它还具有 MQ JMS 代码用于了解如何打开队列的属性、要使用的属性等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 2017-04-14
      • 2010-11-12
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多