Applet need call out.flush()

解决方案 »

  1.   

    Applet(DataInputStream)_____请求_____Servlet(DataOutputStream)在多线程中有没有实现对数据同步操作。就是控制某一数据不让多个线程同时读或取。
      

  2.   

    to wangtaoyy: out.flus()存在。
    to GJA106:
       Servlet本身是多线程的,故Servlet程序未显示实现Seriabalb.
       Servlet收到客户端Applet发来的请求后,就通过数据库连接池
       查询相应数据,由于是查询操作,我感觉不会造成表锁定。然后,
       Servlet将数据放入输出流,Applet从输出流中得到输入流.在这过程中,哪一步需要控制数据不被多线程读取啊.而且,客户方几十台机器,并发
    请求很常见.
       
      

  3.   

    问题可能发生在:
    Applet构造的数据输入流没有得到响应
    没有得到响应的输入流显然造成
    线程的阻塞。说得不对,请参考。
      

  4.   

    错误现象没看懂,如果请求处理都在一个方法中完成且没有用到servlet的成员变量就没有同步的问题。
      

  5.   

    1: 公用处理方法:doGet()
    2: 确定没有用到Servlet成员变量。
    问题产生是多个客户同时请求包含Applet的页面
    Applet向Servlet请求数据。
    同时,存在这种情况,即含Applet的页面还没有显示出来时
    客户又点击了其它链接,周而复反,控制台上就显示出
    Servlet线程锁定的信息。
    注:单机测试,不会造成线程锁定
    十几个客户同时反复点击,时间一长,故障就产生!
      

  6.   

    请原谅我的好奇心,呵呵,这个线程锁定的信息是指什么啊?输入流没有得到响应是指applet还没把请求写给servlet就被stop了?
      

  7.   

    输入流没得到响应,指Applet没有收到来自Servlet的输出流。
      

  8.   

    Applet请求Servlet的部分代码:
    try{
        URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
          URLConnection conn=reqURL.openConnection();
          InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
          DataInputStream din=new DataInputStream(in);
          canvas.getBuildList().loadBuilds(din);
          din.close();
          in.close();
        }catch(Exception exp){
          exp.printStackTrace();
          
        }
      

  9.   

    Applet请求Servlet的部分代码:
    try{
        URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
          URLConnection conn=reqURL.openConnection();
          conn.getOutputStream().flush();//试试
          InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
          DataInputStream din=new DataInputStream(in);
          canvas.getBuildList().loadBuilds(din);
          din.close();
          in.close();
        }catch(Exception exp){
          exp.printStackTrace();
          
        }
      

  10.   

    conn.getOutputStream().flush();//试试
    这个应该在Servlet构造输出流时执行的吧。
    关注。