XFSManager的问题及解决方案

XFSManager的问题及解决方案

1.上层调用WFSAsyncOpen返回-43
"1.在调WFSAsyncOpen设备之前已调用了WFMOpenKey打开了注册表,而WFSAsyncOpen内部也要打开注册表,导致WFSAsyncOpen内打开注册表失败,从而返回-43.
WFSAsyncOpen之前的的注册表可能是上层打开的,也可能是上层多线程Open设备,导致Manager同时操作注册表。
"
“最后结论
WFSAsyncOpen是ATMC调用XFSManager的接口,也就是说WFSAsyncOpen是XFS Manager的接口,而调用者是ATMC,返回-43是XFS Manager直接返回,还没到厂商SP这一层,所以此问题SP厂商无法从SP的角度来分析,只能从ATMC调用XFS Manager的流程,时序来分析。
通过日志分析,可能是上层多进程,多线程并发调用WFSAsyncOpen,同步没控制好,使XFS 管理器(XFSMANAGER )在读取注册表时返回一43 的结果。”
"建议解决方案
"
“建议解决方案:
1.APP保证所有注册表操作结束后再Open设备。
2.Open时做一些延时,不是很快打开设备,不并发Open设备。
3.Open失败做3次重试。
4.通过以上4点Open还是返回-43之类的错误(Open返回-43这类错误是指和SP的会话没建立起来,和与SP会话已建立即Open成功,但是设备状态是不正常的有区别),则在ATMC空闲的时候,可以考虑重新Open设备,直到与SP的会话建立即Open成功。”
“对于事件1和事件2,ATMC采用了我司建议解决方案的第3条就解决了问题。
通过这2个事件的处理,可以为我司ATMC或者其他厂家ATMC出现类似问题提供一个经验的借鉴。”

2.上层调用WFSGetInfo返回-41
1.同步连续调用WFSGetInfo,且未等先前的WFSGetInfo结束,则会报-41

3.上层调用EXECUTE命令后返回-15
老发卡机的摄像头的display指令,C端调用后返回-15;SP没有记录此命令,XFSManager的C盘日志文件也没有此命令记录
注意:-15的含义是XFS子系统内部错误,C端的指令和SP的指令不一致所引起的,解决方案是命令的格式、参数等要保持一致

发布了33 篇原创文章 · 获赞 1 · 访问量 3231

猜你喜欢

转载自blog.csdn.net/ysgs129/article/details/105510941