Camel路由在特定数量的请求之后循环

时间:2013-11-04 15:11:34

标签: java apache-camel endpoint

我遇到了Camel路线的问题,我现在正试图解决这几天。

由于我不是这个技术问题的专家,可能会遗漏您需要知道的信息......

首先,我的路线的目标是通过端点连接到远程服务器,通过jaxb编组从xml请求请求xml响应。

此路线没有什么特别之处,如下所示:

routeX.from("direct:requeteObjects)
.setHeader("element")
.constant(element)
.to("bean:importStructureI2VGestionnaireImpl?method=sendRequestObjects)                 
.to(endpoint)
.to("bean:importGestionnaireImpl?method=" + getObjects)

服务器按部分发送响应:例如,我期待3000个对象,由30个对象的包接收。

我更新了创建请求“sendRequest”的方法并要求下一个对象。

在处理响应之后,我将此请求发送回端点,端点获取响应,该响应将发送到处理响应的getObjects方法。

一切顺利,我得到了我的回复。但在5个请求/响应之后,进入端点后,没有任何反应。调试代码,看起来我的路由中有一个循环,因为代码继续在AsyncProcessor类中,在进程方法中等等。没有日志,没有。它不会停止。

我不知道为什么会这样。我认为这可能是因为我使用相同的路线定义。所以我为每个请求创建了一个路由,停止并删除旧请求。有了这个,我得到了6个回复。但是,同样的问题也会发生。

我尝试设置上下文最大端点缓存大小和上下文最大缓存池大小,乘以默认值10。我检查了这些值是否被考虑在内:它们是。但是,我仍然遇到同样的问题。

此外,交换对象总是一个新对象,所以我的回复永远不会堆积在一个大的交换对象中。

你知道问题出在哪里吗?背景可能变得太大了吗?还是端点?我应该在哪里看?

感谢您的回答。如果您需要更多信息,我很乐意添加它。

PS:我尝试在本主题中应用答案:Camel route inside routeContext executing infinitely,但没有变化: - (

0 个答案:

没有答案