oracle里做个触发器,这边更新后同时更新别的数据

解决方案 »

  1.   

    "做一个定时器,TimerTask,定时去请求统一用户管理服务端"
    准备多少时间刷新一次呢?太频繁的话,占用系统资源。
    不够频繁的话,又会使两地数据不一致的几率变大。
      

  2.   

    提个方案供参考:
    1)在数据中心数据库上建立到各个子局的DBLINK;
    2)在数据中心数据库上写一个SP,做各地数据库的更新操作;
    3)应用上有用户数据变更操作时,异步地启动上面的SP。
      

  3.   

    谢谢xiaomad的关注
    这个方案可以采用,但是也许会存在一个问题,政府所做的系统有的时候会为了保证信息安全而把个别重要的数据库服务器不放在互联网上,会放在政府内网或专网上,外网访问不到这个系统,所以才会考虑用webservice和RMI的形式同步数据中心上面的数据。
      

  4.   

    内存数据库不知道是不是满足要求,一个忽然的想法,满足分布式,本地同步
    eXtremeDB,Timesten
      

  5.   

    这些方法实现的都是准实时的同步。主要工作应该有两部分,一部分是对处于内网的数据库中的信息进行操作,另外一个就是统一用户端的工作了。对于前一个问题,可以采用在一台既有外网地址(因为需要统一用户端访问,发布web服务)又有内网地址(这样可以访问内部数据库)的机器上部署一个webservices服务端的方法来操作需要同步的数据信息。当然了,如果你公司想把这个单子的金额提高一些也可以让客户买一台前置机了。对于第二个问题就是做一个webservices的客户端,其中的数据同步这个功能要定时轮巡,这个可以通过编写一个带有main()方法的类来完成。用java类中的timertask或者用操作系统提高的任务(windows中为任务,linux/unix中应该是放在crontab中的)。删除操作要注意的是事物的完整性,也就是说在真正删除统一用户端的数据前一定要判度调用本地webservices中删除接口返回的结果数据是否为成功。如果失败那么整个删除操作都应该回滚的。