Multithreading 这种方法适用于orient DB中的连接管理吗?

Multithreading 这种方法适用于orient DB中的连接管理吗?,multithreading,orientdb,Multithreading,Orientdb,我正在使用OrientGraphFactory管理连接池 OrientGraphFactory graphFactory = new OrientGraphFactory(url,username,password).setupPool(DEFAULT_MIN_POOL_SIZE, maxPoolSize); 我有一个函数,它检查线程上的活动连接并返回它 public OrientGraph openDatabase() { OrientGraph db = (OrientGrap

我正在使用OrientGraphFactory管理连接池

OrientGraphFactory graphFactory = new OrientGraphFactory(url,username,password).setupPool(DEFAULT_MIN_POOL_SIZE, maxPoolSize);
我有一个函数,它检查线程上的活动连接并返回它

 public OrientGraph openDatabase() {
    OrientGraph db  = (OrientGraph)OrientGraph.getActiveGraph();
    if(db==null || db.isClosed())
    {
        db = graphFactory.getTx();
    }
    return db ;
 }

在我的函数中,我必须在使用后关闭/关闭连接,否则它将在线程终止后关闭

此方法不正确,因为您使用内部API。
更简单的版本
db=graphFactory.getTx()考虑了您上面所做的所有检查。

这种方法是不正确的,因为您使用的是内部API。
更简单的版本
db=graphFactory.getTx()考虑了您在上面所做的所有检查。

好的,使用数据库后是否必须关闭数据库?我用db.getTx()尝试了db.shutdown(),它每次在单线程上提供不同的连接。在多线程环境中,我希望重用给定线程的连接,这就是我尝试使用OrientGraph.getActiveGraph()的原因,您必须关闭连接。为什么你认为它提供了不同的连接?对不起,它提供了相同的实例,我检查错了,谢谢:)好的,我使用后必须关闭数据库吗?我用db.getTx()尝试了db.shutdown(),它每次在单线程上提供不同的连接。在多线程环境中,我希望重用给定线程的连接,这就是我尝试使用OrientGraph.getActiveGraph()的原因,您必须关闭连接。为什么您认为它提供了不同的连接?对不起,它提供了相同的实例,我检查错了,谢谢:)