[原创]Weblogic内存溢出_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2806 | 回复: 0   主题: [原创]Weblogic内存溢出        下一篇 
geng.zhang
注册用户
等级:少校
经验:854
发帖:27
精华:0
注册:1970-1-1
状态:离线
发送短消息息给geng.zhang 加好友    发送短消息息给geng.zhang 发消息
发表于: IP:您无权察看 2014-11-20 17:27:43 | [全部帖] [楼主帖] 楼主

原因

Weblogic内存溢出的原因可能有以下几点:

  ①WebLogic系统突然大量占用线程 ,这样的话,线程大量被使用,内存大量被消耗

  ②WebLogic诊断文件占用大量的内存

③在java中有垃圾回收,但是在程序中可能有bug,导致垃圾无法进行回收

  ④在64位的系统中使用了32位的jdk(或者相反),导致内存无法充分利用

解决方案:

针对数据源或者线程方面的连接数偏大的话,可以调用监控器进行实施监控,一旦发现不需要的数据源或者进程的话可以将其kill或者关闭。

Java有自动的垃圾回收机制,但是如果系统出现问题的话,也可以进行手动垃圾回收,一下是一个简单的垃圾回收实例:

public class A {
      String str;
      public A(String str){
            this.str=str;
      }
      public String toString(){
            return str;
      }
      protected void finalize() throws Throwable {
            System.out.println(str);
      }
      public static void main(String[] args) {
            A a=new A("你好");
            a=null;
            System.gc();
      }
}


如果系统是64位的话,建议使用64位的jdk,方便内存的使用。

对于诊断文件的增长,可以增加启动参数进行控制:

Dcom.bea.wlw.netui.disableInstrumentation=true




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论