Apache camel Apache Camel SQL组件未关闭结果集?

Apache camel Apache Camel SQL组件未关闭结果集?,apache-camel,Apache Camel,我正在使用camelsql组件对oracledb运行select查询。war文件部署在Jboss EAP 6.1上。在配置下的配置文件中,我将track语句设置为true(即true)。因此Jboss会在连接返回池时检查结果集是否关闭 我正在按如下方式配置sql组件: //datasource is injected here @Resource(mappedName = "java:/jdbc/OracleDS") private DataSource dataSource; from("a

我正在使用camelsql组件对oracledb运行select查询。war文件部署在Jboss EAP 6.1上。在配置下的配置文件中,我将track语句设置为true(即true)。因此Jboss会在连接返回池时检查结果集是否关闭

我正在按如下方式配置sql组件:

//datasource is injected here
@Resource(mappedName = "java:/jdbc/OracleDS")
private DataSource dataSource;
from("activemq:"+queue)
...
.recipientList(simple(getFromConfig(sqlStmtName)),"false")
..
。。。

sql组件在recipientList中使用如下:

//datasource is injected here
@Resource(mappedName = "java:/jdbc/OracleDS")
private DataSource dataSource;
from("activemq:"+queue)
...
.recipientList(simple(getFromConfig(sqlStmtName)),"false")
..
sql语句没有什么特别之处。只有一个表中的常规select语句

在Jboss日志中,我看到了这个警告

2015-04-16 16:23:07,169 WARN     [org.jboss.jca.adapters.jdbc.WrappedConnection] (ajp-8009-2|R:r2K4crKLnPRT-0br|ctvc|1.0) Closing a result set you left open! Please close it yourself.: java.lang.Throwable: STACKTRACE
at org.jboss.jca.adapters.jdbc.WrappedStatement.registerResultSet(WrappedStatement.java:1357)
at org.jboss.jca.adapters.jdbc.WrappedStatement.getResultSet(WrappedStatement.java:740)
at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:127)
at org.apache.camel.component.sql.SqlProducer$2.doInPreparedStatement(SqlProducer.java:90)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:589)
at org.apache.camel.component.sql.SqlProducer.process(SqlProducer.java:90)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:573)
at org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:506)
at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:215)
at org.apache.camel.processor.RecipientList.sendToRecipientList(RecipientList.java:167)
at org.apache.camel.processor.RecipientList.process(RecipientList.java:120)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
...
...

我检查了SqlProducer.java(第127行)。由于sql组件使用SpringJDBCTemplate,我假设resultset将由该模板关闭


我需要做些什么来关闭结果集吗

是的,这是Apache Camel中的一个bug。我已经记录了一张票证,以便在将来的版本中修复此问题


谢谢你,克劳斯。我将研究使用新版本的Camel。