0 0

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

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

2个答案 按时间排序 按投票排序

0 0

引用
因为发送频率是同一时刻,所以那边校验都没起上作用,有用的话第二次肯定返回结果代码2。

服务器端使用该条记录的id做主键往表里放就可以解决这个问题了

2013年7月05日 09:20
0 0

1:首先要知道为什么一条数据,同一时刻会发送2次,看你叙述的那么多,你的本意应该是一条数据只发送一次吧,把这个问题解决了,也就没有下面的事情了;
2:如果上面没法解决,或者发生这种情况是合理的,那么,我建议你给每条数据加一个uuid,一个uuid唯一标识一条数据,已经处理的无须再处理。

2013年7月05日 09:05

相关推荐

    webservice

    ### WebService概述与关键技术 #### 一、什么是WebService? WebService是一种新型的Web应用程序分支,它是一种自包含、自描述、模块化的应用,能够在网络(通常是Web)中被描述、发布、查找以及通过Web来调用。从...

    java xfire调用webservice

    Java XFire调用WebService是一种在Java应用程序中与远程服务交互的方式。XFire是Apache CXF项目的前身,它是一个用于构建和开发Web服务的框架。在本文中,我们将深入探讨如何使用Java XFire来调用本地及远程的...

    WebService简介

    - **性能考量**: 相比于本地调用或同一语言平台内的调用,通过WebService进行远程调用可能会带来额外的延迟。 - **安全性**: 由于数据是以XML格式通过HTTP传输的,因此需要采取相应的安全措施,如HTTPS加密。 - **...

    Java的webservice需要的axis2的所有jar包

    Java的Web服务(Web Service)是一种基于开放标准的、平台无关的通信协议,它允许不同系统之间进行数据交换。在Java中,Apache Axis2是一个强大的Web服务引擎,它提供了高效且灵活的服务创建和部署机制。本篇文章将...

    webservice的axis2开发

    在传统编程中,函数或方法调用发生在同一系统内,而WebService则打破了这一限制,让远程系统能够通过网络调用其他系统的服务。 1.2 WebService、WSDL和SOAP的关系 WebService的核心是SOAP(Simple Object Access ...

    webservice-axis2

    2. **从XML到JSON**:数据格式也在转变,从较为臃肿的XML向更为紧凑的JSON迁移,提高了数据传输的效率。 3. **前端直接与云对话**:越来越多的应用倾向于直接在客户端与云端服务交互,减少了中间层的依赖,提高了...

    websphere helloworld webservice

    【标题】"Websphere HelloWorld WebService"是一个基础教程,主要展示了如何在IBM Websphere应用服务器上创建和部署一个简单的Web服务以及对应的客户端。这个教程对于初学者来说,是理解Web服务工作原理和Websphere...

    Axis2(webservice)详细教程教程

    ### Axis2(webservice)详细教程知识点概览 #### 一、Axis2简介与特性 - **Axis2**是一款由Apache软件基金会维护和支持的开源WebService引擎。它在**Axis1.x**的基础上进行了全面升级和重构,支持**SOAP 1.1**和**...

    java web services教程

    Web Service 的出现解决了跨计算机和跨语言调用的问题,实现了分布式计算和应用程序集成。 **Web Service 的基本组成部分** 1. **SOAP (Simple Object Access Protocol)**:SOAP 是 Web Service 的主体,它使用 XML...

    java面试题及答案

    3. **透明故障恢复**:当某个节点出现故障时自动切换到备用节点。 4. **集群支持**:支持多台服务器协同工作。 5. **后端集成**:连接现有的后端系统。 6. **事务管理**:支持分布式事务。 7. **动态重部署**:在不...

    Java就业面试题264道(独家奉献)

    ### Java就业面试题知识点解析 #### 一、Java基础部分 **1. JAVA的基本数据类型有哪些? String是不是基本数据类型?** - Java的基本数据类型包括:`byte`, `short`, `int`, `long`, `float`, `double`, `char`, 和 ...

    JAVA基础知识点

    - **跨语言支持:** 当需要与非Java环境进行交互时,RMI可能不是最佳选择,此时可以考虑使用WebService等技术。 - **安全性:** RMI默认是不安全的,所以在生产环境中使用时需要注意配置相应的安全策略。 #### 三、...

    2022最新java面试题..对java面向对象得理解;面向对象得程序设计很接近于我们人类自然得思维,相对于面向过程得程序设计

    Java 面向对象的理解: Java 面向对象编程(OOP)是现代软件开发中的核心概念之一,它强调将复杂的问题空间转化为一组相互协作的对象。与面向过程编程相比,面向对象更接近人类自然思维,它使得代码更加模块化,...

    WebService简单应用

    ### WebService简单应用详解 #### 一、Web Service 概述 **Web Service** 是一种标准的、基于网络的应用程序接口(API),它允许不同技术、不同语言编写的软件通过网络进行交互。这种交互通常遵循一系列的技术规范,...

    AJAX深入浅出

    AJAX的核心是利用JavaScript来创建XMLHttpRequest对象,向服务器发送请求并处理返回的数据。 ### 1. XMLHttpRequest 对象 XMLHttpRequest是AJAX的基础,它是浏览器内置的一个对象,用于在后台与服务器通信。通过这...

    JAVA基础技术面试题

    【Java基础技术面试题】 一、MVC设计模式的理解及优缺点 MVC(Model-View-Controller)设计模式是软件工程中常见的架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。...

    Test.rar_xml/soap/webservice_Java_

    标题 "Test.rar_xml/soap/webservice_Java_" 暗示了这个压缩包包含与XML、SOAP(简单对象访问协议)和Web服务相关的Java开发资源。描述中的 "Xml file Xml fileXml file" 虽然有误,但我们可以推断其中可能包含多个...

    Java Dubbo面试及答案

    3. WebService 协议:基于 WebService 的远程调用协议,集成 CXF 实现,提供和原生 WebService 的互操作。多个短连接,基于 HTTP 传输,同步传输,适用系统集成和跨语言调用。 4. HTTP 协议:基于 Http 表单提交的...

    axis2包 使用axis2开发webservice需要的jar包

    在Java世界中,开发Web服务(Web Service)是一种常见的接口通信方式,Axis2是Apache软件基金会提供的一个开源工具,专门用于构建和部署Web服务。它基于SOAP(简单对象访问协议)标准,支持WS-*规范,提供了高效且...

Global site tag (gtag.js) - Google Analytics