代码之家  ›  专栏  ›  技术社区  ›  zappee

Weblogic:重新启动后丢失更改

  •  0
  • zappee  · 技术社区  · 4 年前

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

    • WebLogic服务器版本:12.2.1.4.0
    • 系统:Oracle Linux Server 7.8(在Docker中)
    • Java:Java版本“1.8.0ç”,Java(TM)SE运行时环境 (build 1.8.0çu 231-b11),Java HotSpot(TM)64位服务器虚拟机(build 25.231-b11,混合模式)

    我执行的步骤:

    1. 登录到Docker容器。
    2. 启动WebLogic管理服务器 ./startWebLogic.sh 命令
    3. 使用停止服务器 ./stopWebLogic.sh weblogic weblogic12 t3://localhost:7001 命令
    4. 我以前所做的一切改变都完全失去了

    • 如果我在停止服务器之前(在上面的步骤3之后)从控制台创建一个虚拟资源(不管是什么,一个池、一个持久存储、一个JMS等等),那么我只会丢失最后一个虚拟项,其余的用WLST创建的都会保留。
    • 如果我从控制台创建了2个资源(不管是什么),那么我总是会丢失最后一项。
    • 如果我在重启2后从控制台创建3something,3rt就会丢失。

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

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

    我认为这个问题与Docker无关,因为我没有使用任何Docker卷。以及我在 配置.xml

    这是WL窃听器吗?你见过同样的吗?

    我上面使用的docker图像是从另一个docker容器中创建的 docker commit

     ---------------
     ¦ 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 bug或者两者兼而有之:Oracle和Docker。

    0 回复  |  直到 4 年前
        1
  •  0
  •   zappee    4 年前

    以下解决方法解决了这个问题:删除 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