OrientDB - 给定分区达到的最大池大小

时间:2015-10-19 18:24:58

标签: orientdb

我们有一个单页Web应用程序,它使用一组REST API。 REST API层基于Jersey,它仅调用OrientDB REST API。我们通过OrientDB REST API调用OrientDB函数。

我们使用OrientDB 2.0.15

OrientDB会连续抛出以下错误,即使连接数很少

[OClientConnectionManager]Caught exception
java.lang.IllegalStateException: You have reached maximum pool size for given partition
        at com.orientechnologies.common.concur.resource.OPartitionedObjectPool.acquire(OPartitionedObjectPool.java:100)
        at com.orientechnologies.orient.core.command.script.ODatabaseScriptManager.acquireEngine(ODatabaseScriptManager.java:91)
        at com.orientechnologies.orient.core.command.script.OScriptManager.acquireDatabaseEngine(OScriptManager.java:196)
        at com.orientechnologies.orient.core.command.script.OCommandExecutorFunction.executeInContext(OCommandExecutorFunction.java:72)
        at com.orientechnologies.orient.core.metadata.function.OFunction.executeInContext(OFunction.java:148)
        at com.orientechnologies.orient.server.network.protocol.http.command.all.OServerCommandAbstractLogic.execute(OServerCommandAbstractLogic.java:66)
        at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.service(ONetworkProtocolHttpAbstract.java:176)
        at com.orientechnologies.orient.server.network.protocol.http.ONetworkProtocolHttpAbstract.execute(ONetworkProtocolHttpAbstract.java:581)
        at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:69)

我们有以下属性设置

<properties>
    <entry value="50" name="db.pool.min"/>
    <entry value="500" name="db.pool.max"/>
    <entry value="false" name="profiler.enabled"/>
    <entry value="info" name="log.console.level"/>
    <entry value="fine" name="log.file.level"/>
    <entry value="10000" name="storage.record.lockTimeout"/>
</properties>

我们假设db.pool.mindb.pool.max设置服务器处理的最小和最大数据库实例。

我们还尝试了以下属性;

  
      
  1. db.pool.idleTimeout - 假设这是“检查池中免费数据库的超时”。将其设置为5000
  2.   
  3. db.pool.idleCheckDelay - 假设这是“检查空闲数据库的延迟时间”。将其设置为5000
  4.   

(注:以上假设是基于OGlobalConfiguration.java

我们想了解以下内容;

  1. 如何克服上述问题
  2. 如何针对重负载调整OrientDB REST API
  3. 感谢。

1 个答案:

答案 0 :(得分:4)

db.pool。*是数据库池的配置。

我认为您的问题是脚本引擎的池

尝试增加此功能。 see my updated JS.Fiddle here