【问题标题】:Weblogic JMS queue and differences between production, consumption, and insertionWeblogic JMS队列和生产、消费、插入的区别
【发布时间】:2020-12-19 19:20:28
【问题描述】:

我希望 Weblogic 队列接收消息,但我不想进一步处理该消息。我希望我发送到队列的消息在被消费之前保留在那里。

所以我认为我需要暂停生产和消费,但让插入运行,以便发送到该队列的每条消息都将保留在那里,并且我将能够读取在那里创建的每条消息。我说的对吗?

【问题讨论】:

  • 您希望消息“在被消费之前留在那里”是什么意思?他们要去哪里?
  • 它们可以被从该队列读取的人使用,也可以被重定向到其他队列。所以它不会再存在了,我会丢失那些消息,我想准确地看到它们。

标签: queue jms weblogic


【解决方案1】:

基于此主题的Weblogic documentation,您应该暂停消费。如果您暂停生产,则生产者将无法将消息发送到队列。正如文档所述:

当 JMS 目标“暂停生产”时,附加到该目标的新生产者和现有生产者无法为该目标生成新消息。尝试向暂停的目标发送消息的生产者会收到一个异常,指示该目标已暂停。

此外,如果您暂停插入,则任何进行中的消息也不会出现在队列中。同样,来自文档:

当 JMS 目标因“插入”而暂停时,由于正在进行的工作而插入的消息和生产者发送的新消息都将被阻止出现在目标上。 使用插入暂停来阻止所有消息出现在目标上。

也就是说,如果暂停消费,那么也将无法消费这些消息,尽管您应该能够使用 JMS 浏览器来检查它们。

【讨论】:

  • “飞行中”工作是什么意思?所以,如果我想向队列发送消息,但我不希望任何人让任何应用程序读取此消息,因为我想在 WL JMS 浏览器中检查某些内容并且我希望这些消息为我提供,我需要暂停生产,对吧?但是,这不会阻止任何“内部”消息,只会阻止来自生产者的消息。所以,如果我想停止来自生产者的所有消息,但作为一些内部进程,我只需要暂停 INSERTION,对吗?
  • 您也可以帮我解决这个问题吗?我想对 SAF 做同样的事情,即 SAF 接收消息但不转发任何地方。所以我需要暂停转发,对吗?谢谢docs.oracle.com/middleware/11119/wls/WLACH/taskhelp/saf_agents/…
  • 请参阅the documentation,了解有关“飞行中”消息的更多详细信息。如果您不希望任何应用程序消费消息(即为您留下消息),那么您希望暂停消费,而不是生产。如果您暂停生产,则生产者将无法发送新消息。
  • 您应该问一个关于 SAF 用例的问题,因为它与您原来的问题不同。
猜你喜欢
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 2012-01-28
相关资源
最近更新 更多