Description
Root cause: local queries cursors must be closed or full read to unlock the GridH2Table.
Proposal fix:
- modify H2ResultSetIterator to use "paged mode": iterator reads N records into internal buffer and unlock the tables (similar to MapQueryResult; later we have to refactor these classes. They must use one code base to fetch data and lok/unlock tables)
- modify the state logic of the QueryCursorImpl for lazy mode. Now the real query cancellation isn't called when result set is gathered. It is not valid for lazy mode.
- add wrapper for iterator at the RegisteredQueryCursor because the state of query isn't tracked when results are read via Iterator at the client code.
- fix tests that doesn't close query cursor for local queries.
Attachments
Issue Links
- links to