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>

Reply via email to