vfp调用dll动态库有没有超时的说法

無法替代 2017-09-13 10:05:04
我的问题是这样的 做一个接口 就是两个软件数据交换的接口 介绍一下情况
软件A:我自己的软件
软件B:别人的软件
软件B动态库: 软件B提供的动态库

流程:软件A把数据发送给软件B动态库,动态库把数据发送给软件B,软件B把处理好的数据发送回动态库,动态库把处理好的数据返回给软件A

软件A数据库←→软件A←→软件B动态库←→软件B (动态库和软件B之间的流程不清楚)

动态库这么用的

declare integer interface in interface.dll string inputdata,string @outputdata

现在有两个问题:
1.软件B处理好数据 把数据返回给动态库 这个过程中断网了 动态库没有收到返回数据 软件A也收不到 这样就会造成软件A的数据与软件B不一致的情况 (动态库和软件B之间可能没用事务或者因为一些原因没用事务) 这个情况有没有好的处理办法

2.超时问题 遇到两个软件数据不一致的情况 经查 可能是因为超时问题
动态库在被调用时有一个日志 是动态库自己写的 格式如下

2017-09-08 09:02:49 || 1.调用卡相关动态库!
2017-09-08 09:02:50 || 1.调用卡相关动态库成功!TE0014403|0|||||||00-1B-B9-BB-B3-84|
2017-09-08 09:02:50 || 2.调用hxptwebservice服务!
2017-09-08 09:02:50 || 2.调用hxptwebservice服务成功

调用到调用成功 有个时间 正常情况 时差在两三秒内吧 软件A都能接收到动态库返回的数据
如果时差超过5秒(5秒是估计 具体也不知道) 软件A收到的返回数据是空
但是动态库5秒后又收到了软件B的数据 这样就会造成软件B返回的数据返回给了动态库 但是因为超时 没有返回给软件A

2017-09-08 09:03:39 || 1.调用卡相关动态库!
2017-09-08 09:03:48 || 1.调用卡相关动态库成功!
2017-09-08 09:03:48 || 2.调用hxptwebservice服务!
2017-09-08 09:03:48 || 2.调用hxptwebservice服务成功!<?xml version="1.0" encoding="UTF-8"?


调用动态库是不是有超时的说法? 如果有 能不能控制这个时间? 或者其它方法来处理这个数据不一致的问题(有问题要即时处理 顾客不能等)
...全文
452 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
silandn 2017-10-04
  • 打赏
  • 举报
回复
可以采用 _vfp.AutoYield=.F.
無法替代 2017-09-25
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
调用动态库没有超时的说法 但 hxptwebservice 显然是使用了 http 协议,这个是有超时一说的
webservice是有超时 可能是他们动态库的问题 我只是想知道有没有超时 举个例子:是不是调用动态库10秒就得返回信息? 还是说20秒 到底有没有这个时间 如果1分钟没返回 我的程序就一直等着? 感觉可能有个超时的样子
無法替代 2017-09-25
  • 打赏
  • 举报
回复
引用 1 楼 apple_8180 的回复:
1、程序开头加 _vfp.AutoYield=.F. 试试。 2、动态库和程序B需要连网或连接什么吗?要不怎么返回时间不固定? 3、能将接收的数据做个序号吗,或者说动态库支持吗?每次动态库返回数据都加上序号,程序A收到时比较一下之前收到的序号。
1.这个偶尔一次 可能一周才会碰到一次 不好测试 2.动态库要连他们的数据库 通过专线 这么说吧 运营商架设的一个大型VPN 各地的客户通过专线连接 3.这个是别人的动态库 增加这个序号功能应该是不可能的 人家又不听咱的 我估计还是他们自己的问题吧 我现在是出问题了 给出提示让操作人员手工对账 把两边的数据对一致 基本上也能解决问题
liups 2017-09-25
  • 打赏
  • 举报
回复
同意1楼意见
xuzuning 2017-09-16
  • 打赏
  • 举报
回复
调用动态库没有超时的说法 但 hxptwebservice 显然是使用了 http 协议,这个是有超时一说的
十豆三 2017-09-14
  • 打赏
  • 举报
回复
1、程序开头加 _vfp.AutoYield=.F. 试试。 2、动态库和程序B需要连网或连接什么吗?要不怎么返回时间不固定? 3、能将接收的数据做个序号吗,或者说动态库支持吗?每次动态库返回数据都加上序号,程序A收到时比较一下之前收到的序号。

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧