赞
踩
JMS(JavaMessagingService)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。
JMS是一种与厂商无关的API,用来访问消息收发系统。它类似于JDBC(JavaDatabase Connectivity):这里,JDBC是可以用来访问许多不同关系数据库的API,而 JMS则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持JMS,包括IBM 的MQSeries、BEA的Weblogic JMS service和Progress 的SonicMQ。
对于WeblogicJMSservice的使用可以分为两部分,一部分是Weblogic作为服务端发布对应的JMS服务为客户端程序提供服务,一部分是我们的应用程序作为客户端发布消息到JMS服务端或从JMS服务端获取消息进行消费。
我们今天要说是WeblogicJMS service消息中间件集群起停平台化的实现探索:
[ 一、集群常规起停方式 ]在日常运维JMS消息中间件集群时,如果需要起停服务,我们通常的做法是:
1、起集群
(1)登录管理Server的主机将AdminServer进程启动
(2)登录集群中所有的主机将对应主机的节点管理器进程启动
(3)登录JMS服务器管理后台,将所有的被管server启动
方法:域-环境-服务器-服务器概要-控制,勾选除AdminServer的所有被管Server,然后选择启动。
2、停集群
与起集群的操作顺序刚好反过来。
但是,这种人工手动登录控制台起停集群的方式,无法实现平台化操作。
[ 二、集群平台化起停方式 ](1)编写AdminServer起停脚本
start9001.sh
export PORT="9001" export USER_MEM_ARGS="-Xms256m -Xmx256m -Djava.security.egd=file:/dev/./urandom" nohup sh ./bin/startWebLogic.sh >./console9001.log & tail -f ./console9001.log |
(2)编写节点管理器起停脚本
startNode5556.sh
nohup sh ./bin/startNodeManager.sh >./node5556.log & tail -f ./node5556.log |
(3)编写被管server起停脚本
如:start11001.sh
export PORT="11001" export USER_MEM_ARGS="-Xms512m -Xmx512m -Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=200 -Djava.security.egd=file:/dev/./urandom" nohup sh ./bin/startManagedWebLogic.sh bossServer1 http://192.168.44.61:9001 >./console11001.log & tail -f ./console11001.log |
准备拉起集群,AdminServer和节点管理器正常起动,但是被管server起动失败:
根据提示”<2020-11-1 上午10时30分34秒CST> ”分析,服务器必须由NodeManager启动。于是我就开始第二阶段的探索,查到了nmStart()函数。
通过nmStart()函数起停集群,则就要用到weblogic自带的wlst.sh脚本进行域的连接,Weblogic10.3.6版本该脚本通常在${WLS_HOME}/common/bin/wlst.sh位置。
(1)我们通过如下步骤成功的连接到域:
WLS_HOME="/weblogic/Oracle/Middleware/wlserver_10.3"
${WLS_HOME}/common/bin/wlst.sh
connect('weblogic','weblogic!123','t3://192.168.44.61:9001')
(2)在连接到节点管理器
nmConnect('weblogic','weblogic!123','192.168.44.61','5556','bossdomain','/bossapp/domains/bossdomain','plain')
根据连接报错提示,分析结果是需要在节点管理器的/bossapp/domains/bossdomain/config/nodemanager/nm_password.properties文件中配置控制台登录用户名和密码即可:
成功连接:
(3)下一步通过nmStart()函数起动被管server
能起动成功,但是几分钟之后就会报错”<2020-11-1 上午11时00分44秒CST>
Reason: Server isnot in the majority cluster partition>”,
server状态就会转为FAILED状态:
提SR咨询,未分析到具体原因,但反馈可以使用start()函数起动被管server。
连接域的步骤同方式2,但不需要执行方式2的第(2)步,否则会报错。
(1)我们通过如下步骤成功的连接到域:
WLS_HOME="/weblogic/Oracle/Middleware/wlserver_10.3"
${WLS_HOME}/common/bin/wlst.sh
connect('weblogic','weblogic!123','t3://192.168.44.61:9001')
(2)下一步通过start()函数起动被管server
被管server起动成功:
state()函数查server状态:
shutdown()函数,停server:
结果多次尝试探索之后,确认通过start()函数、shutdown()函数、state()函数对被管server起动、停止、查看状态是可行的,然后我们就可将上述函数进行脚本封装。针对AdminServer和节点管理器的起停操作脚本,参考方式1即可。如此,我们即可实现WeblogicJMS消息中间件集群起停平台化操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。