请问,怎么样一个应用算是跨JVM应用?如果建立这种应用程序和测试环境?怎么样一个应用算是在同一个JVM中使用多个类装载器?
  有知情者麻烦解答下,谢谢!

解决方案 »

  1.   

    java打成jar包再不同机器上运行就是夸jvm了。因为java的运行环境就是jvm的环境。安装jdk就是建立这种环境。让同一个类在jvm中使用多个类装载器就需要classloader这个类了,可以去查api文档。
      

  2.   

    同一个运行环境的问题我也遇到过,在ejb中运用本地接口和远程接口的时候。有个这样说法:在同一虚拟机中运用本地接口,在不同虚拟机中调用远程接口。这个问题我也不清晰。等待高手指教。
      

  3.   

    跨jvm指的是跨JVM实例,java中的RMI就可以简单方便的做到同个应用中使用多个类装载器,就是自定义ClassLoader了,然后用自定义的ClassLoader去loadClas、resolveClass呗
      

  4.   

    谢谢各位大侠回答,那请问下,如果我一个有状态的类,如(有状态的EJB),是如何实现在不同JVM间传递状态(或称共享状态的呢))?
      如,我用一个类,保存我的记录的KEY值,但为了减少压力,因此,我将应用发布在不同的服务器上,用同一个数据库,但这时候,我的这处记录的KEY值怎么样保证唯一?
      谢谢?
      

  5.   

    你的 KEY 值是用什么方法生成的?
      

  6.   

    不同的服务器?java和服务器没关系,和他自己的运行环境有关(即jre)。

    如,我用一个类,保存我的记录的KEY值,但为了减少压力,因此,我将应用发布在不同的服务器上,用同一个数据库,但这时候,我的这处记录的KEY值怎么样保证唯一?
    把你的key值对应数据库中的key值,将数据库的key设为主键(主键是唯一的,前提是你把所有数据放在一个表中)。
      

  7.   

    楼上回答是一种采用数据库的方式,但因为采用数据库查找最大值是很耗时的,因此有考虑使用将KEY存在内存中,也就是说,我现在用一个类,加一个类中的字段保持这个KEY值,但在分布式环境中,要能共享这个KEY值,也就是说有点类似于分布式EJB(有状态的),能共享这种状态?
      

  8.   

    ejb的不太懂   ssh的还行  有点类似于hibernate将多主键保存在一个类中,不过那也得去查询数据库啊
      

  9.   

    怎么实现EJB那种远程EJB(有状态的),这种状态传递呢?其实应该就是那种方法可以实现!
      

  10.   

    一个表只查一条记录和一个字段还会慢到不能接受啊。你用有状态的 EJB 访问量大的话,多个服务器之间复制这个 key 来保证同步同样是性能问题。