Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何找出JMS主题的所有订户都已回复?_Java_Jms_Messaging - Fatal编程技术网

Java 如何找出JMS主题的所有订户都已回复?

Java 如何找出JMS主题的所有订户都已回复?,java,jms,messaging,Java,Jms,Messaging,使用HornetQ(在JBossAS6.0中),我想设置一个JMS主题,多个客户端可以订阅该主题 生产者定期向该主题发送一条消息,其中包含对目标的回复,所有订阅者都应回复 我遇到的问题是,我不完全确定如何检查所有订阅者是否都已回复 一种解决方案是,每个订阅服务器在订阅后首先向主题发送一条消息,其中包含其详细信息(可能是一些GUID)。制作人会记住这些详细信息,并在以后检查是否所有订阅的客户端都已回复 然而,我宁愿使用已经存在的东西,而不是自己发明轮子。这似乎是一个标准问题,但我找不到任何现有的解

使用HornetQ(在JBossAS6.0中),我想设置一个JMS主题,多个客户端可以订阅该主题

生产者定期向该主题发送一条消息,其中包含对目标的回复,所有订阅者都应回复

我遇到的问题是,我不完全确定如何检查所有订阅者是否都已回复

一种解决方案是,每个订阅服务器在订阅后首先向主题发送一条消息,其中包含其详细信息(可能是一些GUID)。制作人会记住这些详细信息,并在以后检查是否所有订阅的客户端都已回复


然而,我宁愿使用已经存在的东西,而不是自己发明轮子。这似乎是一个标准问题,但我找不到任何现有的解决方案。

JMS本身不支持这一点,它太简单了。如果您不介意将代码耦合到HornetQ,那么您可以使用其本机API来查找这些内容。不太理想,但它编写得很好,并且有可读的源代码,所以不会太难。

您可以使用持久订阅,然后查询订阅和消息。


请注意,使用持久订阅和持久消息将导致性能损失。您必须根据您的具体需求来衡量性能影响的严重程度。

是的,我想我可能会使用核心API来实现这一点。我们已经使用了一些特定于JBoss的API,但我希望尽量减少对它的进一步使用。