门禁一卡通管理软件重大问题解决办法

    门禁一卡通管理软件重大问题解决办法

    一、现象:新门禁一卡通管理软件安装后无法使用。

    调试初步结果:DictManager Server端启动正常,但Client端在接收消息时出错,-10038,对不存在的socket进行操作。

    排除法:门禁一卡通管理软件的代码在我的电脑上正常运行,只有在另外一台电脑出异常。

    尝试方法:(1)直接使用ws2_32.dll中的方法(WSADuplicateSocketW,WSASocketW)进行调试,依然是我电脑可以运行,另一台电脑不可运行。

    (2)换成python27和python32寄希望于python库文件(pyd)已修复该bug,问题依旧。

    最终解决方法:卸载掉问题电脑上的TCP/IP协议,然后门禁一卡通管理软件重装。(具体如何卸载,请google)

    二、现象:B栋四楼门禁一卡通管理软件的服务器(4.0服务器)3月7日晚12:48分两个ZKadms进程终止(非僵尸进程),后台主进程变为僵尸进程,没有起到“看门狗”作用,COM进程和DictServer进程运行正常。晚上在A栋五楼12.67(5.0服务器)出现类似情况,后台ZKadms进程最后打印的是取实时事件。

    门禁一卡通管理软件日志分析结果:通过日志发现B栋服务器进程最后心跳时刚结束获取实时事件。A栋服务器进程自动退出之前打印的日志显示,当前设备正在获取实时事件。

    尝试方法:由于门禁一卡通管理软件新固件每次最多同时返回30条事件记录,经过测试事件记录的在门禁一卡通管理软件端的字符串占用的内存空间可能超过预定的2k,导致内存不足,进程退出。

    最终解决方法:暂时将门禁一卡通管理软件原来的2k缓存改为16k,且将原来局部变量改为全局变量,不需要每次获取实时事件时都重新分配内存。

    三、现象:门禁一卡通管理软件安装时,使用内置数据库会出现同步数据库失败问题。

    最终解决方法:调整门禁一卡通管理软件的环境变量顺序,避免net start无法使用。

    四、现象:俄罗斯二次开发客户反馈使用自己的demo不断连接和断开连接控制器,会抛出“试图对保护存储进行读写,这通常说明另外一个存储已被破坏”异常,客户使用虚拟机测试(内存1G)。

    尝试办法:远程查看客户电脑内存的状况,明显是不断增长。

    最终解决方法:修改门禁一卡通管理软件sdk中内存泄露的地方。