Add "limit 500" (or whatever) to the end of your query. Unless you're expecting some sort of streaming ResultSet support sort of thing, but that might require some workarounds.
On 8 August 2014 17:32, Matt Payne <pa...@mattpayne.org> wrote: > I fixed this at the database level by limiting how many rows can come back > using SQL. > > Is there a reason camel does not allow the limiting of how many rows are > pulled from the result set? > > Thanks! --Matt Payne > > > On Fri, Aug 8, 2014 at 3:34 PM, Matt Payne <pa...@mattpayne.org> wrote: > > > I am getting an java.lang.OutOfMemoryError: Java heap space when using > > camel sql component with a query that returns a large number of rows. > > > > Using a small value for maxMessagesPerPoll=10 does not help[1]. > > > > When reading the source[2], I see: > > 255 protected List<Map<String, Object>> queryForList(ResultSet rs) > > throws SQLException { > > 256 ColumnMapRowMapper rowMapper = new ColumnMapRowMapper(); > > 257 RowMapperResultSetExtractor<Map<String, Object>> mapper = new > > RowMapperResultSetExtractor<Map<String, Object>>(rowMapper); > > 258 List<Map<String, Object>> data = mapper.extractData(rs); > > 259 return data; > > 260 } > > > > It seems that all of the result set, rs, is going to be read regardless > of > > how large it is. When stepping through via eclipse's debugger this is > > what I see happening. > > > > It's unclear how to ask camel sql component to only take X rows at a > time. > > Is there a way to do this please? > > > > Thanks! --Matt Payne > > > > > > [1] > > > http://camel.465427.n5.nabble.com/Fetching-data-in-batches-td5718366.html > > [2] > > > https://git-wip-us.apache.org/repos/asf?p=camel.git;a=blob;f=components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java#l255 > > > > > > -- > --Matt Payne > -- Matt Sicker <boa...@gmail.com>