找回密码
 立即注册

QQ登录

只需一步,快速开始

韩金龙的金龙
初级会员   /  发表于:2020-12-23 11:05  /   查看:9398  /  回复:15
1金币
问题咨询:
今天遇到一个登陆异常的情况:
服务器上有10个应用的登录程序都禁用了活字格原版的登录程序,改成用服务器端命令重新做的登录程序登录.
今天突然出现其中有一个应用无法正常登录表现为,发起登录时post请求服务器端命令超时,返回500错误:


出现此故障时,查看其它的9个应用(连接同一个数据库的) 都可以正常登录,唯独其中一个应用有问题.
这是从服务器上获得的日志信息:

报错日志:



但是如果是sqlite的用户表被锁住了 无法登录,那为什么其他应用可以登录?
活字格服务器上的每个应用的用户表调取的不是同一个库?


是不是这个应用的服务器端命令 自身有问题,无法链接到用户表导致的?并不是sqlite数据的问题。


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,我查过相关关于SQLite的资料后,得到以下信息: SQLite是轻量级数据库,因此不能支持高级并发性。错误表明您的应用程序正在经历比sqlite在默认配置中所能处理的更多的并发。这个错误意味着一个线程或进程对数据库连接具有独占锁,而另一个线程超时等待释放锁。 如果你遇到这个错误,你可以通过:切换到另一个数据库后端解决它。 在某种程度上,SQLite对于现实世 ...

15 个回复

倒序浏览
最佳答案
最佳答案
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2020-12-23 11:05:08
来自 2#
您好,我查过相关关于SQLite的资料后,得到以下信息:

SQLite是轻量级数据库,因此不能支持高级并发性。错误表明您的应用程序正在经历比sqlite在默认配置中所能处理的更多的并发。这个错误意味着一个线程或进程对数据库连接具有独占锁,而另一个线程超时等待释放锁。

如果你遇到这个错误,你可以通过:切换到另一个数据库后端解决它。                                                      在某种程度上,SQLite对于现实世界的应用程序来说变得过于“精简”,而这些并发错误表明您已经达到了这种程度。
                                                      重写代码以减少并发性并确保数据库事务是短暂的。通过设置timeout database选项增加默认的超时值。

以上是网络给出的错误处理办法,可以参考链接:https://stackoverflow.com/questi ... e-is-locked/3172950

在活字格中,如果使用内置的SQLite库的话,如果遇到多人同时操作数据库时,就会出现数据库锁的日志记录,解决办法就是如果要使用内置库,尽量降低内置库数据表操作的并发量,再有就是可以在服务端事务命令中调整事务隔离级别。
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-23 11:18:49
3#

如上图,整个登录命令用的都是服务器端命令中官方封装好的命令,没有直接对数据库做任何操作

如何避免?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-23 11:20:20
4#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-23 11:20:52
5#
读取了一下用户信息视图,并没有任何数据库的并发写的操作.
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2020-12-23 11:45:50
7#
qtcxc 发表于 2020-12-23 11:20
读取了一下用户信息视图,并没有任何数据库的并发写的操作.

这个问题现在一直出现吗?还是说偶发性的?
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-24 08:59:36
9#
目前是不定期出现,无法找到规律.
想找到彻底解决的办法.
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-24 09:00:30
10#
从11月中旬这个版本的程序上线后到现在 累计已出现3次
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2020-12-24 10:37:30
11#
仔细看了下网页F12的截图,报错应该是服务端命令的报错,您提供的日志是不对应这个问题的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
qtcxc活字格认证
高级会员   /  发表于:2020-12-25 13:25:16
12#
如何解决问题,登录按钮只做了一个事情就是调用服务器命令,而这个500错误是点击按钮后1分钟左右客户端收到的结果,
而服务器上同时找同一时间的日志会有发出来的错误日志.
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部