OrientDB OByteBufferPool错误

时间:2016-05-08 19:00:01

标签: java orientdb orientdb-2.1

由于this issue,我刚刚将OrientDB从 2.1.19 升级到 2.2-rc1

作为回顾,我在嵌入式plocal中运行OrientDB,并且正在使用以下设置启动应用程序(仅包括相关设置):

java -d64 -Xmx2G -Dstorage.diskCache.bufferSize=10000 -server -XX:+AggressiveOpts -XX:CompileThreshold=200 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${LOG_PATH}/heapdump.hprof -jar app start

应用程序启动,最初一切都很好。但是过了一会儿我得到以下错误:

Caused by: java.lang.NullPointerException: null
        at com.orientechnologies.common.directmemory.OByteBufferPool.acquireDirect(OByteBufferPool.java:269)
        at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.cacheFileContent(OWOWCache.java:1206)
        at com.orientechnologies.orient.core.storage.cache.local.OWOWCache.load(OWOWCache.java:617)
        at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.updateCache(O2QCache.java:1224)
        at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.doLoad(O2QCache.java:447)
        at com.orientechnologies.orient.core.storage.cache.local.twoq.O2QCache.load(O2QCache.java:392)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.base.ODurableComponent.loadPage(ODurableComponent.java:150)
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecordNoLock(OPaginatedCluster.java:649) 
        at com.orientechnologies.orient.core.storage.impl.local.paginated.OPaginatedCluster.readRecord(OPaginatedCluster.java:622)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doReadRecord(OAbstractPaginatedStorage.java:3163)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:2805)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.readRecord(OAbstractPaginatedStorage.java:1023)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx$SimpleRecordReader.readRecord(ODatabaseDocumentTx.java:3168)
        at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.executeReadRecord(ODatabaseDocumentTx.java:1824)

错误发生后某些查询停止工作。我猜测错误源于缺乏本机内存。是否有人对具体导致这种情况以及如何防止它有任何见解。如果需要,我可以分配更多内存。我只是不确定要分配的内存的类型

1 个答案:

答案 0 :(得分:0)

它缺少这个新设置:

-XX:MaxDirectMemorySize=512g 

请在升级之前查看v2.2中的所有更改:http://orientdb.com/docs/last/Release-2.2.0.html#release-22x