2011-06-23 24 views
2

我在WebLogic上部署了Web服務,它使用彈性城堡來進行AES 256位解密。這造成了內存泄漏。我得到的幾個日誌是這些java內存泄漏weblogic AES充氣城堡

--------- Detailed Heap Statistics: --------- 
26.9% 429099k 13731188 +429099k java/util/LinkedHashMap$Entry 
16.2% 258003k 2969579 +258003k [C 
11.0% 175144k 3202651 +175144k java/security/Provider$Service 
10.7% 170955k 7294115 +170955k java/util/Hashtable$Entry 
9.5% 152003k 6485501 +152003k java/security/Provider$ServiceKey 
8.3% 132945k 61545 +132945k [Ljava/util/HashMap$Entry; 
4.6% 72660k 3100166 +72660k java/lang/String 
3.1% 49413k 20140 +49413k [Ljava/util/Hashtable$Entry; 
3.0% 47766k 1504343 +47766k [Ljava/lang/Object; 
2.2% 34712k 1481059 +34712k java/util/ArrayList 
0.6% 10035k 29012 +10035k [B 
    1593352kB total --- 

--------- End of Detailed Heap Statistics --- 

我知道這是不夠的信息。對於那個很抱歉。任何人都可以爲什麼這個內存泄漏發生?我特別感興趣的是java/security/Provider $ ServiceKey的內存泄漏問題。 在此先感謝。

+0

'難道有人爲什麼會發生這種內存泄漏?'你是怎麼推斷出有泄漏的?巨大的內存消耗!=內存泄漏。 –

+0

這是因爲內存消耗不斷增加。日誌在垃圾回收之後。 – mujeeb

+2

這並不意味着什麼。內存消耗可能會增加,直到執行次要或主要收集。重要的是你是否抓住了你不應該堅持的東西。這將是一個泄漏。 GC循環後的記錄表明什麼?他們是否表示伊甸園的空間使用率較低,並且終身使用者越來越佔用更多空間? –

回答

1

嘗試安裝提供程序靜態,如果這有什麼區別。

要靜態安裝提供程序,需要將其作爲條目添加到java.security文件中,該文件位於您正在使用的JRE/JDK的$JAVA_HOME/jre/lib/security/java.security文件夾中。查找security.provider.X文件中的行列表,其中X是某個數字。在列表底部添加一行:

security.provider.N=org.bouncycastle.jce.provider.BouncyCastleProvider