1.概述
经局方与XXX工作人员反映,YYY系统Weblogic报警系统无法获取Weblogic执行队列配置信息,其他信息获取正常。
2.问题分析
经确认已经在YYY系统开启SNMP Agent服务。
在<WLS_HOME>/server/bin目录下,执行setWLSEnv.sh脚本配置Weblogic环境变量(其中WLS_HOME为Weblogic安装目录,在BSS系统中是/bea/weblogic),在命令行执行:
java snmpwalk –v v1 –c public –p 10010 <host_ip> <OID>来获取相关信息。
其中<host_ip>为Weblogic AdminServer所在的主机IP(XXX),<OID>为对象标识符,Weblogic SNMP Agent使用OID来获取主机的相关信息。
亿阳信通工程师反映执行队列的配置信息无法获取,主要的OID为:
OID号
信息
.1.3.6.1.4.1.140.625.550.1.15 executeQueueName
.1.3.6.1.4.1.140.625.550.1.20 executeQueueParent
.1.3.6.1.4.1.140.625.550.1.25 executeQueueThreadCount
.1.3.6.1.4.1.140.625.550.1.26 executeQueueThreadsMaximum
经Oracle官网确认OID号正确并无错误。
因此将问题定位到为何Weblogic无法获取这些信息,在Weblogic8之前的版本执行队列固定,而Weblogic 9以后的版本中执行队列动态变化,包括执行线程。因此有理由怀疑该问题是由于Weblogic10.3执行队列动态变化,因此无法获取执行队列的配置信息。
2.1.Weblogic8.1
Weblogic8.1可以配置执行队列信息,在Weblogic8.1开启SNMP Agent,重启Weblogic后,SNMP Agent生效。
在命令行执行上述命令后,结果如下:
说明Weblogic8.1可以获通过SNMP Agent取执行队列配置信息。
2.2Weblogic10.3
在Weblogic10.3中执行队列动态变化,执行上述命令后,
并没有返回相应的信息,说明无法获取执行队列的配置信息。
Weblogic10.3可以在config.xml文件中强行配置执行队列和线程等配置。
2.2.1.配置线程
在config.xml文件中对应的server标签对中添加如下代码:
其中<selg-tuning-thread-pool-size-min>为线程池最小线程数,<self-tuning-thread-pool-size-max>为线程池最大线程数,重启后生效,再次执行上述命令:
无法获取相关信息。
2.2.2.配置执行队列
在config.xml中添加如下代码,
添加上述代码,可能导致Weblogic无法启动,可以在启动脚本中添加如下代码:
Windows平台:
Set JAVA_OPTIONS="-Dweblogic.configuration.schemaValidationEnabled=false"
UNIX平台:
export JAVA_OPTIONS="-Dweblogic.configuration.schemaValidationEnabled=false"
重启后生效,执行上述命令:
可以获得相关信息,并且配置信息与config中的配置信息一致,因此上述命题获得验证。
3.结论与建议
在Weblogic8与之前的版本中可以在Weblogic管理控制台配置执行队列,而在Weblogic9以后的版本中执行队列动态变化,无法在控制台配置执行队列,因此该信息并无意义,所以无法通过SNMP Agent来获取执行队列的配置信息。但是可以通过SNMP Agent获取执行队列运行时信息来监控Weblogic系统,经确认报警系统可以获取执行队列的运行时信息。
建议:
由于Weblogic9以后的版本中执行队列动态变化,因此执行队列的配置信息变得无意义,导致无法获取到执行队列的配置信息,因此建议监控执行队列的运行时信息来代替配置信息,达到监控系统运行的目的。
该贴被funny编辑于2014-2-25 12:50:27