背景
众所周知,在我们的weblogic中,无论是管理节点AdminServer,还是受管节点ManagedServer,在启动的过程中,都会要求我们输入控制台账号以及密码,而通常我们都会在后台启动server,所以要对username和password进行配置。我知道有两种方式可以实现:
- 将控制台账号以及密码配置到jvm的启动参数中:比如在startWebLogic.sh或者startManagedWebLogic.sh中,添加-Dweblogic.management.username=username
-Dweblogic.management.password=password - 在servers目录下新建security/boot.properties秘钥文件,将
username=username
password=password
写入该文件
然而,在最近对某业务平台受管节点进行扩容的时候,发现该环境既没有使用方法1,也没有使用方法2,所以就比较疑惑:server到底是怎么启动的呢?到底是从哪里读取的控制台账号密码信息呢?
揭秘
从网上查了一些资料,大部分都是使用boot.properties文件实现,并没有解决我的疑问。后来问了下资深二线,他让我使用ps -ef|grep java看下进程信息,我还真就看出来了问题,发现进程中有这么一个参数:
-Dweblogic.system.BootIdentityFile=/weblogic/user_projects/domains/base_domain/servers/server2/data/nodemanager/boot.properties
原来,启动的秘钥文件路径可以通过该参数去自定义,而security/boot.properties只是缺省的秘钥文件路径。
总结
weblogic机制在这,无非就是通过启动参数或者文件来加载一些东西,以后遇到类似的问题还真的得仔细检查进程信息,能帮助自己更快的解决问题。