在JMS中很容易发现连接是否丢失,是否发生异常。但是如何确定连接是否再次存在?场景:我使用JMS与我的服务器通信。现在我的连接中断(服务器已关闭),导致异常。到目前为止,一切都很好。如果服务器再次启动并重新建立连接,我怎么知道?我没有看到任何有助于提供此类信息的监听器。 最佳答案 啊……旧的异常处理/重新连接难题。有些传输提供商会自动为您重新连接您的应用程序,有些则让应用程序驱动重新连接。通常,重新连接会对应用程序隐藏异常。不利的一面是,如果所有远程消息传递节点都关闭,您不希望应用程序永远挂起,因此最终,您必须包含一些重新连接逻辑。
我试过用谷歌搜索,但没有成功。如果我正在使用AUTO_ACKNOWLEDGE,并且我有一个用Java编写的消费者客户端,那么消息何时被确认?我正在使用包含onMessage方法的MessageListener。确认是在onMessage之前还是在onMessage完成之后或在其他某个时间点发送回服务器?提前感谢任何人能够提供的任何帮助! 最佳答案 请查看one(用作文章的WaybackMachine链接自2020年起下线)使用AUTO_ACKNOWLEDGE模式,确认总是在onMessage()处理程序返回后隐式发生的最后一件事。接
我有一个网络应用程序,当用户提交请求时,我们将JMS消息发送到远程服务,然后等待回复。(还有异步请求,我们为消息重放等设置了各种细节,所以我们更愿意坚持使用JMS而不是HTTP)在HowshouldIimplementrequestresponsewithJMS?,ActiveMQ似乎不鼓励每个请求使用临时队列或在JMSCorrelationID上使用选择器的临时消费者的想法,因为启动它们会产生开销。但是,如果我使用池消费者进行回复,我如何从回复消费者分派(dispatch)回原始请求线程?我当然可以编写自己的线程安全回调注册/调度,但我讨厌编写我怀疑已经由比我更了解的人编写的代码。那
JMSsession的目的是什么?为什么单独的连接不足以在发送方和接收方之间交换JMS消息? 最佳答案 我也有同样的问题,这就是我来到这里的原因。在这种情况下,引用文档并不是很有帮助,因为我确信OP的问题不是关于如何使用session,或者它们做什么,而是它们为什么真的存在,为什么不将它们的功能与Connection结合起来。恕我直言,这是一个元问题。简单地说,session本质上是线程对连接的View,这是JMS规范在访问线程和session时必须说的。Therearenorestrictionsonthenumberofthre
我正在开发一个将大量使用JBossMessaging(JMS)的项目。我的任务是为其他开发人员围绕消息构建一个易于使用的包装器,并且正在考虑使用JMS的消息选择器来提供一种过滤技术,以将不必要的消息发送降至最低。我很好奇是否有人在性能方面有这样做的经验?我担心JMS提供者可能会陷入消息选择器的困境,从而有效地破坏了整个目的。但是,这比为每种消息类型创建一长串主题/队列要好得多。毫无疑问,我最终会最终使用这两者的某种组合,但我担心无论我更倾向于哪种方式对性能的影响。 最佳答案 正如Martin提到的,默认情况下,大多数JMS实现将在客
JMS相对于Web服务的最大优势是什么?反之亦然?(Web服务是否臃肿?JMS总体上是否更适合提供接口(interface)?) 最佳答案 在埃里克森更正后编辑:JMS要求您有一个JMS提供者、一个实现MessageListener接口(interface)以处理消息的Java类,以及一个知道如何连接到JMS队列的客户端。JMS意味着异步处理——客户端发送消息并且不一定等待响应。JMS可用于点对点队列方式或发布/订阅。“服务”是一个流动的术语。我将服务视为存在于网络上并宣传契约(Contract)的组件:“如果您向我发送X,我将为您
在用Java设计分布式应用程序时,似乎有一些技术可以解决相同类型的问题。我已经简要了解了JavaRemoteMethodInvocation和JavaMessageService,但很难真正看出区别。JavaRMI似乎比JMS耦合更紧密,因为JMS使用异步通信,但除此之外我看不出有什么大的不同。它们之间有什么区别?其中一个比另一个新吗?哪一种在企业中更常见/流行?他们之间有什么优势?什么时候比另一个更受青睐?它们在实现难度上是否有很大不同?我也认为WebServices和CORBA解决了同样的问题。 最佳答案 您已经了解方法调用。如
我需要导入javax.jms.*类。什么是包含到Maven项目中的正确依赖项?我正在尝试javax.jms:jms:1.1,但没有运气(它是pom,而不是jar)。ps。到目前为止,我发现的唯一解决方法是:javax:javaee-api:6.0(来自MavenCentral)。 最佳答案 在ActiveMQ以及QpidJMS等其他一些项目中,我们从ApacheGeronimoJAR中提取JMS规范类,1.1API在此依赖项中可用:org.apache.geronimo.specsgeronimo-jms_1.1_spec1.1.1
关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我正在寻找JMS是一个很好的解决方案的问题的(简单)示例,以及JMS在这些情况下是一个很好的解决方案的原因。过去,当B不一定能立即处理消息时,我只是将数据库用作将消息从A传递到B的一种方式。此类系统的一个假设示例是,所有新注册的用户都应在注册后24小时内收到一封欢迎电子邮件。为了论证起见,假设数据库不记录每个用户注册的时间,而是将每个新用户的引用(外键)存储在pending_email表中。电子邮件发件
我正在研究使用Spring的JMS,并希望在我的MVCwebapp启动时创建特定队列的一些并发消费者。我在SO(https://stackoverflow.com/a/6861144)的其他地方看到了以下XML配置:我在Java中使用Spring配置,而不是XML。有人可以帮忙看看Spring注解的语法吗?我现有的JmsConfiguration.java看起来像:@Configuration@ComponentScan(basePackages="net.domain.orders")publicclassJmsConfiguration{@BeanpublicJmsTemplate