shi0299 2013-07-04 13:39 采纳率: 0%
浏览 3384

java以webservice形式向发送远程数据,发送时出现重复数据,如何解决?

我是用java从本地数据库中(oracle)提取数据后,封装,发送给远程服务器,然后远程服务器会返回发送结果代码。
我在主表中的每条数据都有一个字段显示其发送次数,还有一个字段显示发送结果。再有一张结果表,专门存储每条数据每次发送的结果和错误原因等详细信息。两张表是一对多关系。主表对每条数据是唯一的,当发送完,次数字段会增加1,发送结果也会更新 最新一次数据发送的结果。平时数据量小的时候完全没有问题,比如:第一次发送成功后,服务器返回1,代表发送成功。如果再发,服务器那边会校验已经发送过这条数据,就会返回2,代表数据以存在,况且我发送前有校验,当前数据如果在主表中结果字段里是1的,就不再发送。
我的程序是通过计划任务运行批处理自动执行的,平时都没问题。但有时候,似乎是当数据量大的时候,会出现一条数据同时重复发送了两次。查询主表和结果表后显示:主表发送次数字段为2,结果字段为1(成功),也就是这条数据在同一时间重复发送了两次,第二次是成功发送的。再查询结果表后,也发现有两条信息,每次的返回结果都为1,这两次的发送时间是一模一样的,例如都是05:02:13 (五时2分13秒),也就是两次都成功发送了。
按理说跑着一个程序,不该另外出现一个一模一样的进程重复一起运行和发送啊,但数据确实是重复发送出去了,服务器那边也收到了两条一模一样的数据,因为发送频率是同一时刻,所以那边校验都没起上作用,有用的话第二次肯定返回结果代码2。我觉得是不是缓存问题呢?又或者是同步什么的,我发送的那个方法一直是synchronization来修饰了的。求解决办法。不甚感激啊。

  • 写回答

2条回答 默认 最新

  • weiwuwen 2016-05-09 14:52
    关注

    遇到类似的问题,请问楼主后面解决了吗?如果解决了是怎么解决的?

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮