我经常在orientdb中收到以下消息。
1111-11-11 11:11:11:111 WARNI达到最大并发连接数(max = 1000,current = 1000),拒绝来自/xxx.xxx.xxx.xxx:xxxx的传入连接
之后,我无法访问数据库,因此我甚至无法执行shutdown.bat。
我已更改了orientdb-server-config.xml文件,但仍然抱怨最大连接
<properties>
<entry value="1" name="db.pool.min"/>
<entry value="20000000" name="db.pool.max"/>
<entry value="1000000" name="script.pool.maxSize"/>
<entry value="false" name="profiler.enabled"/>
<entry value="fine" name="log.console.level"/>
<entry value="fine" name="log.file.level"/>
<entry value="10000" name="storage.record.lockTimeout"/>
</properties>
要重新创建此问题,我有以下示例代码段。
import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.record.impl.ODocument;
import com.orientechnologies.orient.core.sql.query.OSQLSynchQuery;
import java.util.List;
public class ThreadExample {
private static final OSQLSynchQuery query = new OSQLSynchQuery("SELECT FROM OrgUnit");
public static void main(String[] args) {
for (int i = 0; i < 1500; i++) {
new Thread("" + i) {
public void run() {
ODatabaseDocumentTx db = DBConnectionPool.getInstance().getDBConnection();
System.out.println(" 1 -- Thread: " + getName() + " running");
db.query(query);
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
}
}
我正在使用连接池访问数据库而我的假设是我不必关闭连接因为我正在使用该池。 我的假设是否正确?
OrientDB版本:2.1.12 Java:Java 8.0.31操作系统:CentOS Linux 7 64位RAM:16GB MAX HEAP:9216Xmx Diskcache:4096m
编辑:我已尝试创建单独的数据库连接并按上述方式关闭它们,并且此发布也已发布。