捷迅软件(苏州)有限公司,Agile Software Corp(Nasdaq 代码: AGIL)研发中心。总部位于美国硅谷,是世界最大的PLM(产品生命周期管理)软件供应商之一,被MSI列为“全球百强软件供应商”。现委托苏州立达人力资源服务有限公司猎取Java高级程序员和系统分析员
联系:[email protected]

解决方案 »

  1.   

    为什么要将连接的方法同步呢,客户端多个线程在run,EJB那里也会有多个服务产生配合你啊,理论上是
    服务器重启,客户端也应该重启才对啊祝你好运!
      

  2.   

    加不加锁都可以,只不过有一次我加锁了,结果可以了,不过之后又不行了,很不稳定,不知大家哟什么解决方法!
    我的初始化EJB Server 的程序大概是这样的
    pubic void initEJBServer(){
      synchronized(this){
         Context initContext = new InitContext(prop);
         home = initContext.lookup(JNDI_NAME);
         remote = home.createRemote();
     }
    }
      

  3.   

    和这个没有关系,如果你的server重新启动了,你对应的客户端久也得从新启动。不知道你的server是什么,如果是jboss or weblogic, 他们也是用java编写的,其实就是运行在另一个jvm上面的程序。如果他们重新启动了,会重新加载系统属性,你的client还是旧的,读不到很正常。
      

  4.   

    您的意思是由于client和服务器处于同一个jvm上,所以当服务器失效后,重启,将影响到client的lookup这个服务器?
      

  5.   

    client 合server不载同一个jvm上面。
      

  6.   

    我的客户端要多线程调用EJB(非servlet)!
    如果EJB服务器停掉,我将循环连接服务器!现在问题出来了,当服务器重新启动后,我的home接口,lookup,却获得,no suspended available 的错误,我把连接服务器的方法加锁了(synchronized),重新启动客户端吧!应该是你的客户端已经从服务器获得了一个引用,
    服务器重新启动后,客户端的引用无效!!
    不知道你的客户端怎么写的!!