有没有办法确定neo4j数据库是否已关闭?

时间:2013-02-20 20:56:57

标签: neo4j

标题说明了一切。我知道你可以在数据库上调用graphDb.shutdown(),它说你应该在那之后删除所有引用,但有没有一种编程方式来确定图数据库的状态,看它是否关闭?

3 个答案:

答案 0 :(得分:2)

尝试GraphDatabaseService.isAvailable(long timeout)

  

"使用此方法检查数据库是否处于可用状态。如果数据库当前未处于可用状态,则可以提供超时以等待它变为可用状态。 如果数据库已关闭,则会立即返回false。"

我认为超时是以毫秒为单位。

答案 1 :(得分:1)

我认为你能得到它的唯一方法就是使用反射。对于例如一个EmbeddedGraphDatabase,你可以这样得到它:

final Field life = InternalAbstractGraphDatabase.class.getDeclaredField("life");
life.setAccessible(true);
System.out.println(((LifeSupport) life.get(db)).getStatus());

答案 2 :(得分:-1)

在linux服务器控制台中,您可以使用此命令:(也可以在Windows上使用)

neo4j-community-1.9.M04/bin$ ./neo4j status
Neo4j Server is not running

在将任何更高级别的语言与REST一起使用时,您可能只想curlwget实例通常运行的特定网址。如果你没有数据,你知道它已经失效了。