Camel停止从JMS队列中取出消息

8xiog9wr  于 2023-04-20  发布在  Apache
关注(0)|答案(1)|浏览(120)

bounty还有5天到期。回答此问题可获得+50声望奖励。DuncanKinnear正在寻找来自信誉良好来源的答案:需要知道CAMEL版本2.15.4的HTTP URI的确切配置选项

我们正在Karaf OSGI服务器中使用Camel和ActiveMQ。
我们有一个从JMS队列中取出消息并将其传递到HTTPS端点的路由。下面是构建路由的java代码:

from(fromURI).autoStartup(true)
            .onException(Throwable.class).handled(true).maximumRedeliveries(0)
                    .to("bean:our.own.OutputErrorHandler").end()
            .log(LoggingLevel.INFO, "Received batch to Output for Queue: " + queue.getName())
            .setHeader(Exchange.HTTP_METHOD, constant("POST"))
            .setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
            .to("log:DEBUG?showBody=true&showHeaders=true")
            .to(outputURI)
            .to("log:DEBUG?showBody=true&showHeaders=true")
            .routeId(queue.getName() + "-Output-HTTP")
            .end();

其中'fromURI'类似于'jms:queue:201.output','outputUri'是HTTPS端点URL。
现在这一切都正常了,但是有时候目标HTTP端点永远不会返回,也不会断开连接,所以整个路由会阻塞,JMS队列只是不断地构建。
我应该在HTTP URI上使用哪个超时参数来定义端点的响应超时,以便它在一定时间后失败?请注意,这是针对Camel版本2.15.4的(是的,我知道它很旧)。

6l7fqoea

6l7fqoea1#

2.x文档引用了一个名为HttpSOTimeoutTest的测试,在2.15.4标签上它使用了httpClient.SocketTimeout,例如:

httpClient.SocketTimeout=5000

相关问题