Weblogic:重新启动后丢失更改

Weblogic: lose changes after restart

我在使用 WebLogic 服务器时遇到了一个奇怪的问题:我丢失了在创建多个资源(JMS 队列、DB 池等)时创建的最后一个项目。

环境:

我执行的步骤:

  1. 登录到 Docker 容器。
  2. 使用 ./startWebLogic.sh 命令启动 WebLogic 管理服务器
  3. 我通过 WLST 脚本创建了多个 WebLogic 资源。脚本完成后,我可以在 Web 控制台上看到所有内容。
  4. 使用 ./stopWebLogic.sh weblogic weblogic12 t3://localhost:7001 命令停止服务器
  5. 再次启动管理服务器
  6. 我之前所做的所有更改完全丢失

我看到的是这样的:

WebLogic 似乎忘记以某种方式“提交”最后一项。 当我在 WL 重新启动之前检查 config.xml 文件时,我可以在那里看到我需要的东西。重新启动后,WL 以某种方式将此文件恢复为预览状态(没有我的最后一项)并且文件的大小刚刚改变。

如果我激活production mode那么一切都是一样的,我看不出有什么不同。

我认为这个问题与 Docker 无关,因为我没有使用任何 Docker 卷。我在 config.xml 旁边创建的测试文件在容器停止和启动之间持续存在。

这是 WL 错误吗?你见过一样的吗?

更新

我在上面使用的 docker 图像是使用 docker commit 命令从另一个 Docker 容器创建的。前面的 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

link to the reference post