Hello! Can you provide logs from your nodes prior to seeing this exceptions?
Note that in a distributed system, you can expect to see this problem sometimes, i.e. to see a large lazy result set fail in mid-iteration due to some changes in the cluster. I'm not sure if there's nothimg more specific here, though. Regards, -- Ilya Kasnacheev пн, 3 дек. 2018 г. в 06:21, yangjiajun <1371549...@qq.com>: > Hello. > > The error does not happen every time because it disappears when we restart > our application.But it repeats when first error appears.The row number is > not fixed when this error happens.We are really confused about this > exception. > > > ilya.kasnacheev wrote > > Hello! > > > > Does this happen every time? If so, which is the # of row on which it > will > > happen? > > > > Regards, > > -- > > Ilya Kasnacheev > > > > > > вт, 27 нояб. 2018 г. в 10:09, yangjiajun < > > > 1371549332@ > > >>: > > > >> Hello. > >> > >> I did a scan query on a table which has 8w records and tried to go > >> through > >> all records in the result set but got following exception: > >> > >> [13:53:31,523][SEVERE][client-connector-#77][JdbcRequestHandler] Failed > >> to > >> fetch SQL query result [reqId=0, req=JdbcQueryFetchRequest > >> [queryId=38106237, pageSize=1024]] > >> class org.apache.ignite.internal.processors.query.IgniteSQLException: > The > >> object is already closed [90007-195] > >> at > >> > >> > org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.fetchNext(H2ResultSetIterator.java:136) > >> at > >> > >> > org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.onHasNext(H2ResultSetIterator.java:142) > >> at > >> > >> > org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) > >> at > >> > >> > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) > >> at > >> > >> > org.apache.ignite.internal.processors.query.GridQueryCacheObjectsIterator.hasNext(GridQueryCacheObjectsIterator.java:61) > >> at > >> > >> > org.apache.ignite.internal.processors.odbc.jdbc.JdbcQueryCursor.fetchRows(JdbcQueryCursor.java:72) > >> at > >> > >> > org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.fetchQuery(JdbcRequestHandler.java:587) > >> at > >> > >> > org.apache.ignite.internal.processors.odbc.jdbc.JdbcRequestHandler.handle(JdbcRequestHandler.java:206) > >> at > >> > >> > org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:160) > >> at > >> > >> > org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:44) > >> at > >> > >> > org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) > >> at > >> > >> > org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) > >> at > >> > >> > org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) > >> at > >> > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > >> at > >> > >> > org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) > >> at > >> > >> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > >> at > >> > >> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > >> at java.lang.Thread.run(Thread.java:748) > >> Caused by: org.h2.jdbc.JdbcSQLException: The object is already closed > >> [90007-195] > >> at > >> org.h2.message.DbException.getJdbcSQLException(DbException.java:345) > >> at org.h2.message.DbException.get(DbException.java:179) > >> at org.h2.message.DbException.get(DbException.java:155) > >> at org.h2.message.DbException.get(DbException.java:144) > >> at > org.h2.jdbc.JdbcResultSet.checkClosed(JdbcResultSet.java:3208) > >> at org.h2.jdbc.JdbcResultSet.next(JdbcResultSet.java:130) > >> at > >> > >> > org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.fetchNext(H2ResultSetIterator.java:110) > >> ... 17 more > >> > >> My ignite version is 2.6 and I only started one node.I did not call any > >> close methods. Why ignite closed my result set? > >> > >> Here is my test code: > >> > >> import java.sql.Connection; > >> import java.sql.DriverManager; > >> import java.sql.ResultSet; > >> import java.sql.ResultSetMetaData; > >> import java.sql.Statement; > >> import java.util.Properties; > >> > >> public class StatementTest { > >> > >> private static Connection conn; > >> > >> > >> public static void main(String[] args) throws Exception { > >> > >> long t1 = System.currentTimeMillis(); > >> try { > >> initialize(); > >> > >> String selectSql = "SELECT * FROM > >> table_6932_r_1_1"; > >> testQuery(selectSql); > >> } catch (Exception e) { > >> throw e; > >> } finally { > >> if (conn != null) > >> conn.close(); > >> } > >> long t2 = System.currentTimeMillis(); > >> System.out.println("operation costs " + (t2 - t1) + " > >> ms"); > >> } > >> > >> public static void close() throws Exception { > >> conn.close(); > >> } > >> > >> public static void initialize() throws Exception { > >> Class.forName("org.apache.ignite.IgniteJdbcThinDriver"); > >> String dbUrl = > >> > >> > "jdbc:ignite:thin://ip:port;lazy=true;skipReducerOnUpdate=true;replicatedOnly=true"; > >> conn = DriverManager.getConnection(dbUrl, props); > >> } > >> > >> public static void testUpdate(String sql) throws Exception { > >> try (Statement stmt = conn.createStatement()) { > >> stmt.setQueryTimeout(10); > >> stmt.executeUpdate(sql); > >> } > >> } > >> > >> public static void testQuery(String sql) throws Exception { > >> long startTime=System.currentTimeMillis(); > >> try (Statement stmt = conn.createStatement()) { > >> //stmt.setQueryTimeout(10); > >> try (ResultSet rs = stmt.executeQuery(sql)) { > >> > >> ResultSetMetaData rsmd = > >> rs.getMetaData(); > >> int colCount = rsmd.getColumnCount(); > >> int count = 1; > >> try{ > >> while (rs.next()) { > >> //Thread.sleep(10); > >> > >> for (int i = 1; i <= > >> colCount; i++) { > >> > >> System.out.print(rsmd.getColumnName(i) + ":" + rs.getObject(i) + " > >> "); > >> } > >> > >> System.out.println(count); > >> count++; > >> } > >> }catch(Exception e){ > >> > >> System.out.println(System.currentTimeMillis()-startTime)); > >> > >> System.out.println(rs.isClosed()); > >> > >> System.out.println(stmt.isClosed()); > >> > >> System.out.println(conn.isClosed()); > >> } > >> > >> } > >> } > >> } > >> } > >> > >> > >> > >> -- > >> Sent from: http://apache-ignite-users.70518.x6.nabble.com/ > >> > > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ >