【问题标题】:Weblogic Server PermGen errorsWeblogic Server PermGen 错误
【发布时间】:2013-05-16 19:39:30
【问题描述】:

当我创建数据源并尝试附加到目标服务器时,我收到以下错误,在 Weblogic 10.3.6 中我需要在哪里增加空间?任何帮助都是非常可观的

控制台遇到以下错误 weblogic.application.WrappedDeploymentException:PermGen 空间位于 java.lang.ClassLoader.defineClass1(本机方法)在 java.lang.ClassLoader.defineClass(ClassLoader.java:791) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在 oracle.jdbc.driver.T4CTTIdcb.fillupAccessors(T4CTTIdcb.java:399) 在 oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:208) 在 oracle.jdbc.driver.T4CTTIdcb.receive(T4CTTIdcb.java:146) 在 oracle.jdbc.driver.T4C8Oall.readDCB(T4C8Oall.java:844) 在 oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:358) 在 oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) 在 oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) 在

【问题讨论】:

  • 您是否编辑过 setDomainEnv.sh 以增加 MaxPermSize?

标签: weblogic application-server weblogic11g oracle-fusion-middleware


【解决方案1】:

使用 Sun JDK 时出现 PermGen Space Out-of-Memory 错误

错误:8589284 添加:2011 年 5 月 6 日 平台:全部

当 Sun JDK 用作 SOA 托管服务器的 JVM 时,Oracle 建议使用以下内存设置。如果未使用正确的内存设置,对任务详细信息应用程序(人工工作流)的重复操作可能会导致 PermGen 空间内存不足错误。

为:

对于 UNIX 操作系统,打开 $DOMAIN_HOME/bin/setSOADomainEnv.sh 文件。

对于 Windows 操作系统,打开 DOMAIN_HOME\bin\setSOADomainEnv.cmd 文件。

增加以下值:

PORT_MEM_ARGS="${PORT_MEM_ARGS} -XX:PermSize=256m -XX:MaxPermSize=512m

【讨论】:

    【解决方案2】:

    在将 WLS 作为 Windows 服务运行时,我遇到了类似的问题,即使在我的服务创建脚本中正确设置了 MEM_ARGS 之后也是如此。我终于通过更新一些 Windows 注册表项来解决它:

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wlsvc yerdomain_yerserver\Parameters] [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\wlsvc yerdomain_yerserver\Parameters] [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\wlsvc yerdomain_yerserver\Parameters]

    不知道为什么有 3 个条目,但是在更新所有条目并重新启动服务后,一切都恢复正常了。

    【讨论】:

      【解决方案3】:

      您应该按照@better_user_mkstemp 所说的去做,但我也忍不住注意到您的数据源存在严重问题,具体来说是一个 Oracle 数据源,请尝试访问 http://your_server:7001/console/dashboard并开始监控您的数据源,看看这是哪一个,然后尝试使用this documentation对其进行调整

      【讨论】:

        【解决方案4】:

        就我而言,解决方案是编辑DOMAIN\bin\setDomainEnv.cmd 文件。在服务器按预期启动之前进行了以下修改:

        • 增加了-Xms-Xmx
        • -XX:PermSize-XX:MaxPermSize 的值也增加了

        最后,但可能是最重要的

        • 为了正确识别我的 JVM,if "%JAVA_VENDOR%"=="Sun" ( 条件已更改为 if "%JAVA_VENDOR%"=="Oracle" (

        在最后一次修改之前,内存更改仅部分反映到初始化的 JVM,这意味着有关 PermGen Space 的参数被简单地忽略了。

        【讨论】:

        • 我会尝试这种方法。
        猜你喜欢
        • 2017-04-02
        • 2015-06-21
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        • 2015-03-15
        • 2010-09-10
        • 2012-10-04
        相关资源
        最近更新 更多