即使在成功关闭Camel上下文/路由后,连接仍在CLOSE_WAIT中挂起

时间:2013-05-21 10:25:33

标签: solr apache-camel

我有一个关于Camel路线关闭的​​问题。

以下是路线的代码段 -

 from("seda:" + this.getDumpIdentifier() + "_insertInSolr?concurrentConsumers=50&pollTimeout=1")
            // use streaming to increase index throughput
            .setHeader(SolrConstants.OPERATION, constant(SolrConstants.OPERATION_INSERT_STREAMING))
            .setExchangePattern(ExchangePattern.InOnly)
            // define solr endpoint and options
            .to("solr://" + this.getSolrEndPoint()
                    + "?defaultMaxConnectionsPerHost=50&maxTotalConnections=150&maxRetries=3&allowCompression=true")
            //
            .log(LoggingLevel.DEBUG, "Successfully indexed document ID=${header.DOCUMENT_ID}.")
            // end this route
            .end();

我正在使用org.apache.camel.main.Main来启动Camel上下文(此路由)。 成功处理后我正在做 - camelMain.stop(); camelMain.shutdown();

但是在成功关闭路由之后,我仍然看到处于CLOSE_WAIT状态的TCP连接(从此Indexer应用程序到部署在tomcat上的solr服务器)。

一些观察 - 1.在日志中我无法看到与solr://“端点有关的任何内容 2.我看到日志中路由成功正常关闭。例如:
“消息路由:route6关闭完成,消耗来自:端点[seda:// eventIncr_insertInSolr?concurrentConsumers = 100& pollTimeout = 1] ......”

问题 -
任何想法为什么solr的底层实现://即使在路由终止之后也没有释放连接(驼峰上下文关闭)?

1 个答案:

答案 0 :(得分:0)

它是camel-solr中的一个错误。停止camel-solr组件时,资源未正确停止。我已经记录了一张票 https://issues.apache.org/jira/browse/CAMEL-6396