Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orientdb:获取记录时数据库关闭异常_Orientdb_Orientdb3.0 - Fatal编程技术网

Orientdb:获取记录时数据库关闭异常

Orientdb:获取记录时数据库关闭异常,orientdb,orientdb3.0,Orientdb,Orientdb3.0,正在尝试从orientdb获取记录。我得到以下错误: Exception in thread "main" com.orientechnologies.orient.core.exception.ODatabaseException: Database 'remote:localhost/testdb' is closed at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.checkOpennes

正在尝试从orientdb获取记录。我得到以下错误:

Exception in thread "main" com.orientechnologies.orient.core.exception.ODatabaseException: Database 'remote:localhost/testdb' is closed
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentAbstract.checkOpenness(ODatabaseDocumentAbstract.java:2328)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentRemote.fetchNextPage(ODatabaseDocumentRemote.java:446)
at com.orientechnologies.orient.client.remote.message.ORemoteResultSet.fetchNextPage(ORemoteResultSet.java:52)
at com.orientechnologies.orient.client.remote.message.ORemoteResultSet.hasNext(ORemoteResultSet.java:47)
at com.orientechnologies.orient.core.sql.executor.OResultSet.tryAdvance(OResultSet.java:41)
at java.util.Spliterator.forEachRemaining(Spliterator.java:326)
at com.orientechnologies.orient.core.sql.executor.OResultSet.forEachRemaining(OResultSet.java:49)
at aoa.services.impl.OrientdConnectionHandler.getResultList(OrientdConnectionHandler.java:197)
at aoa.services.impl.OrientdConnectionHandler.main(OrientdConnectionHandler.java:209)
使用以下代码查询数据:

   ...
    try(ODatabaseSession ses_orient = getConnPool(dbnae).acquire();){
      rs = ses_orient.query(query);  
    }


    public ODatabasePool getConnPool(String dbname){
      ODatabasePool pool = new 
       ODatabasePool(orientDB,dbname,OrientDbConFactory.USER,OrientDbConFactory.PASSWORD, 
       orientDBConfig);
       connPool.put(dbname,pool);
       return pool;
    }
   ...

如果我将记录数限制为1000,即“查询\远程\结果集\页面\大小”,则查询工作正常。如果记录数超过1000,则会出现错误:数据库“remote:localhost/testdb”已关闭

我认为您正在使用Try块之外的OResultSet,这意味着会话已关闭,
rs
无法再从数据库获取更多数据

 try(ODatabaseSession ses_orient = getConnPool(dbnae).acquire();){
     OResultSet rs = ses_orient.query(query);
     rs.stream()
        .forEach(x -> System.out.println(x.getProperty("propertyName")));
     rs.close();

}
参考文件:


您可以更改标题吗:您没有使用OrientDBSES\u的JDBC驱动程序orient被try(使用资源)关闭,rs也是。您应该在try块中使用rs。我想是的,就是这样。会话关闭后,我正在从OResultSet获取数据。