如何解决Weblogic:重启后丢失更改
我对WebLogic服务器有一个奇怪的问题:我丢失了创建多重资源(JMS队列,数据库池等)时创建的最后一个项目。
环境:
- WebLogic Server版本: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配置:仅管理服务器,无托管服务器。
执行我执行的步骤:
- 登录到Docker容器。
- 使用
./startWebLogic.sh
命令启动WebLogic Admin服务器 - 我通过WLST脚本创建了多个WebLogic资源。脚本完成后,我可以在Web控制台上看到所有内容。
- 使用
./stopWebLogic.sh weblogic weblogic12 t3://localhost:7001
命令停止服务器 - 再次启动管理服务器
- 我之前所做的所有更改都完全丢失了
这是我看到的:
- 如果在停止服务器之前(在上面的步骤3之后),我从控制台创建了虚拟资源(不管是什么,池,持久性存储,JMS等),那么我只会丢失最后一个虚拟资源项目,而我使用WLST创建的其余项目仍然保留。
- 如果我从控制台创建2个资源(无关紧要),那么我总是丢失最后一个项目。
- 如果在重新启动2之后仍在控制台中创建3个东西,则3rt将丢失。
- 重新启动后通过WL Web控制台删除2个条目,我看到只有一个项目被删除。第二个刚回来。
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。