问题

开发环境,之前一直正常,某天突然用tomcat启动项目后时不时报如下错误:

java.lang.OutOfMemoryError: unable to create new native thread

环境介绍:

项目是用的 Eclipse+Tomcat + activeMQ

activeMQ用的本地的windows版本,黑窗口启动。

具体这个错误的上面报出的大异常是 JMS Exception。

因为是用的 spring,所以MQ消息处理部分报错都是先抛出 JMSException,然后往下看才是  内存溢出,不能创建本地线程。

具体显示异常发生在 MQ接收消息的 监听器中的:  session.createConsumer(session.createQueue(queueName))  以及 onMessage方法中。

尝试解决无果:

因为 onMessage方法中用了多线程处理业务逻辑,所以一开始 主观认为是  线程创建太多导致的,于是各种百度,找到的方法都是说

虚拟机内存配置等等。结果各种配置Eclipse都无效,很是郁闷。

尝试解决正确分析:

然后和其他同事比较Eclipse等环境配置,首先确保配置一样的情况下,还是一样有问题。

分析

出问题的部分代码一直都未改动,之前整个办公环境都是正常的,

现在同样的代码,同样的环境配置,别人那还不出问题。

那就有可能是 和其他人不一样的地方出的问题,想到MQ是用的自己本机的,报的错误也是MQ部分的,虽然是在Eclipse中报错,但已经排除了Eclipse环境的问题,那么是不是本机的MQ有问题。

真正解决方法:

于是,关掉MQ,找到MQ的目录,查看data目录下的几个log日志文件,发现里面果真都报错了,于是清空data目录下的所有东西,重新去bin目录中启动bat文件。

在Eclipse中重启项目,问题解决了。

启示:

1、大家说的不一定就是对的,百度说的不一定就全面准确,具体问题具体分析很重要。

2、遇到难以解决的问题,如果百度等通用方法无效,那么要回过头仔细分析 报错的异常提示,注意整个异常的提示,尤其是开头部分,对提示中的多个点都进行分析尝试往往能够找到问题。

3、找问题还是用一步一步的逐个排除法来缩小范围比较靠谱。【最好有明确的分析 排除 顺序,先排除容易操作的】

4、除了Eclipse 和项目外,外部依赖的一些其它 小服务 也可能是产生问题的罪魁祸首。

java.lang.OutOfMemoryError: unable to create new native thread 居然是MQ问题的更多相关文章

  1. java.lang.OutOfMemoryError: unable to create new native thread如何解决

    工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 ( ...

  2. JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。

    一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...

  3. spark java.lang.OutOfMemoryError: unable to create new native thread

    最近迁移集群,在hadoop-2.8.4 的yarn上跑 spark 程序 报了以下错误 java.lang.OutOfMemoryError: unable to create new native ...

  4. 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 创建线程数公式(MaxProcessMemory - JVMMemory – ReservedOsMemory)

    剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutO ...

  5. 解决java.lang.OutOfMemoryError: unable to create new native thread问题

    解决:1.升级JVM到最新的版本 最新版本的JVM一般在内存优化方面做的更好,升级JVM到最新的版本可能会缓解测问题2.从操作系统层面去解决 使用64位操作系统 如果使用32位操作系统遇到unable ...

  6. 关于“java.lang.OutOfMemoryError : unable to create new native Thread”的报错问题

    好吧 我发誓这是postgresql的Mirroring Controller的RT测试的最后一个坑了. 在这个RT测试的最后,要求测试Mirroring Controller功能在长时间运行下的稳定 ...

  7. 记一次内存溢出java.lang.OutOfMemoryError: unable to create new native thread

    一.问题: 春节将至,系统访问量进入高峰期.随之系统出现了异常:java.lang.OutOfMemoryError: unable to create new native thread.在解决这个 ...

  8. [java] [error] java.lang.OutOfMemoryError: unable to create new native thread

    前言 最近公司的服务器出现了oom的报错,经过一番排查,终于找到了原因.写下这篇博客是为了记录下查找的过程,也是为了帮助那些跟我门遇到的情况相同的人可以更快的寻找到答案. 环境 系统:linux(ce ...

  9. spark大批量读取Hbase时出现java.lang.OutOfMemoryError: unable to create new native thread

    这个问题我去网上搜索了一下,发现了很多的解决方案都是增加的nproc数量,即用户最大线程数的数量,但我修改了并没有解决问题,最终是通过修改hadoop集群的最大线程数解决问题的. 并且网络上的回答多数 ...

  10. 再谈 Unlix (Linux, AIX, HPUX) 上 Java 的 java.lang.OutOfMemoryError: unable to create new native thread

    首先很容易排除是 程序问题 内存用了很少,64 位 Java也没有内存限制,线程也不多,-Xss 堆栈也没人会配置很大. 那么肯定是 limit 不足引起 配置 ulimit 就可以了,问题看起来很简 ...

随机推荐

  1. linux下监控某个目录是否被更改

    需求:对一个目录(比如/data/test)进行监控,当这个目录下文件或子目录出现变动(如修改.创建.删除.更名等操作)时,就发送邮件!针对上面的需求,编写shell脚本如下: [root@cento ...

  2. Linux下selinux简单梳理

    在linux环境下执行某些程序时,偶尔会遇到来一个关于selinux的强制模式不可执行的情况,这种情况下需要关闭selinux或者将enforcing改为permissive模式后才能进行执行.sel ...

  3. nginx的access.log文件详解

    事实证明,日志文件真的是很重要很重要的.能够帮助我们快速的定位问题,并且知道用户访问的状态,浏览器,Ip,接口地址等,简直可怕.. 一.nginx的access.log(1)对博主而言,日志文件存放在 ...

  4. SQLServer 中发布与订阅

    在对数据库做迁移的时候,会有很多方法,用存储过程,job,也可以用开源工具kettle,那么今天这些天变接触到了一种新的方法,就是SqlServer中自带的发布与订阅. 首先说明一下数据复制的流程.如 ...

  5. Python练习-8

    1,复习 ascii:字母,数字,特殊字符:1个字节,8位 Unicode:16位 两个字节 升级 32 位 四个字节 utf-8:最少一个字节 8位表示. 英文字母 8位 1个字节 欧洲16位,2个 ...

  6. NEWBE CRALWER 产品需求文档

    1.产品概述 本产品是学霸软件系统的爬虫部分,由NEWBE团队负责.主要任务是从网上爬取出相关数据后提供给C705组使用. 2.产品的发展经历 2.1 产品的发展经历 本产品从2014.10.29开始 ...

  7. 《Linux内核分析》第八周

    <Linux内核分析>第八周 PART ONE 知识点总结 一.进程切换的关键代码switch_to 1.进程调度与进程调度的时机 (1)进程分类: I/O型(执行块,频繁) CPU型(大 ...

  8. Oracle的安装与配置

    好久不来博客园了,有种熟悉而又陌生的感觉. 今天我装一下Oracle数据库,从头开始,因为昨天在虚拟机装了,不能用,卸掉了,系统也卸掉了,今天重新装,包括系统. 系统装好了,Oracle准备好了. 这 ...

  9. 第三个Sprint ------第十一天

    四则运算APP推广: 1通过微信公众平台推广APP,写一片软文,然后推送出去.分享朋友圈.QQ空间. 2通过微博推广APP,@各微博大户. 3让之前内侧的同学转发给自己的小弟小妹或者侄女侄子! 总结: ...

  10. Eclipse频繁崩溃问题待解决

    ---------------------------Eclipse---------------------------Java was started but returned exit code ...