【WebLogic】记录一次WebLogic进程无法启动的故障排查过程

Oracle WebLogic Server在启动时遇到严重错误,导致服务器状态变为FAILED并自动关闭。错误源于$DOMAIN_HOME/security目录下的SerializedSystemIni.dat文件损坏,该文件包含解密配置信息的凭证。尝试恢复文件未成功。解决方案包括重新创建应用域或使用备份进行恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

故障现象

WebLogic进程在启动的时候出现报错,导致进程异常SHUTDOWN。

报错信息

####<Jan 4, 2022 2:51:13 PM CST> <Critical> <WebLogicServer> <aMDSJK02> <AdminServer> <main> <<WLS Kernel>> <> <> <1641279073888> <BEA-000386> <Server subsystem failed. Reason: java.lang.AssertionError: java.lang.reflect.InvocationTargetException
java.lang.AssertionError: java.lang.reflect.InvocationTargetException
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy._invokeServiceMethod(DescriptorManager.java:175)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy.decrypt(DescriptorManager.java:192)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl.decrypt(DescriptorManager.java:114)
	at weblogic.descriptor.internal.AbstractDescriptorBean._decrypt(AbstractDescriptorBean.java:1191)
	at weblogic.management.configuration.SecurityConfigurationMBeanImpl.getCredential(SecurityConfigurationMBeanImpl.java:737)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.getSecret(ServerPrincipalValidatorImpl.java:88)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.sign(ServerPrincipalValidatorImpl.java:67)
	at weblogic.security.service.PrivilegedActions$SignPrincipalAction.run(PrivilegedActions.java:62)
	at java.security.AccessController.doPrivileged(Native Method)
	at weblogic.security.service.SecurityServiceManager.createServerID(SecurityServiceManager.java:1111)
	at weblogic.security.service.SecurityServiceManager.getServerID(SecurityServiceManager.java:1124)
	at weblogic.security.service.SecurityServiceManager.sendASToWire(SecurityServiceManager.java:600)
	at weblogic.server.channels.ChannelService.resetQOS(ChannelService.java:298)
	at weblogic.server.channels.ChannelService.start(ChannelService.java:256)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy._invokeServiceMethod(DescriptorManager.java:173)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy.decrypt(DescriptorManager.java:192)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl.decrypt(DescriptorManager.java:114)
	at weblogic.descriptor.internal.AbstractDescriptorBean._decrypt(AbstractDescriptorBean.java:1191)
	at weblogic.management.configuration.SecurityConfigurationMBeanImpl.getCredential(SecurityConfigurationMBeanImpl.java:737)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.getSecret(ServerPrincipalValidatorImpl.java:88)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.sign(ServerPrincipalValidatorImpl.java:67)
	at weblogic.security.service.PrivilegedActions$SignPrincipalAction.run(PrivilegedActions.java:62)
	at java.security.AccessController.doPrivileged(Native Method)
	at weblogic.security.service.SecurityServiceManager.createServerID(SecurityServiceManager.java:1111)
	at weblogic.security.service.SecurityServiceManager.getServerID(SecurityServiceManager.java:1124)
	at weblogic.security.service.SecurityServiceManager.sendASToWire(SecurityServiceManager.java:600)
	at weblogic.server.channels.ChannelService.resetQOS(ChannelService.java:298)
	at weblogic.server.channels.ChannelService.start(ChannelService.java:256)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: weblogic.security.internal.encryption.EncryptionServiceException
	at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:139)
	at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:187)
	at weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy._invokeServiceMethod(DescriptorManager.java:173)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl$SecurityProxy.decrypt(DescriptorManager.java:192)
	at weblogic.descriptor.DescriptorManager$SecurityServiceImpl.decrypt(DescriptorManager.java:114)
	at weblogic.descriptor.internal.AbstractDescriptorBean._decrypt(AbstractDescriptorBean.java:1191)
	at weblogic.management.configuration.SecurityConfigurationMBeanImpl.getCredential(SecurityConfigurationMBeanImpl.java:737)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.getSecret(ServerPrincipalValidatorImpl.java:88)
	at weblogic.security.internal.ServerPrincipalValidatorImpl.sign(ServerPrincipalValidatorImpl.java:67)
	at weblogic.security.service.PrivilegedActions$SignPrincipalAction.run(PrivilegedActions.java:62)
	at java.security.AccessController.doPrivileged(Native Method)
	at weblogic.security.service.SecurityServiceManager.createServerID(SecurityServiceManager.java:1111)
	at weblogic.security.service.SecurityServiceManager.getServerID(SecurityServiceManager.java:1124)
	at weblogic.security.service.SecurityServiceManager.sendASToWire(SecurityServiceManager.java:600)
	at weblogic.server.channels.ChannelService.resetQOS(ChannelService.java:298)
	at weblogic.server.channels.ChannelService.start(ChannelService.java:256)
	at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
> 
####<Jan 4, 2022 2:51:13 PM CST> <Notice> <WebLogicServer> <aMDSJK02> <AdminServer> <main> <<WLS Kernel>> <> <> <1641279073976> <BEA-000365> <Server state changed to FAILED> 
####<Jan 4, 2022 2:51:13 PM CST> <Error> <WebLogicServer> <aMDSJK02> <AdminServer> <main> <<WLS Kernel>> <> <> <1641279073976> <BEA-000383> <A critical service failed. The server will shut itself down> 
####<Jan 4, 2022 2:51:13 PM CST> <Notice> <WebLogicServer> <aMDSJK02> <AdminServer> <main> <<WLS Kernel>> <> <> <1641279073978> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN> 
####<Jan 4, 2022 2:51:13 PM CST> <Info> <WebLogicServer> <aMDSJK02> <AdminServer> <main> <<WLS Kernel>> <> <> <1641279073978> <BEA-000236> <Stopping execute threads.> 

故障排查

根据报错信息分析和故障现象模拟,Oracle原厂工程师判断故障的原因为 SerializedSystemIni.dat (位于$DOMAIN_HOME/security目录下)文件损坏,该文件中包含了具有解密config.xml信息凭证的hash值。另外,Oracle原厂工程师根据官方的文档,试图通过技术手段恢复该文件,但是恢复后的文件并不能使得进程成功启动。

相关文档:

Diagnosing BEA-000386 Critical Message ( Doc ID 1493826.1 )
How to Recover SerializedSystemIni.dat File? ( Doc ID 1602857.1 )

处理方法

方法-1:重新创建应用域;

方法-2:使用之前应用域的完整备份,进行应用域的恢复。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cnskylee

技术分享我是认真的,期待您打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值