问题标签 [camel-jms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
279 浏览

apache-camel - 如何设置 JMSCorrelationID 并将 JMSMessageID 与 Camel 客户端和 IBMMQ 代理相关联

我有一个使用 JMS 组件连接 IBMMQ 的 Camel 客户端。

我需要

  • 发送一个具有固定值的 JMSCorrelationID。
  • 通过 JMSMessageID 关联回复消息。

我的配置是:

问题是当 useMessageIDAsCorrelationID=true 时 JMSCorrelationID 为空

当 useMessageIDAsCorrelationID=false 时,JMSCorrelationID 已按预期设置,但相关性超时。两者如何使用?

0 投票
1 回答
76 浏览

apache-camel - 为什么在 Camel 3 升级后重启时 Solace 消息会挂在服务器上?

在升级到 Camel 3.3 时,我们在测试时遇到了一个问题。因此,如果我们在队列中有多条消息由于某种原因重新启动我们的骆驼应用程序时,一些消息会卡在安慰队列上的“未确认”状态,并且在应用程序恢复后它不会消耗这些消息。我们需要在它们被消耗之前再次重新启动应用程序。

  1. 此问题似乎仅在重新启动时队列中有大量消息时才会出现。
  2. 我们无法在 Camel 2.x 版本上重现该问题。
  3. 应用程序已正确设置为 AUTO_ACKNOWLEDGE,并且在所有其他情况下都可以正常工作。
  4. “acceptMessagesWhileStopping”设置为假。
  5. 我们没有看到任何消息丢失或重复。

我们完成了启动时发生的所有设置和配置,我们没有发现设置或配置有任何问题。我不确定如何进行调试,因为这是一个与关闭相关的问题,同时消息也在消耗过程中。任何有关如何前进的建议都会有所帮助。问候。

PS 我已经阅读了 Camel 3 迁移指南。我在那里没有找到与该问题相关的任何内容。

0 投票
1 回答
171 浏览

apache-camel - Camel 事务处理的 JMS 组件不适用于聚合器

我发现带有选项 transacted=true 的 JMS 组件不适用于 Aggregator。我的路由在到达聚合器之前是事务性的,在聚合器之后我的路由不再是事务性的。如果我理解得很好,这是因为聚合器正在为每个交换转换启动新线程,并且这种行为会停止第一个事务线程,从而导致事务提交和确认发送到队列。所以消息不再在队列中。这个对吗?

我需要对 Camel 做的是从队列(RabbitMQ)中读取所有消息,然后将它们全部转换到一个列表中,最后将数据从列表写入文件。所有这些都必须是事务性的,如果路由中发生错误,消息应该保留在队列中。基本上我到目前为止所做的是从队列中读取 jms 组件(使用选项 transacted=true),然后使用聚合器聚合所有消息,然后发送到文件。

我的代码的缩短示例:

我认为最完美的组件是Simple JMS-batch,但我们使用的是Camel 3.8,这个组件在这个版本和更新的版本中不再存在。为什么?有什么新东西代替这个吗?

SJMSSJMS2也对我没有帮助,当我使用它们时,消费者确实会读取所有消息(队列中的所有消息都未确认 - 等待确认),但通过路由的处理仍然是一条一条消息。我怎样才能使它成为与所有消息列表的一次交换?

是否有其他解决方案?(例如,制作一些自定义聚合器 - 但如何?)

0 投票
0 回答
137 浏览

apache-camel - 如何将来自 Apache Camel JMS 的消息作为 Transacted Batch 使用?

我知道有组件 sjms-batch 可以完美解决我的问题,但是该组件存在于Camel 3.7中,我需要使用Camel 3.8。根据 Camel 文档,该组件在 3.7 版之后不再存在。我找不到删除此组件的原因。

  1. 有人知道为什么新版本中不存在 sjms-batch 吗?
  2. 我可以在 Camel 3.8 上使用类似的东西吗?
0 投票
1 回答
43 浏览

java - 使用 JMS 服务引用创建 Spring 上下文时出现异常

我们有一个 Swing UI 客户端,它使用一个 Appclient 设置一个带有 CAMEL bean 的 Spring 框架上下文,用于通过 JMS 与 OSGi 服务器中的远程服务对话。

以下是服务引用之一的示例:

最近我们向 OSGi (Karaf) 服务器添加了“camel-http”功能,以允许使用 HTTP URI 端点。

当客户端使用以下 Stacktrace 启动时,服务器上的此包含已开始创建警告:

这似乎表明当我们现有的 JMS 端点被创建时,它以某种方式找到了对“RequestEntity”类的引用。在我们的任何代码中都没有对此类的引用,因此我们不确定为什么会开始出现此警告。

有什么方法可以让我们获得更多关于它试图实例化哪个 bean 的信息?

0 投票
0 回答
101 浏览

apache-camel - Apache Camel Spring JMS org.springframework.jms.listener.adapter.ReplyFailureException:无法发送有效负载异常的回复

我有一个运行 Apache Camel 和 ActiveMQ 的 Spring Boot 应用程序。我正在从 ProducerTemplate 发送 JMS 消息,而消费者在不同的应用程序中,但我对这两个应用程序使用相同的 ActiveMQ 代理。当我尝试发送消息时,我收到以下异常。

当我看得更远时,我得到以下异常:

以下是我正在使用的配置:

验证队列消费者:

和 ProcessQueueConsumer :

不同应用程序中的使用者按预期工作。它正在接收消息并处理它。但是,我收到以下异常:

它几乎看起来像 processQueue(生产者)的 DefaultMessageListenerContainer 正在尝试进行回复,但没有找到 defaultresponseQueue。

当我添加以下行messageListenerAdapter.setDefaultResponseQueueName("processMessage"); ,那么没有例外,但是我们从processQueue产生的相同消息也被发送到“ processMessage ”队列