我在做数据移植,界面为jsp,单击页面中的移植按钮后,页面会向服务器发送一个请求,然后开始执行大量代码进行数据移植操作,整个移植过程需要几个小时,也就是说页面上会几个小时得不到响应,这种情况下,页面是否会自动重发该请求;因为我分析数据移植的日志发现,运行一段时间后,已经移植过的数据库表,会再次进行移植,日志也变得混乱,这种情况下,肯定会报唯一键冲突的异常,可能的原因就是页面长时间无响应的情况下,自动重发请求了(程序逻辑应该没有问题),造成两个线程同时在执行代码,一前一后,请问高手们,这种重发请求的情况是否存在,该怎么阻止页面重发请求,我用的360浏览器,谢谢!

解决方案 »

  1.   

    不太可能是死锁,比如有A,B,C,D,E,F六张表,程序本来移植到了E表,但突然发现日志混乱,并且又看到A、B等表的移植日志,并且存在大量唯一键冲突的异常,程序又看不出逻辑有问题,只想知道JSP页面有没有可能长时间无响应时自动重发请求,如果有的话该怎么解决?
      

  2.   

    上面的程序用main函数跑,一切正常,由于日志都是用System.out输出,所以用main函数跑的话,日志又无法存成文件,几百兆的日志也不太可能手动到控制台拷贝,项目代码积累了很多年改用Log4j的话也不太现实,用Tomcat跑又有疑似请求重发的问题,现在看到唯一的办法就是设置控制台日志行数不限,但高达几百M甚至上G的日志,不知道控制台是否能存下,尚未测试,有没有高手指点一下,还有没有其他好办法?
      

  3.   

    你的是否可以换种方式,
    启动一个任务,再用Ajax轮询数据移植状态,
    并在页面上显示,可每隔几秒钟。
    其实,你的这个Case,应该对即时性要求不是很高。
    或一些长连接技术。
      

  4.   

    幾個小時不回應   為什麽不把任務放在server執行,前臺直接返回一個結果就行了啊