org.logicalcobwebs.proxool.ProxoolException: Unexpected prototyping problem

本文记录了一次解决Java应用程序中内存溢出问题的过程,详细分析了导致内存溢出的原因,并给出了具体的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错异常:

[prototyper] null.sweep<105> | Prototype
  org.logicalcobwebs.proxool.ProxoolException:Unexpected prototyping problem
  at org.logicalcobwebs.proxool.Prototyper.buildConnection<Prototyper.java:229>
  at org.logicalcobwebs.proxool.Prototyper.sweep<Prototyper.java:102>
  at org.logicalcowebs.proxool.PrototyperThread.run<PrototyperThread.java:44>
Caused by:java.lang.OutOfMemoryError:java heap space

Exception in thread "DefaultQuartzScheduler_QuartzSchedulerThread"
    java.lang.OutOfMemoryError:Java heap space
Exception in thread "Thread-77968" java.lang.OutOfMemoryError:java heap space
Exception in thread "Thread-77971" Exception in thread "Tribes-mmebershipReceiver"
    java.lang.OutOfMemeoryError:java heap space
Exception in thread "Thread-77969" java.lang.OutOfMemoryError:java heap space
    java.lang.OutOfMemeoryError:java heap space
Exception in thread "HouseKeeper" java.lang.OutOfMemoryError:java heap space
Exception in thread "Thread-77972" java.lang.OutOfMemoryError:java heap space
Exception in thread "Thread-77948" java.lang.OutOfMemoryError:java heap space

 

错看起来像是连接池内存溢出了。

google搜到csdn上liuzhengkang发表的一个帖子,http://topic.youkuaiyun.com/u/20090201/19/e5c1882c-72a9-467d-97d0-937a13a3c11c.html,可是没看到最后有人提出解决方法,最后请教了楼主知道他最后的解决方法是proxool连接池换成c3p0连接池。

 

看了一下配置我们的项目里存在两个地方配置数据库连接,但是一个地方采用c3p0连接池,一个地方采用proxool连接池。

郁闷,客户在用又不敢轻举乱动。

后来发现每次报内存溢出时都发生在控制台打印集群cluster相关内容的时候,错认为是集群的原因。

其实这是一个单独用来建索引的服务器,根本没必要加入到应用的集群里,可是却不知为何也要配上集群。修改配置文件server.xml去掉集群相关配置。

再次运行发现依然报内存溢出错误,而且是在索引同一个用户的文档时。

经过多次测试最后发现原来是:

      一个压缩包rar文件里含有一个33多M的excel文件,当抽词该excel文件时在某一时刻内存居然占到了1个多G,而虚拟机最大内存是1.4G,我们分配给该服务器的内存是1.1G,所以每次对该压缩包抽词是即可报内存溢出了。

 

看来看事情真的不能看表面啊。呵呵


proxool.0.9.1基础上做了修改。 改jar名称为:proxool-0.9.1.1,主要修改为以下3点: 1.解决不能Unregister jdbc driver的内存泄露问题。 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [org.logicalcobwebs.proxool.ProxoolDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2.解决housekeeper内存泄露问题 3.解决与spring配合时,只能在spring的定义中以bean方式加载proxool的问题。(使用servlet方式加载也可以,只是在启动时报错) 加载方式修改为: xmlFile /WEB-INF/conf/proxool.xml org.logicalcobwebs.proxool.configuration.ListenerConfigurator 与spring配合使用时,本加载需要放在spring前面 org.logicalcobwebs.proxool.configuration.ListenerConfigurator org.springframework.web.context.ContextLoaderListener 4.修正了proxool在多线程环境下的的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值