weblogic启动不能锁定AdminServer.lok的故障处理

2024-03-02 23:48

本文主要是介绍weblogic启动不能锁定AdminServer.lok的故障处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

weblogic启动不能锁定AdminServer.lok的故障处理

2015 四月 21
      
by dbworker
      

weblogic的版本是10.3,操作系统是linux,安装weblogic创建了一个weblogic用户,由于使用root用户修改了一些性能参数后,使用了root用户启动了一次weblogic,而原来启动weblogic的脚本是使用了weblogic用户,在使用weblogic用户启动weblogic时出现了不能锁定AdminServer.lok文件的错误,具体错误信息如下所示:

[weblogic@localhost ~]$  cd /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/bin
[weblogic@localhost bin]$ ./startWebLogic.sh
.
.
JAVA Memory arguments: -Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=256m  -XX:MaxPermSize=512m
.
WLS Start Mode=Development
.
CLASSPATH=/home/weblogic/Oracle/Middleware/patch_wls1036/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/weblogic/Oracle/Middleware/patch_ocp371/profiles/default/sys_manifes
t_classpath/weblogic_patch.jar:/usr/java64/jdk1.6.0_45/lib/tools.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic_sp.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/
server/lib/weblogic.jar:/home/weblogic/Oracle/Middleware/modules/features/weblogic.server.modules_10.3.6.0.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/webservices.jar:/home
/weblogic/Oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/weblogic/Oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/home/weblogic/Oracle/Mi
ddleware/wlserver_10.3/common/derby/lib/derbyclient.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/xqrl.jar:.:/usr/java64/jdk1.6.0_45/lib:/usr/java64/jdk1.6.0_45/lib/dt.jar:/u
sr/java64/jdk1.6.0_45/lib/tools.jar
.
PATH=/home/weblogic/Oracle/Middleware/wlserver_10.3/server/bin:/home/weblogic/Oracle/Middleware/modules/org.apache.ant_1.7.1/bin:/usr/java64/jdk1.6.0_45/jre/bin:/usr/java64/jdk1.6.0_45/bin:/
usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/java64/jdk1.6.0_45/bin:/home/weblogic/bin
.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http://hostname:port/console        *
***************************************************
starting weblogic with Java version:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Starting WLS with line:
/usr/java64/jdk1.6.0_45/bin/java -client   -Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=256m  -XX:MaxPermSize=512m -Dweblogic.Name=AdminServer -Djava.security.policy=/home/webl
ogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy  -Xverify:none  -da -Dplatform.home=/home/weblogic/Oracle/Middleware/wlserver_10.3 -Dwls.home=/home/weblogic/Oracle/Middleware
/wlserver_10.3/server -Dweblogic.home=/home/weblogic/Oracle/Middleware/wlserver_10.3/server   -Dweblogic.management.discover=true  -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToCon
sole= -Dweblogic.ext.dirs=/home/weblogic/Oracle/Middleware/patch_wls1036/profiles/default/sysext_manifest_classpath:/home/weblogic/Oracle/Middleware/patch_ocp371/profiles/default/sysext_mani
fest_classpath  weblogic.Server
bea -000362 server failed. Reason:There are 1 nested errors:weblogic.management.ManagementException: Unable to obtain lock on /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/tmp/AdminServer.lok. Server may already b
e runningat weblogic.management.internal.ServerLocks.getServerLock(ServerLocks.java:206)at weblogic.management.internal.ServerLocks.getServerLock(ServerLocks.java:67)at weblogic.management.internal.DomainDirectoryService.start(DomainDirectoryService.java:74)at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesManager.java:461)at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServicesManager.java:166)at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:881)at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:568)at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:469)at weblogic.Server.main(Server.java:71)

出现这种情况的原因有两种可能但不限于,一是执行kill -9杀死weblogic进程,一种是使用的不是安装weblogic的用户比如root用户来启动weblogic。这里出现这种情况之前,既使用了kill -9杀死weblogic进程,也使用root用户(而不是weblogic用户)来启动weblogic。

对于这种情况解决方法有以下三种
1.是修改AdminServer.lok文件的权限,让weblogic用户能锁定它.
2.删除AdminServer.lok文件并重新使用weblogic用户来启动weblogic服务.
3.杀死仍然运行的服务进程并重新weblogic服务.

这里我采用的是第一种解决方法:

[root@localhost bin]# cd /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/tmp/
[root@localhost tmp]# ls -lrt
total 12
drwxr----- 5 weblogic bea  4096 Dec 29 19:09 _WL_internal
drwxr----- 3 weblogic bea  4096 Mar 17 17:53 _WL_user
-rw-r----- 1 weblogic bea   264 Apr 21 17:11 WebServiceUtils.ser
-rw-r----- 1 root     root    0 Apr 21 17:24 AdminServer.lok
[root@localhost tmp]# chown weblogic:bea AdminServer.lok
[root@localhost tmp]# ls -lrt
total 12
drwxr----- 5 weblogic bea 4096 Dec 29 19:09 _WL_internal
drwxr----- 3 weblogic bea 4096 Mar 17 17:53 _WL_user
-rw-r----- 1 weblogic bea  264 Apr 21 17:11 WebServiceUtils.ser
-rw-r----- 1 weblogic bea    0 Apr 21 17:24 AdminServer.lok

第二种方法,删除AdminServer.lok文件并重新使用weblogic用户来启动weblogic服务的操作示例如下:
1. 在user_projects/domains/目录中移动或删除它被锁定的文件,例如:

$ find . -name "*DAT"
./servers/AdminServer/data/store/diagnostics/WLS_DIAGNOSTICS000000.DAT
./servers/AdminServer/data/store/default/_WLS_ADMINSERVER000000.DAT

这里要注意的是Unix或Linux是大小敏感的,在执行查找时不要将”*DAT”写成”.dat”,如果写成”.dat”可能删除将?/security/SerializedSystemIni.dat文件删除。

2.删除EmbeddedLDAP.lok and AdminServer.lok 文件

[root@localhost tmp]rm  -rf /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/tmp/AdminServer.lok[root@localhost tmp]rm  -rf
/home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/data/ldap/ldapfiles/EmbeddedLDAP.lok

3.可以执行下面的脚本来找出进程正在监听的端口并通过kill -TERM将其杀掉。

#!/bin/kshline='---------------------------------------------'
pids=$(/usr/bin/ps -ef | sed 1d | awk '{print $2}')if [ $# -eq 0 ]; thenread ans?"Enter port you would like to know pid for: "
elseans=$1
fifor f in $pids
do/usr/proc/bin/pfiles $f 2>/dev/null | /usr/xpg4/bin/grep -q "port: $ans"if [ $? -eq 0 ]; thenecho $lineecho "Port: $ans is being used by PID:\c"/usr/bin/ps -ef -o pid -o args | egrep -v "grep|pfiles" | grep $ffi
done
exit 0

4.重新启动weblogic服务

[weblogic@localhost bin]$nohup ./startWebLogic.sh &

第三种方法,杀死仍然运行的服务进程并重新weblogic服务的示例操作如下:
1. 找到Managed Server的:

ps -ef | grep ManagedServer

2.使用kill -9 杀掉Managed Server进程:

kill -9 

3. 重新启动weblogic服务:

nohup ./startWebLogic.sh &

要注意的是startWeblogic.sh脚本通常要使用nohup来启动,这样当用户退出时shell才能保持继续运行.

如果是Windows平台
1. AdminServer.lok 文件的缺存储目录是: C:\Oracle\Middleware\user_projects\domains\\servers\AdminServer\tmp\
2. 执行startWebLogic.cmd 命令来启动weblogic服务
注意,如果AdminServer.lok 不能删除可以在任务管理器中杀掉Weblogic服务的所有java.exe进程,再来删除AdminServer.lok file。

在解决不能锁定AdminServer.lok文件之后我们再来使用weblogic用户启动weblogic服务:

[weblogic@localhost bin]$ ./startWebLogic.sh
...省略...
an error occurred while initializing the Embedded LDAP Server. The exception thrown is java.lang.ClassCastException: com
.octetstring.vde.backend.BackendRoot cannot be cast to com.octetstring.vde.backend.standard.BackendStandard. This may indicate a problem with the data files for the Embedded LDAP Server. If
the problem is with the data files and it can not be corrected, backups of previous versions of the data files exist in /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers
/AdminServer/data/ldap/backup
bea -000362 server failed. Reason:There are 1 nested errors:java.lang.ClassCastException: com.octetstring.vde.backend.BackendRoot cannot be cast to com.octetstring.vde.backend.standard.BackendStandardat weblogic.ldap.EmbeddedLDAP.start(EmbeddedLDAP.java:303)at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

出现的错误是没有权限打开事务文件EmbeddedLDAP.tran,这还是权限原因:

/home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/data/
ldap/ldapfiles/EmbeddedLDAP.tran (Permission denied)

修改EmbeddedLDAP.tran 文件的权限:

[root@localhost weblogic]# cd /home/weblogic/Oracle/Middleware/user_projects/domains/sbkwsjb/servers/AdminServer/data/ldap/ldapfiles/
[root@localhost ldapfiles]# ls -lrt
total 164
-rw-r----- 1 weblogic bea     864 Dec 30 09:01 EmbeddedLDAP.index
-rw-r----- 1 weblogic bea     204 Dec 30 09:01 EmbeddedLDAP.delete
-rw-r----- 1 weblogic bea  146088 Apr 21 16:16 EmbeddedLDAP.data
-rw-r----- 1 weblogic bea       8 Apr 21 17:24 EmbeddedLDAP.twpos
-rw-r----- 1 weblogic bea       8 Apr 21 17:24 EmbeddedLDAP.trpos
-rw-r----- 1 root     root      0 Apr 21 17:24 EmbeddedLDAP.tran
-rw-r----- 1 weblogic bea       0 Apr 21 19:26 EmbeddedLDAP.lok

从上面的信息可以看到EmbeddedLDAP.tran文件的权限是root用户所有,这是因为之前使用root用户启动过weblogic的原因,而现在是使用weblogic用户来启动weblogic

[root@localhost ldapfiles]# chown weblogic EmbeddedLDAP.tran
[root@localhost ldapfiles]# ls -lrt
total 164
-rw-r----- 1 weblogic bea     864 Dec 30 09:01 EmbeddedLDAP.index
-rw-r----- 1 weblogic bea     204 Dec 30 09:01 EmbeddedLDAP.delete
-rw-r----- 1 weblogic bea  146088 Apr 21 16:16 EmbeddedLDAP.data
-rw-r----- 1 weblogic bea       8 Apr 21 17:24 EmbeddedLDAP.twpos
-rw-r----- 1 weblogic bea       8 Apr 21 17:24 EmbeddedLDAP.trpos
-rw-r----- 1 weblogic root      0 Apr 21 17:24 EmbeddedLDAP.tran
-rw-r----- 1 weblogic bea       0 Apr 21 19:26 EmbeddedLDAP.lok
[root@localhost ldapfiles]# chown weblogic:bea EmbeddedLDAP.tran
[root@localhost ldapfiles]# ls -lrt
total 164
-rw-r----- 1 weblogic bea    864 Dec 30 09:01 EmbeddedLDAP.index
-rw-r----- 1 weblogic bea    204 Dec 30 09:01 EmbeddedLDAP.delete
-rw-r----- 1 weblogic bea 146088 Apr 21 16:16 EmbeddedLDAP.data
-rw-r----- 1 weblogic bea      8 Apr 21 17:24 EmbeddedLDAP.twpos
-rw-r----- 1 weblogic bea      8 Apr 21 17:24 EmbeddedLDAP.trpos
-rw-r----- 1 weblogic bea      0 Apr 21 17:24 EmbeddedLDAP.tran
-rw-r----- 1 weblogic bea      0 Apr 21 19:26 EmbeddedLDAP.lok

再次使用weblogic用户来启动weblogic

[weblogic@localhost bin]$ ./startWebLogic.sh
.
.
JAVA Memory arguments: -Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=256m  -XX:MaxPermSize=512m
.
WLS Start Mode=Development
.
CLASSPATH=/home/weblogic/Oracle/Middleware/patch_wls1036/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/weblogic/Oracle/Middleware/patch_ocp371/profiles/default/sys_manifes
t_classpath/weblogic_patch.jar:/usr/java64/jdk1.6.0_45/lib/tools.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic_sp.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/
server/lib/weblogic.jar:/home/weblogic/Oracle/Middleware/modules/features/weblogic.server.modules_10.3.6.0.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/webservices.jar:/home
/weblogic/Oracle/Middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/weblogic/Oracle/Middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/home/weblogic/Oracle/Mi
ddleware/wlserver_10.3/common/derby/lib/derbyclient.jar:/home/weblogic/Oracle/Middleware/wlserver_10.3/server/lib/xqrl.jar:.:/usr/java64/jdk1.6.0_45/lib:/usr/java64/jdk1.6.0_45/lib/dt.jar:/u
sr/java64/jdk1.6.0_45/lib/tools.jar
.
PATH=/home/weblogic/Oracle/Middleware/wlserver_10.3/server/bin:/home/weblogic/Oracle/Middleware/modules/org.apache.ant_1.7.1/bin:/usr/java64/jdk1.6.0_45/jre/bin:/usr/java64/jdk1.6.0_45/bin:/
usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/java64/jdk1.6.0_45/bin:/home/weblogic/bin
.
***************************************************
*  To start WebLogic Server, use a username and   *
*  password assigned to an admin-level user.  For *
*  server administration, use the WebLogic Server *
*  console at http://hostname:port/console        *
***************************************************
starting weblogic with Java version:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
Starting WLS with line:
/usr/java64/jdk1.6.0_45/bin/java -client   -Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -XX:PermSize=256m  -XX:MaxPermSize=512m -Dweblogic.Name=AdminServer -Djava.security.policy=/home/webl
ogic/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.policy  -Xverify:none  -da -Dplatform.home=/home/weblogic/Oracle/Middleware/wlserver_10.3 -Dwls.home=/home/weblogic/Oracle/Middleware
/wlserver_10.3/server -Dweblogic.home=/home/weblogic/Oracle/Middleware/wlserver_10.3/server   -Dweblogic.management.discover=true  -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToCon
sole= -Dweblogic.ext.dirs=/home/weblogic/Oracle/Middleware/patch_wls1036/profiles/default/sysext_manifest_classpath:/home/weblogic/Oracle/Middleware/patch_ocp371/profiles/default/sysext_mani
fest_classpath  weblogic.Server

至此问题已经解决。

总结:出现不能锁定AdminServer.lok文件的错误的原因是,因为使用kill -9 杀掉了weblogic服务进程,或者使用不是安装weblogic程序的用户来启动过weblogic所造成的。出现这种问题后,有三种解决方法:
1.是修改AdminServer.lok文件的权限,让weblogic用户能锁定它.
2.删除AdminServer.lok文件并重新使用weblogic用户来启动weblogic服务
3.杀死仍然运行的服务进程并重新weblogic服务.

这篇关于weblogic启动不能锁定AdminServer.lok的故障处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767795

相关文章

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束