视频监控平台-国标28181目录资源树显示不全问题的解决

本文主要是介绍视频监控平台-国标28181目录资源树显示不全问题的解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目           录

一、问题描述

1、问题现象描述

2、问题现象描述二

二、问题初查

三、故障处理过程

1、初步估计问题诱因

2、 角色权限资源组不匹配的验证:

3、 资源组互相冲突的验证

三、故障解决

1、故障解决  

2、问题总结和反思 


一、问题描述

1、问题现象描述

        AS-V1000视频监控平台支持国标28181协议,支持GB/T28181-2016,GB/T28181-2022等版本,在GB/T28181中,业务分组目录和行政区划目录是两种不同的目录,具有不同的定义和使用方式。AS-V1000视频监控平台可以灵活选用不同的目录和本地目录,进行下级目录到本地目录的挂接。

        目录树可以通过web客户端、cs客户端进行显示,并且可以根据不同的用户权限不同,显示不同数量的资源(视频通道)。

        这次,用户在视频监控平台的管理端,配置好了角色的资源组。在使用的时候,发现有的账户(比如userA)登录web客户端后,能够看到这个资源组在目录树上正常显示,如下图示:

        可以看出,能够显示:上级资源章“北七家镇”和下级资源组“未来星科低碳产业园项目二期..”。

        但是,另一个账户(比如userB)登录web客户端后后,看不到这个资源组在目录树上正常显示,如下图示:

2、问题现象描述二

       同时客户说明,他发现这些用户有个特点,同一个角色下面,现象相同。也就是说,userA的角色如果是roleA,那么角色是releA的所有用户userA1,userA2….userAn,都可以看到这个资源组,角色是roleB的所有用户userB1,userB2….userBn都看不到这个资源组。

二、问题初查

        经过我们测试人员验证,现场确实有这个问题。

        同时,发现另外一个情况,就是在我们的CS客户端(专用客户端),发现userB能够看得到这个资源组的名字“未来星科低碳产业园项目二期….”,但是看不到这个资源组下的视频资源名称(即通道名称)。

        如下图所示:

三、故障处理过程

1、初步估计问题诱因

        根据上述所欲现象,研发人员进行分析、讨论,认为有两种可能的原因:

        第一,是角色权限和资源组有不匹配的地方。

        第二,可能是角色权限中的资源组互相冲突导致一些资源组不能显示。

2、 角色权限资源组不匹配的验证:

        针对第一种情况,我们需要查找数据库中与资源组和角色相关的表。对比数据库的数据和前端显示的数据看是否是该原因?

        资源组相关的表有resgroupxx和resgroupbindxx,角色相关的表有roleresgroupbindxx;另外已知未来星科这个资源组的ID号是1119141912216000xxx5。

(1)查询 ‘未来星....’资源组下的资源是否正常

        select * from resgroupbindxx where ResGroupID=‘1119141912216000xxx5’;

        结果如下:

        下面有5个通道,是正常情况,跟显示都能够显示出来。

(2)查询“未来星....”资源组是否正常?

        select * from resgroupxx where ResGroupID=‘1119141912216000xxx5’;

        

(3)查询角色绑定资源是否正常?

select * from roleresgroupbindxx where ResGroupID=‘1119141912216000xxx5’;

        查询这些语句提供的结果,证明在这个资源组id没有重复的,也没有不匹配的地方,因此问题发生的地方与角色权限和资源组不匹配没有关系。

3、 资源组互相冲突的验证

        针对这一点,我们有两种可行的思路,

        第一,是在数据库中查询数据是否有重复或不对的地方,

        第二,是新建一个角色,配置资源组,在客户端观看效果查找有冲突的资源组。

(1)查询数据是否有重复或者错误

        通过排查,系统中没有其他资源组跟’1119141912216000xxx5’重复使用。

(2)新建角色,配置资源组

        新建角色,把所有的的资源都选上,发现,问题依旧;

        然后只选择“北七星镇....”以及下面的资源,可以正常显示。因此基本可以断定,确实有数据出现冲突!需要一步步找出问题点。

        经过一项项对比测试,找到了一个资源组: “马池口地区”下的“昌平区马池口村定向安置房项目”,只要选择上这个资源组,显示就不正常。如下图示:

        若不选择这一项,能够正常显示,选上以后,这一项不能显示,同时"未来星...."这个资源组也显示不出来。

        经过查验,这个资源组的ID是:1111402122160000034。

        显然这个ID号是19为,而我们系统的资源组的ID号一般是20位的。

        经过跟客户沟通,客户说是他们自己在数据库中做了改动。

三、故障解决

1、故障解决  

        发现客户在数据库中直接操作,那就基本上定位问题。这种情况,我们就叫误操作导致的脏数据,必须重新建这些数据。解决方法有两种:
        (1)彻底解决,把数据恢复到修改数据库以前,然后再通过软件添加

        (2)把可能得数据找出来,然后对这些数据进行处理

        目前数据库中有上万条数据,恢复到修改之前的方式,只能往后放。于是逐项排查系统中是否还有其他数据,又找到3条数据,位数都是19位。于是,让客户把这几项数据处理掉。

        然后,通过userA和userB登录,查看目录资源树,正常了;

        再用其他用户登录,也显示正常了。

        问题解决!

2、问题总结和反思 

        这个问题完全是由于客户直接操作数据库引起的。因此,维护人员在给客户培训的时候,一定不要让客户直接更改数据库。数据库正常情况下尽量不要开发给客户的,但是,若由于特殊情况,客户需要知道,那么强烈建议客户只是查看数据库,而不要修改数据库。

若想了解更多,可以“点击” 下面的 “威迪斯特 微信名片”,就会出现我的二维码

这篇关于视频监控平台-国标28181目录资源树显示不全问题的解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/832535

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

resultMap如何处理复杂映射问题

《resultMap如何处理复杂映射问题》:本文主要介绍resultMap如何处理复杂映射问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录resultMap复杂映射问题Ⅰ 多对一查询:学生——老师Ⅱ 一对多查询:老师——学生总结resultMap复杂映射问题

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S