首页 > 解决方案 > 有没有办法在 Nifi 的 PublishJMS 处理器中更改交付模式?

问题描述

我正在使用 Nifi PublishJMS 处理器向 IBM MQ 发送消息。消息在 MQ 中具有持久性 = 持久性。我想将其更改为非持久性。Nifi PublishJms 处理器中是否有一个属性来纠正这个问题?或者它是从 MQ 端完成的。我无权访问 MQ 服务器,我只能检查传递到队列的消息。

标签: jmsibm-mqapache-nifi

解决方案


在低级别,MQ 客户端应用程序可以指定以下持久性值:

  • MQPER_PERSISTENCE_AS_PARENT(使用上面这个主题的下一个主题的值)
  • MQPER_NOT_PERSISTENT(不言自明)
  • MQPER_PERSISTENT(不言自明)
  • MQPER_PERSISTENCE_AS_TOPIC_DEF(使用这个主题的值,一个主题的默认值是 ASPARENT 所以这就像MQPER_PERSISTENCE_AS_PARENT使用默认值一样)

如果未指定任何内容,MQPER_PERSISTENCE_AS_TOPIC_DEF则为默认值。

在 JMS API 中,您可以使用 URI 属性覆盖它,如下所示:

queue:///theQueueName?persistence=1


属性persistence和所有 URI 属性都记录在 IBM MQ v8 知识中心页面“在 JMS 应用程序中创建目标”中。

属性名称:持久性

  • -2- 在 send() 调用中指定,或者,如果在 send() 调用中未指定,则为消息生产者的默认持久性。
  • -1- 由 IBM MQ 队列或主题的 DefPersistence 属性指定。
  • 1- 非持久。
  • 2- 执着的。
  • 3- 等效于 IBM MQ JMS 管理工具中使用的 PERSISTENCE 属性的值 HIGH。有关此值的说明,请参阅JMS 持久消息

推荐阅读