Error creating bean with name 'memcachedClient'...java.lang.OutOfMemoryError

摘要:
1,Tomcat启动报错例如以下:Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'memcachedClient'definedinfile[/usr/local/apache-tomcat-6.0.37_6500/webapps/trade_service/WEB

1,Tomcat启动报错例如以下:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memcachedClient' defined in 

file [/usr/local/apache-tomcat-6.0.37_6500/webapps/trade_service/WEB-INF/classes/META-INF/spring/springContext_memcached.xml]: 

Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method 

[public net.rubyeye.xmemcached.MemcachedClient net.rubyeye.xmemcached.XMemcachedClientBuilder.build() throws java.io.IOException] 

threw exception; nested exception is java.lang.OutOfMemoryError
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod

(ConstructorResolver.java:581)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod

(AbstractAutowireCapableBeanFactory.java:1015)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance

(AbstractAutowireCapableBeanFactory.java:911)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean

(AbstractAutowireCapableBeanFactory.java:485)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean

(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton

(DefaultSingletonBeanRegistry.java:225)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference

(BeanDefinitionValueResolver.java:322)
        ... 44 more
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public 

net.rubyeye.xmemcached.MemcachedClient net.rubyeye.xmemcached.XMemcachedClientBuilder.build() throws java.io.IOException] threw 

exception; nested exception is java.lang.OutOfMemoryError
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate

(SimpleInstantiationStrategy.java:169)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod

(ConstructorResolver.java:570)
        ... 53 more
Caused by: java.lang.OutOfMemoryError



,

2,看到创建memcache clent报错,立即去memcacheserver查看一下,memcache正常执行,内存也足够剩余。

[root@localhost ~]# tail -f /tmp/memcache_error.log 
<287    0x00 0x00 0x00 0x00
<287    0x00 0x00 0x00 0x00
<287    0x00 0x00 0x00 0x00
>287 Writing bin response:
>287   0x81 0x0b 0x00 0x00
>287   0x00 0x00 0x00 0x00
>287   0x00 0x00 0x00 0x06
>287   0x00 0x00 0x00 0x00
>287   0x00 0x00 0x00 0x00
>287   0x00 0x00 0x00 0x00
...
[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          5938       3368       2570          0        195        296
-/+ buffers/cache:       2876       3061
Swap:         7935          0       7935
[root@localhost ~]# 
问题在哪里?再看看日志里面有误error或者warning信息:
[root@localhost ~]# cat  /tmp/memcache_error.log  |grep warning
[root@localhost ~]# cat  /tmp/memcache_error.log  |grep error
[root@localhost ~]#
一点错误信息也没有,推断问题不是出在memcache这一块。

3,去check tomcatserver
[root@localhost logs]# free -m
             total       used       free     shared    buffers     cached
Mem:         18022      16943       1078          0        104        675
-/+ buffers/cache:      16162       1859
Swap:        20031       8012      12019
[root@localhost logs]# 
仅仅剩余1个G的内存,去改动一下tomcat的内存配置:

[root@localhost bin]# vim catalina.sh

#JAVA_OPTS="-Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=768m"
# add by wangqi on 20140614
 JAVA_OPTS="-Xms512m -Xmx512m -Xss128K -XX:PermSize=64m -XX:MaxPermSize=256m"
再重新启动tomcat,看到还是报一样的错误。

4,回到应用本身去查问题

跟开发者一起排查,看到是trade_service启动了过多的多余的事务,把tomcat的内存耗光了,所以关闭掉多余的事务,再启动tomcat,就不会再报错。

感慨:就跟大部分web应用卡,页面登录不上去,对应过慢非常多是出在效率低下的sql上面,tomcat启动不起来,内存溢出大部分也是在java代码上面,大家须要写代码或者sql须要慎重,且写且慎重。

免责声明:文章转载自《Error creating bean with name &amp;amp;#39;memcachedClient&amp;amp;#39;...java.lang.OutOfMemoryError》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle 数据库监听配置Linux下安装mysql和curl扩展下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IBM MQ 集成CXF 发送JMS 消息

1.修改wsdl 协议类型为 jms 替换 <soap:binding style="document"transport="http://schemas.xmlsoap.org/soap/http"/>为 <soap:binding style="document"transport="http://cxf.apache.or...

spring 定时任务

1.定时任务实现方式有很多,java自带的定时器可以,但是不好用,基本不用。如果需求较为简单,可以考虑 Spring Task。如果更为负责,则可以考虑重量级的框架quartz。今天重点介绍quartz,quartz和 Spring 的集成方式有多种,有RAM 和 JDBC 方式。RAM方式可以理解为静态的方式,任务和触发方式均可配置式,JDBC方式可实现...

@Value("#{}")与@Value("${}")的区别以及用法

1 packagecom.ieou.capsule_basic_info.util; 2 3 4 importorg.springframework.beans.factory.annotation.Value; 5 importorg.springframework.stereotype.Component; 6 importorg.spr...

springboot项目:扫描不到其他模块的包 Parameter 0 of constructor in com.zjxf.repository.UserRepository

报错信息如下: *************************** APPLICATION FAILED TO START *************************** Description: Parameter 0 of constructor in com.zjxf.repository.UserRepository req...

SpringMVC详解

SpringMVC学习笔记----一、SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and c...

Spring声明式事务的配置~~~

/*2011年8月28日 10:03:30 by Rush  */ 环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法: 点击项目右键->Build Path->Add librarys:  打开Add Libraries对话框,然后选定 MyEclipse...