来自瓦坎达数据库"Memory allocation failed"错误消息



我们有一个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标准(的某些星座?" compontentsignature"背后是什么:" Xbox"?这是否表明Wakanda使用Microsoft Xbox库?当我查找错误消息时,答案始终是指Xbox库的问题。

我感谢任何建议,这是一个非常持久的问题。

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

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

我的问题已经回答了。

最新更新