【问题标题】:Facing a memory leak issue due to internal weblogic objects由于内部 weblogic 对象而面临内存泄漏问题
【发布时间】:2011-04-25 20:41:14
【问题描述】:

我有一个在 Weblogic 10 应用服务器上运行的应用。

由于内部 weblogic 对象,我面临内存泄漏问题。以下类对象占用了大量内存并且没有将其清除。谁能帮我弄清楚这些类的用途以及可能导致泄漏的原因是什么?谷歌搜索没有多大帮助。

weblogic.store.xa.internal.PersistentStoreXAImpl 

谢谢, 席德

【问题讨论】:

    标签: java memory memory-leaks weblogic


    【解决方案1】:

    这是支持 XA 的持久存储的内部 WL 类。如果您使用的是 JDBC,请检查您的数据库是否已满。如果您使用默认存储或文件存储,请检查您的文件系统是否有错误或查看其是否已满。

    这些不应该太多。你在你的应用程序中使用 JMS 吗?也许您还有配置问题。尝试通过 Oracle 支持开票,或者如果您可以与我分享代码和配置,您可以通过 Jeffrey.west@oracle.com 给我发送电子邮件。如果您有支持合同,您应该打开一个案例,而不是给我发电子邮件。如果您打开一个案例,请将 SR# 发邮件给我,我可以查看它。如果您没有支持合同,请将您的问题的详细信息通过电子邮件发送给我...

    【讨论】:

    • 我们没有与 Oracle 签订支持合同。你能告诉我如何知道文件系统是否有错误吗?此外,没有给出错误的代码,是堆转储显示此类占用 32% 的内存。
    • 您使用的是什么版本的 WLS,在什么操作系统上?
    • 我们在 Linux 机器上使用 Weblogic 10.3。
    【解决方案2】:

    要添加到Jeff's answer,这是the persistent store used by Weblogic,用于各种子系统,例如 JMS、JTA 甚至 Web 服务和 EJB 计时器

    如果您没有在您的实例中配置它,它通常应该默认为位于

    的 Filestore
    bea_home\user_projects\domains\domain-name\servers\server-name\data\store\default
    

    因此您可以在那里检查文件系统磁盘空间问题。如果您有能力关闭您的 Weblogic,您是否可以清除上面的文件系统 - 或检查对象持久存在的时间?

    【讨论】:

      【解决方案3】:

      “XA”对我来说通常意味着“两阶段提交”。我认为这是一个用于两阶段提交到持久存储的 JDBC 驱动程序。

      我不明白为什么不清理这些。你怎么看堆。什么工具告诉你这是泄漏的来源?会不会是你的类没有清理持久性资源?

      【讨论】:

      • 当堆使用率为 87% 时,我正在使用从 Weblogic 服务器中提取的堆转储。我正在使用 Eclipse Memory Analyzer Tool 来分析堆转储。当你说持久性资源时,它不是与数据库有关吗?对不起,我对Weblogic不太熟悉。另外,文件存储是如何加载到 Web 应用程序上下文中的?
      【解决方案4】:

      当启用 JDBC 分析器时,我们曾经看到过类似的问题。您是否在应用程序或 WebLogic 级别启用了任何分析?

      【讨论】:

      • 是的,我们正在使用 Ecipe 的内存分析工具 (MAT)
      猜你喜欢
      • 1970-01-01
      • 2013-12-05
      • 2020-12-21
      • 2016-07-28
      相关资源
      最近更新 更多