Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BerkeleyDB Core JAVA中的内存日志缓冲区大小_Java_Berkeley Db - Fatal编程技术网

BerkeleyDB Core JAVA中的内存日志缓冲区大小

BerkeleyDB Core JAVA中的内存日志缓冲区大小,java,berkeley-db,Java,Berkeley Db,我在Berkeley BerkeleyDB Core JAVA edition中使用内存日志缓冲区。 我有9个缺少记录的CDR文件。 当我在持久数据库环境中的数据库中写入CDRFile时,即创建I.e日志文件,然后创建总共1.08gb的日志文件,当我设置内存中日志缓冲区的这两个参数时: envconfig.setLogInMemory(true); envconfig.setLogBufferSize(1181116006); // 1.10 gb 我得到的错误如下: ------------

我在Berkeley BerkeleyDB Core JAVA edition中使用内存日志缓冲区。 我有9个缺少记录的CDR文件。 当我在持久数据库环境中的数据库中写入CDRFile时,即创建I.e日志文件,然后创建总共1.08gb的日志文件,当我设置内存中日志缓冲区的这两个参数时:

envconfig.setLogInMemory(true);
envconfig.setLogBufferSize(1181116006); // 1.10 gb
我得到的错误如下:

-------------------------error----------------
PANIC: Not enough space
PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
unable to join the environment
DataBase Exceptioncom.sleepycat.db.RunRecoveryException: DB_RUNRECOVERY: Fatal error,
run database recovery: PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
unable to join the environment: DB_RUNRECOVERY: Fatal error, run database recovery
Writing DataBase Exception--->java.lang.NullPointerException
 ------------------------------error----------------------

因此,我认为如果在磁盘上创建1gb的文件日志,那么我必须在缓冲内存中为日志文件设置1gb的空间。

这种问题通常可以在Berkeley DB for Berkeley DB core或Berkeley DB Java Edition for BDB JE on OTN上更快地得到回答

根据错误消息,看起来您正在通过JavaAPI使用Berkeley DB core。我猜您的日志缓冲区空间不足。在Berkeley DB中,内存日志缓冲区的默认大小为1MB。您可以通过在C或Java中调用来扩展日志缓冲区,使其更大。否则,您可以将事务分解为更小的块,以便在单个事务中不会超过日志缓冲区的大小

如果不在内存中创建日志文件、使用较小的事务或分配较大的内存日志缓冲区,是否会遇到此问题

我希望这会有所帮助

问候,

戴夫