Wakanda数据库的“内存分配失败”错误消息

时间:2019-06-24 08:37:29

标签: database wakanda

我们有一个Web应用程序,可从铣床收集数据。连接了几台机器,每天收集大约2000到3000条机器数据记录。 有时会发生服务器或数据库停止运行而无法将更多新数据写入数据库的情况。如果随后查询数据,Wakanda服务器将返回错误消息:

{"__ERROR":[{"message":"Memory allocation failed","componentSignature":"xbox","errCode":100},{"message":"Cannot load page for index UnixDay.ID of database models","componentSignature":"dbmg","errCode":1076},{"message":"Cannot complete scan on index UnixDay.ID of database models","componentSignature":"dbmg","errCode":1081},{"message":"Query cannot be completed","componentSignature":"dbmg","errCode":1200},{"message":"Query cannot be completed","componentSignature":"dbmg","errCode":1200},{"message":"Query cannot be completed","componentSignature":"dbmg","errCode":1200}]}

我们有两个位置,并且在每个位置都运行独立的Wakanda服务器。这两个位置的数据库模型和数据类的代码基础都相同。但是,上述问题仅在一个位置发生,而我们在第二个位置从未遇到过这样的问题。服务器或数据库在那里运行了数周而没有错误。

如果数据库停止,则经常发生数据错误。可能首先发生数据错误,然后服务器/数据库停止。错误消息始终是同一类型,只有受影响的数据类有所不同。

BACKEND {"ErrorText":"List of deleted records is invalid","ErrorNumber":18,"ProblemType":5,"ErrorLevel":2,"ProblemTypeText":"Problem on the {TableName} data table","TableNum":35,"TableName":"ProductionOrder"}
BACKEND {"ErrorText":"The chained list of deleted records is invalid","ErrorNumber":54,"ProblemType":5,"ErrorLevel":2,"ProblemTypeText":"Problem on the {TableName} data table","TableNum":2,"TableName":"BaseDate"}

在大多数情况下,问题会在2到3天后发生。如果数据库已损坏(错误,如上面第二个代码框中所示),则必须执行数据库修复,然后一切正常。它还将创建一个新的.waIndex文件,并再次运行几天。

主机服务器的某些星座(Windows Server 2012 R2标准)是否会触发这种行为? “ componentSignature”:“ xbox”的背后是什么?这是否表明Wakanda使用Microsoft Xbox库?当我查找错误消息时,答案总是指Xbox库的问题。

我很感谢任何建议,这是一个长期存在的问题。

1 个答案:

答案 0 :(得分:0)

我已找到问题并能够解决。

原因是整个解决方案的内存配置(settings.waSettings)。如果可用内存的值太小,随着时间的推移,内存将用完。如果处理并存储了大量数据,则迟早内存将已满,Wakanda服务器将无法再打开数据存储文件或索引文件,或者将无法正确完成写入过程。在这种情况下,系统将停止并显示上述错误消息。如果无法完全完成写操作,则数据存储文件中将出现不一致的情况,并且数据库将被损坏。必须首先修复此问题,否则Wakanda服务器将完全无法启动。 我现在将设置设置为固定内存大小,并为Wakanda服务器提供8GB内存。这样就留出了足够的空间来处理数据,并且使用更多的内存可以提高性能。在某些情况下,将数据保存在数据库中的速度提高了5-6倍。这使服务器还可以更好地处理占用的内存的释放。如果内存太小,那么它也会有问题,并且无法始终管理足够的内存来再次释放,然后整个服务器会随着时间的推移而窒息。

我的问题已经回答了。