OrientDB - 给定分区达到的最大池大小
OrientDB - Maximum pool size reached for given partition
团队,
我们有一个使用一组 REST API 的单页 Web 应用程序。 REST API 层基于 Jersey,它仅调用 OrientDB REST API。我们通过 OrientDB REST APIs.
调用 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.min
和 db.pool.max
设置服务器处理的最小和最大数据库实例。
我们还尝试了以下属性;
- db.pool.idleTimeout - Assuming this is "The timeout for checking of free database in the pool". Set this to 5000
- db.pool.idleCheckDelay - Assuming this is the "Delay time on checking for idle databases". Set this to 5000
(注:以上假设是基于OGlobalConfiguration.java)
我们想了解以下内容;
- 如何克服上述问题
- 如何针对重负载调整 OrientDB REST APIs
谢谢。
db.pool.* 是数据库池的配置。
我认为你的问题是脚本引擎的池
尝试增加它。
http://orientdb.com/docs/2.1/Configuration.html#script
团队,
我们有一个使用一组 REST API 的单页 Web 应用程序。 REST API 层基于 Jersey,它仅调用 OrientDB REST API。我们通过 OrientDB REST APIs.
调用 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.min
和 db.pool.max
设置服务器处理的最小和最大数据库实例。
我们还尝试了以下属性;
- db.pool.idleTimeout - Assuming this is "The timeout for checking of free database in the pool". Set this to 5000
- db.pool.idleCheckDelay - Assuming this is the "Delay time on checking for idle databases". Set this to 5000
(注:以上假设是基于OGlobalConfiguration.java)
我们想了解以下内容;
- 如何克服上述问题
- 如何针对重负载调整 OrientDB REST APIs
谢谢。
db.pool.* 是数据库池的配置。
我认为你的问题是脚本引擎的池
尝试增加它。 http://orientdb.com/docs/2.1/Configuration.html#script