无法使用JMS从MQ 7队列中提取的应用程序属性

时间:2012-12-19 19:16:22

标签: ibm-mq websphere-6.1

我们正在使用J2EE JMS API来浏览队列 (J2EE

} 2/2/2010 jar C:\Program Files\IBM\SDP70\runtimes\base_v61\lib
Javax.jms.QueueBrowser queueBrowser = null;
queueBrowser =connection.getQueueSession().createBrowser(connection.getQueue());
Enumeration messageEnum = queueBrowser.getEnumeration();
int nMessages = 0;
while (messageEnum.hasMoreElements()){
   Object obj = messageEnum.nextElement();
   Message message = (Message) obj;
   messages.add(message);
   nMessages++;
}

当我在RAD 7.5中尝试调试模式时(使用来自j2ee.jar的{​​{1}} 2/2/2010)), 我没有看到使用queueBrowser.getEnumeration();从消息中提取应用程序属性;

我正在使用Websphere C:\Program Files\IBM\SDP70\runtimes\base_v61\lib

请你解释一下我做错了什么?


只是详细说明,虽然JMS系统属性显示在新创建的MQ 7队列中,但我们没有在消息中看到JMS应用程序属性。重新构建错误以理解

的步骤

工作场景

  1. 创建新的JMS消息
  2. 使用setStringProperty API调用在此JMS消息中设置应用程序属性(例如,应用程序属性ERROR_CODE = ccs,ERROR_MSG =“无法找到元数据”)
  3. 将消息删除到迁移的队列MQ 7(从MQ 6到MQ 7队列)
  4. 转到UI,通过JMS QueueBrowser浏览消息
  5. 能够看到所有应用程序属性
  6. 不工作情景

    1. 创建新的JMS消息
    2. 使用setStringProperty API调用在此JMS消息中设置应用程序属性(例如,应用程序属性ERROR_CODE = ccs,ERROR_MSG =“无法找到元数据”)
    3. 将消息删除到新创建的MQ 7队列
    4. 转到UI,通过JMS QueueBrowser浏览消息
    5. 虽然我们可以看到JMS系统属性(JMS_IBM *)
    6. 但无法查看所有应用程序属性

      我们从新创建的队列中获取了消息转储。我们在消息转储中看到了应用程序属性。但是当我们通过api提取消息时 枚举messageEnum = queueBrowser.getEnumeration();

      枚举列表消息,它不会在新创建的队列的所有消息中显示应用程序属性。但是,相同的API可以使用迁移队列的应用程序属性提取消息。

      我们正在使用Websphere Application Server v 6.1和独立MQ Server v7.0.1.6

      请你解释一下我做错了什么?

1 个答案:

答案 0 :(得分:0)

我们使用LIKE命令使用v6到v7迁移队列的队列模板创建新的MQ V7队列。在直接创建V7队列时看起来像某些属性,这会阻止我们不显示应用程序属性。使用LIKE命令创建像v6到v7迁移队列之一的队列后,一切正常。

感谢Rob和Shashi的回复。