Zumero v3零星同步问题

问题描述

最近,我已经将客户的服务器迁移到了最新的v3版本(他来自1.4版本),随后又将新库链接到他们的Android应用中。应用程序本身也进行了较小的更改,主要是异步加载列表。 使用此版本的应用程序,有时(显然与用户交互没有任何关系),我得出“数据库磁盘映像格式错误”的信息。我试图完全分离与数据库的交互,因此由计时器调用后台同步只能在用户位于主页中时发生。每个前台操作都包装在一个事务中,但是我在VS2019中使用Xamarin,因此将事务隔离级别与Java示例关联起来有点困难。 连接是通过以下语句创建的:

_conn = new sqliteConnection("Data source=" + _dbFile + ";Version=3;PRAGMA journal_mode=WAL;PRAGMA foreign_keys=ON;");

以下是我的日志的摘录,该摘录是在使用sqliteCommand执行命令“ PRAGMA integrity_check”后获得的:

20200924 16:42:50:661 - MainActivity.OnCreate
                        Avvio applicazione,versione v2.1 (42) - 10/03/2020
                        Parametro bundle NULL
20200924 16:42:50:960 - Controllo esistenza database
20200924 16:43:45:965 - *** in database main ***
max rootpage (332) disagrees with header (328)
On page 220 at right child: Bad ptr map entry key=331 expected=(5,220) got=(1,0)
On page 220 at right child: 2nd reference to page 331
Bad ptr map entry key=332 expected=(1,0) got=(5,1)
2nd reference to page 332
On page 5 at right child: invalid page number 4886
20200924 16:43:53:971 - row 5226 missing from index n$rv$txid$565577053
20200924 16:43:53:974 - row 5226 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:975 - row 5227 missing from index n$rv$txid$565577053
20200924 16:43:53:976 - row 5227 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:977 - row 5228 missing from index n$rv$txid$565577053
20200924 16:43:53:978 - row 5228 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:979 - row 5229 missing from index n$rv$txid$565577053
20200924 16:43:53:980 - row 5229 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:981 - row 5230 missing from index n$rv$txid$565577053
20200924 16:43:53:982 - row 5230 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:983 - row 5231 missing from index n$rv$txid$565577053
20200924 16:43:53:984 - row 5231 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:985 - row 5232 missing from index n$rv$txid$565577053
20200924 16:43:53:987 - row 5232 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:988 - row 5233 missing from index n$rv$txid$565577053
20200924 16:43:53:989 - row 5233 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:990 - row 5234 missing from index n$rv$txid$565577053
20200924 16:43:53:991 - row 5234 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:992 - row 5235 missing from index n$rv$txid$565577053
20200924 16:43:53:993 - row 5235 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:994 - row 5236 missing from index n$rv$txid$565577053
20200924 16:43:53:995 - row 5236 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:996 - row 5237 missing from index n$rv$txid$565577053
20200924 16:43:53:997 - row 5237 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:53:998 - row 5238 missing from index n$rv$txid$565577053
20200924 16:43:53:999 - row 5238 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:54:000 - row 5239 missing from index n$rv$txid$565577053
20200924 16:43:54:001 - row 5239 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:54:002 - row 5240 missing from index n$rv$txid$565577053
20200924 16:43:54:003 - row 5240 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:54:004 - row 5241 missing from index n$rv$txid$565577053
20200924 16:43:54:005 - row 5241 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:54:006 - row 5242 missing from index n$rv$txid$565577053
20200924 16:43:54:007 - row 5242 missing from index sqlite_autoindex_z$rv$565577053_1
20200924 16:43:54:590 - Errore durante il controllo di integrità
                        The database disk image is malformed
database disk image is malformed

语句PRAGMA完整性_检查以及VACUUM有时会起作用,尤其是在没有丢失的行但数据库仍然给出图像格式错误错误时。 为了解决问题,我尝试使用旧的库(1.4.1.2030),但是初始同步的响应文件是标准大小的十倍(82MB而不是7.5),因此是最终数据库(192MB)而不是21,写作时间明显更长);版本2都恢复正常,但我从未在此应用程序中使用过v2。 该应用程序在三种不同的平板电脑上表现出相同的行为:Nexus7(带有Android 5.1)和两个三星(分别带有Android 6.0和9.0) 你们中有人遇到过类似情况吗?

谢谢。

鲁道夫。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)