当前位置: 首页 > 知识库问答 >
问题:

带有sedaendpoint的Apache Camel消息确认

呼延高超
2023-03-14

我正在尝试编写一条路由,将消息转发到这样的sedaendpoint

from(jms:queue:testQueue)
.process(/** do something ** /)
.inOnly(seda:test?waitForTaskCompletion=Never)
.end();

还有另一个从seda终结点消耗的路由:

from(seda:test)
.process(/** do something **)
.end();

JMS连接工厂的JMS确认模式是CLIENT_ACKNOWLEDGE,我已经使用spring boot配置了该项目。根据配置,一旦第一个驼峰路由结束,它就应该提交事务并将确认发送给message broker。

但是,这种行为是消息确认只在第二条路由完成后发生。我可以在第一个路由中配置什么来立即确认消息?自动确认不是我可以使用的选项。

共有1个答案

柴赞
2023-03-14

你能试着插入一个窃听器来呼叫你的seda路线吗?

 类似资料:
  • 我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题

  • 我使用hikaricp作为我的数据库连接池。当我完成我的SQL语句时,我将关闭连接,在连接上调用关闭,我相信您应该将连接代理返回到池。然而,我看到以下警告(不是错误)消息,我不得不怀疑这是否是一个需要解决的问题,因为我没有正确清理我的连接资源。我不是使用资源尝试,而是使用尝试捕获最后(我在最后关闭连接

  • 因此,我们计划使用Avro在融合的Kafka生态系统上进行交流。我目前对Avro的理解是,每条消息都有自己的模式。如果是这样的话,我们需要模式注册表来解决版本更新吗? 我问,因为在每条消息中携带模式可以防止需要像模式注册表这样的东西来将消息ID映射到模式。还是我在这里错过了什么?

  • 在以下camel上下文中,我使用提供的配置了一个SEDAendpoint: 但是,发送到endpoint的消息不会被消耗。

  • 问题内容: 使用JAX-WS 2,我也看到了其他人也谈到过的一个问题。问题是,如果在处理程序内部接收到SOAP消息,并且该SOAP消息很大(无论是由于恰好具有很多内容的内联SOAP正文元素,还是由于MTOM附件),那么很容易获得OutOfMemoryError。 原因是对getMessage()的调用似乎引发了一系列事件,这些事件涉及读取线路上的整个SOAP消息,并创建一个代表线路上内容的对象。

  • 我的Sring引导应用程序监听Amazon SQS队列。现在,我需要实现正确的消息确认--我需要接收一条消息,做一些业务逻辑,只有在此之后,如果成功,我需要ack消息(从队列中删除消息)。例如,如果我的业务逻辑出现错误,消息必须重新排队。 现在我不知道如何从我的听众那里获取信息。