【问题标题】:Weblogic 10.3.1 redeploy reloading classesWeblogic 10.3.1 重新部署重载类
【发布时间】:2011-06-04 16:46:27
【问题描述】:

我们有一个类,Foo,它是一个单例并且继承自 Thread。重新部署后我们遇到了一些问题,其中似乎有 2 个线程可能正在运行。每次 Foo 从睡眠中醒来时,我添加了一些打印语句来检索 ClassLoader。打印结果表明实际上已经使用不同的 ClassLoader 创建了该类的另一个实例。

我不知道它是否相关,但 Foo 总是通过 Foo::instance 第一次通过会话 Bean 创建。 Foo 旨在作为服务运行以处理数据库清理。

谢谢

【问题讨论】:

    标签: weblogic-10.x redeploy


    【解决方案1】:

    显然有 2 种重新部署方法。似乎它们都将继续让旧应用程序运行,直到它不再为请求提供服务。这两种方法仅在删除应用程序的方式上有所不同。我们使用的方法保持旧应用程序完全运行,并使用不同的类加载器来加载新应用程序。我们的旧应用程序没有被取消部署。话虽如此,如果您在未显式终止的某处运行线程(事实证明是这种情况),您可能会通过同时执行的不同类加载器加载同一类的 2 个实例。运行 Weblogic 没有死机的线程被认为是不好的做法和不安全的。现在我知道为什么了。

    【讨论】:

      猜你喜欢
      • 2013-05-15
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2023-03-06
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多