org.logicalcobwebs.proxool.ProxoolException: Unexpected prototyping problem

報錯異常:

[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.csdn.net/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,所以每次對該壓縮包抽詞是即可報內存溢出了。

 

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章