這兩天一直有一個問題困擾我,在suse10+weblogic(920,923,100,103)上安裝bpm產品失敗。有些版本是創建domain的時候卡在create security information上,有些版本卡在安裝包start weblogic上。但是在winXP+weblogic10.3+bpm安裝成功。
經過幾番GOOGLE,終於找到解決方法,故分享一下解決方案,以后遇到同樣的問題就不用像我一樣沒有頭緒了。
創建域慢啟動慢的特征:創建域到70%時,進程長時間等待(命令行創建時停止在100%處),創建域啟動Weblogic的時候也是長時間停止。
Weblogic在Linux下啟動慢的原因,發現從進程堆來看,線程掛在security相關的隨機數生成上面,是由於JDK的Bug(JDK從 /dev/random讀取‘randomness’經常耗費10分鍾或者更長的時間),查詢了下相關資料,解決辦法可以有如下三種辦法:
1)較好的解決辦法:
在Weblogic啟動參數里添加 “-Djava.security.egd=file:/dev/./urandom” (/dev/urandom 無法啟動)
2)最差的解決辦法:
執行命令 mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random 將/dev/random 指向/dev/urandom
3) 最好的解決辦法:
修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件
將securerandom.source=file:/dev/urandom 修改為
securerandom.source=file:/dev/./urandom
這樣可以解決任何一個域Weblogic啟動慢的問題。
此外由於Weblogic創建域的時候使用的JDK是自帶的jrockit,所以要解決WebLogic在Linux上創建域慢的問題,解決辦法如 下: 修改Linux上Weblogic使用的jdk $JROCKIT_HOME/jre/lib/security/java.security 文件
將securerandom.source=file:/dev/urandom 修改為
securerandom.source=file:/dev/./urandom
由於Windows上對/dev/urandom實現機制不一樣,所以在Windows上不會出現上述為題。