簡體   English   中英

Weblogic:重啟后丟失更改

[英]Weblogic: lose changes after restart

我的 WebLogic 服務器有一個奇怪的問題:我在創建多個資源(JMS 隊列、數據庫池等)時丟失了我創建的最后一個項目。

環境:

  • WebLogic 服務器版本:12.2.1.4.0
  • 系統:Oracle Linux Server 7.8(在 Docker 中)
  • Java:Java 版本“1.8.0_231”、Java(TM) SE 運行時環境(構建 1.8.0_231-b11)、Java HotSpot(TM)64 位服務器 VM(構建 25.231-b11,混合模式)
  • Weblogic 配置:只有管理服務器,沒有托管服務器。

我執行的步驟:

  1. 登錄到 Docker 容器。
  2. 使用./startWebLogic.sh命令啟動 WebLogic 管理服務器
  3. 我通過 WLST 腳本創建了多個 WebLogic 資源。 腳本完成后,我可以在 Web 控制台上看到所有內容。
  4. 使用./stopWebLogic.sh weblogic weblogic12 t3://localhost:7001命令停止服務器
  5. 再次啟動管理服務器
  6. 我之前所做的所有更改都完全丟失了

我看到的是這樣的:

  • 如果我在停止服務器之前(在上面的第 3 步之后)從控制台創建了一個虛擬資源(無關緊要,一個池、一個持久存儲、一個 JMS 等),那么我只會丟失最后一個虛擬項目和我用 WLST 創建的其余部分仍然存在。
  • 如果我從控制台創建 2 個資源(無所謂),那么我總是會丟失最后一項。
  • 如果我在重新啟動 2 后從控制台創建 3 個東西,則 3rt 丟失了。
  • 重新啟動后通過 WL Web 控制台刪除 2 個條目,我可以看到僅刪除了一項。 2號剛回來。

似乎 WebLogic 以某種方式忘記了“提交”最后一項。 當我在 WL 重新啟動之前檢查config.xml文件時,我可以在其中看到我需要的內容。 重啟后 WL 以某種方式將此文件恢復到預覽狀態(沒有我的最后一個項目)並且文件的大小剛剛改變。

如果我激活production mode那么一切都是一樣的,我看不出差異。

我認為這個問題與 Docker 無關,因為我沒有使用任何 Docker 卷。 我在config.xml旁邊創建的測試文件在停止和啟動容器之間是持久的。

這是一個WL錯誤嗎? 你見過一樣的嗎?

更新

我上面使用的 docker 鏡像是從另一個 Docker 容器使用docker commit命令創建的。 前面的 Docker 層包含一些常用資源和已安裝的庫。 上圖中不存在此問題。 所以似乎在 Docker 中發生了一些奇怪的事情,從容器中創建了一個鏡像。

 ---------------
 ¦ Oracle Linux¦
 ---------------
        ¦
------------------
¦WL with deployed¦ <- docker commit ....
¦  shared libs   ¦    this issue does not appear at this level
------------------
        ¦
------------------
¦Image what I use¦ <- lose changes between docker stop and start
------------------

所以這似乎是一個 Docker 錯誤或兩者兼而有之:Oracle 和 Docker。

以下變通方法解決了該問題: 在啟動服務器之前從 Weblogic 域主目錄中刪除domain_bak目錄。

例子:

echo "starting the WebLogic server..."
rm -Rf $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/servers/domain_bak/*
$ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh

鏈接到參考帖子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM