如何在 RHEL7 上為 Weblogic server 12 升級/修補 Java?
我有一個安裝了 Oracle Java 8 和 Weblogic 12 的 RHEL7 伺服器。
Java 8 是使用 RedHat 的 rpm 安裝的。Weblogic 是使用 Oracle 的安裝包和說明安裝的(Redhat 沒有可用的 rpm)。在 Weblogic 安裝期間,我提供了一個符號連結路徑,如
JAVA_HOME
,/usr/lib/jvm/java-oracle
。安裝 weblogic 時,符號連結鍊是:/usr/lib/jvm/java-oracle
–>/etc/alternatives/java_sdk_oracle
–>/usr/lib/jvm/java-1.8.0-oracle-1.8.0.141-1jpp.1.el7_3.x86_64
。我嘗試通過從 RedHat 安裝更新的 rpm 將 Java 8 安裝從更新 141 修補到更新 161。之後,Weblogic 將無法啟動。
經過一番研究,我發現 Weblogic 安裝腳本已經解析了符號連結並將目標硬編碼
/usr/lib/jvm/java-1.8.0-oracle-1.8.0.141-1jpp.1.el7_3.x86_64
到 weblogic 安裝目錄下的幾個配置文件中。Java 8 更新 161 安裝刪除了更新 141。所以Java 8 和Weblogic 對如何定位Java 似乎有不同的看法。
可能的解決方案:
- 修補Java後修改Weblogic安裝中的配置文件。
- 修補 Java 後解除安裝/重新安裝 Weblogic。
- 不要修補java。
- 其他
前三個解決方案似乎都不是很好。
在 Redhat 伺服器上為 Weblogic 12 升級/修補 java 的首選方式/最佳實踐是什麼?有沒有更好的辦法?
沒有人提供答案,所以我將描述我們的工作。
事實證明,WebLogic 在中間件安裝和域中都記下了 java 的路徑。
查找包含對 java 的引用的文件:
find $MW_HOME -name commBaseEnv.sh find $MW_HOME -name commEnv.sh find $MW_HOME -name setNMJavaHome.sh find $MW_HOME -name nodemanager.properties find $DOMAIN_HOME -name setDomainEnv.sh find $DOMAIN_HOME -name setNMJavaHome.sh find $DOMAIN_HOME -name nodemanager.properties
MW_HOME
是中間件主目錄,目錄的父wlserver
目錄。
DOMAIN_HOME
是 WebLogic 域的主目錄。然後,我們更新了獲得的配置文件中的路徑,並將其替換為 Oracle java RPM 創建的指向 java 的固定位置軟連結的路徑。
每當創建新域或安裝新版本的 WebLogic 時,我們都需要這樣做。
我們使用這篇文章來弄清楚我們需要做什麼。