问题:

开发环境,之前一直正常,某天突然用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. Python-集合-17

    ''' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复. {} ''' set1 = set({1,2,3}) # set2 = {1,2,3,[2,3],{'name':'a ...

  2. 11.13 Daily Scrum

    今天在实现餐厅列表时,原来使用的百度地图poi搜索接口无法返回餐厅的具体信息. 经过一番周折,找到了一个返回餐厅url的接口.我们调整了一下实现,在点击餐厅列表的某一项点击直接跳到和该餐厅信息有关的网 ...

  3. 【CV】CVPR2015_A Discriminative CNN Video Representation for Event Detection

    A Discriminative CNN Video Representation for Event Detection Note here: it's a learning note on the ...

  4. <面向对象程序设计>课程作业一

    Github链接 在看完这次的作业要求后我整个人是混乱的,因为作业要求把不同的函数放在一个main函数中:我们之前也是进行了函数分离,但是是放在了不同的文件中.如果要改的话相当于重写(而且这两种形式其 ...

  5. David Silver强化学习Lecture1:强化学习简介

    课件:Lecture 1: Introduction to Reinforcement Learning 视频:David Silver深度强化学习第1课 - 简介 (中文字幕) 强化学习的特征 作为 ...

  6. taskService 流程任务组件

    act_ru_task:任务表act_ru_identitylink:权限表(流程定义和用户组(用户)之间的权限数据)act_ru_variable:参数表act_hi_attachment:任务附件 ...

  7. [读书笔记]SQLSERVER企业级平台管理实践读书笔记02

    记录一下 这一块 join的理解了 再完善过来. 1. Statistics的用法: 清空执行计划用的命令 dbcc freeproccache 清空buffer pool 里面的缓存命令 dbcc ...

  8. 最实用的深度学习教程 Practical Deep Learning For Coders (Kaggle 冠军 Jeremy Howard 亲授)

    Jeremy Howard 在业界可谓大名鼎鼎.他是大数据竞赛平台 Kaggle 的前主席和首席科学家.他本人还是 Kaggle 的冠军选手.他是美国奇点大学(Singularity Universi ...

  9. delphi中怎么获取服务器的时间

    下面是公司的代码,调整成ADO控件,给你参考一下: function GetNetDate: TDateTime; begin with TADOQuery.Create(nil) do begin ...

  10. asp.net 的三种开发模式

    一, Web Pages 是三种创建 ASP.NET 网站和 Web 应用程序的编程模式中的一种. 其他两种编程模式是 Web Forms 和 MVC(Model View Controller 模型 ...