jjzjj

java - Apache Camel JMS - 异常没有通过请求/回复返回给调用者

我使用ApacheCamel和JMS创建了一个简单的请求/回复设置。一切正常-调用被分派(dispatch)到服务器端服务,结果返回到客户端。只有当服务器端出现异常时,这个异常才不会返回给调用者。异常出现在服务器上,客户端收到超时。我想在客户端接收异常。据我了解可用的文档,我想要的应该是默认行为。我还尝试使用onException子句或为回传设置另一条路线,但所有这些都无济于事。所以我的问题是我在设置中缺少什么来将异常返回给调用者?详细信息如下(代码已简化):用于通信的JMS队列部署在独立的JBoss中(7.1.1.FINAL)JNDI用于查找工厂以创建到队列的连接客户端当前是运行在J

java - 如何保证JMS的可靠传递

我认为很多(在我的例子中是Spring)使用JMS的应用程序可能会遵循此工作流:DatabaseA===>Producer===>JMSQueue===>Consumer===>DatabaseB那么可靠性就是一个问题。假设当DatabaseA中的数据记录应始终标记为delivered时,当包含数据记录的消息真正被消费并将数据保存在Database中时B。然后就是问题了:据我所知,目前JMS协议(protocol)没有定义任何函数将确认从consumer发送到producer,而只定义到MOM,因此实际的consumer-to-producer确认方法因JMS提供者而异。那么是否意味着

java - ActiveMQ : dead letter queue keeps my messages order

我使用ActiveMQ作为代理来传递消息。这些消息旨在写入数据库中。有时,数据库无法访问或已关闭。在这种情况下,我想回滚我的消息以便稍后重试此消息,并且我想继续阅读其他消息。这段代码工作正常,除了一点:回滚消息阻止我阅读其他代码:privateConnectiongetConnection()throwsJMSException{RedeliveryPolicyredeliveryPolicy=newRedeliveryPolicy();redeliveryPolicy.setMaximumRedeliveries(3);//willretry3timestodequeuerollba

java - 亚马逊 SQS : The same message is consumed by two current consumers

我有四个当前消费者在AmazonAWS上收听同一个队列。从队列中拉取消息时,有时会出现同一条消息被两个不同的消费者消费的情况。请看下面的日志:18:01:46,515[jmsContainer-2]DEBUG-从队列中收到消息:ID:3698a927-930b-4d6a-aeca-f6692252879218:02:12,825[jmsContainer-3]DEBUG-从队列中收到消息:ID:3698a927-930b-4d6a-aeca-f66922528792我有一个包含4个并发使用者的JMS容器设置。我将可见性超时设置为30秒。既然container2收到了消息,怎么conta

java - Apache Camel 中的窃听和多播有什么区别

wireTap和multicast在Camel中的默认行为似乎是相似的。那就是它们都有助于以不同的方式处理相同的消息。那么wireTap和multicast的主要区别是什么? 最佳答案 @Srikanth-Idon'tthinkyoucanachieveconcurrencybyusingwireTap这不是很正确。WireTap以及具有并行处理的多播将具有并发性。这是WireTap的主要目的。作为在主线程之外进行日志记录或审核的示例,不会因非功能性操作而减慢主线程。区别在于:WireTap是“单向fork”。消息到达与主线程并行的

java - 如何找到 horneq 队列长度

我正在使用Hornetq2.0,我不明白我怎么知道此刻队列中有多少消息。这是一个非常有用的功能,因此我可以在运行时知道我的消费者是否足够快地消费消息。我没有使用JMSapi,而是使用高度优化的核心API。获取队列中消息数量的正确(最快)方法是什么?我找到了2种方法,但不知道什么是正确的方法。publicintsize(){ClientSessionsession;try{session=sf.createSession(false,false,false);ClientRequestorrequestor=newClientRequestor(session,"hornetq.mana

java - WebSphere MQ 的独立 Java JMS 客户端

我可以只使用带有标准JMS的WebSphere的jar文件来将消息发送到WebSphereMQ服务器,还是我需要下载他们的WebSphereMQ客户端? 最佳答案 您可以仅将jar文件用于JMS和nativeJavaMQAPI,但问题是您是否真的想要这样做。完整的客户端安装包括源代码和对象形式的示例程序、实用程序、跟踪等。当您向IBM提交故障单时,他们可能会要求您提供您将使用这些工具收集的信息。如果您没有完整安装,您可能无法提供请求的诊断信息。因此,IBM支持完整的客户端安装。如果您只是想学习JMS并编写一个玩具应用程序,这可能没问

java - 使用 ActiveMQ、Camel 和 Spring 实现请求-回复模式

我正在尝试实现以下功能:逐行读取CSV文件,然后读取每一行:根据该行包含的值构建请求将请求发送到消息队列其他组件需要获取消息、处理请求并将响应发送到另一个消息队列(生产者已知,因此生产者可以获取响应)。我相信request-replypattern符合要求。我安装了ActiveMQ,下载了camel并尝试使用他们的jms项目。在配置组件、队列和测试连接(有效)之后,我试图弄清楚如何实际实现请求-回复?我没有找到任何好的examples我有一个路由生成器RouteBuilderpublicclassMyRouteBuilderextendsRouteBuilder{publicstati

java - jboss.jms 和 jboss.mq 有什么区别?

类org.jboss.jms.server.destination.QueueService和org.jboss.mq.server.jmx.Queue有什么区别? 最佳答案 org.jboss.jms.server.destination.QueueService是JBossMessaging的一部分,它是JBoss的新JMS实现,作为JBossAppServer版本5及更高版本(或JBossEAP4.3或更高版本)的一部分提供org.jboss.mq.server.jmx.Queue是JBossMQ的一部分,它是JBoss旧的(

java - 如何使用 RabbitMQ JMS 客户端从现有的 JMS 应用程序连接到 RabbitMQ?

我有一个通用的独立JMS应用程序,它与以下JMS提供程序WebSphere、HornetQ和ActiveMq一起工作。我将Context.INITIAL_CONTEXT_FACTORY和Context.PROVIDER_URL作为参数传递给我的应用程序,并通过执行类似这样的操作从它们中创建命名上下文PropertiesenvironmentParameters=newProperties();environmentParameters.put(Context.INITIAL_CONTEXT_FACTORY,property.context);environmentParameters.