如何在WebLogic中停止JMS使用者?
我需要以编程方式通知WebLogic停止JMS侦听器(MDB)。我的意思是停止消耗队列的消息,稍后再通过代码再次启动它。
管理控制台可能有一个选项(可能会停止工厂?),但我们需要在代码中执行此操作。
相当于Spring DefaultMessageListenerContainer.stop()的东西。
答案 0 :(得分:2)
目标mBean上的Weblogic中的等效项为pauseConsumption()
。暂停应该影响目标“定位”的任何内容 - 可以是群集或单个服务器。
您可以通过管理控制台,通过WLST脚本或Java JMX以编程方式执行此操作。以下链接显示了所有3种方法:
JMS Modules -> <Module Name> -> Destination Name -> Pause Consumption
cd('JMSRuntime/'+serverName+'.jms/JMSServers/'+jmsServerName+'/Destinations/'+jmsModName+'!'+ queueName)
cmo.pauseProduction()
http://middlewaremagic.com/weblogic/?p=6687
for (String queueName : queueNames) {
exception = null;
try {
ObjectName destination = findQueueObjectName(con, jmsModuleName, queueName);
Object pauseConsResult = con.invoke(destination,"pauseConsumption", null, null);
http://khylo.blogspot.com/2011/02/weblogic-jms-pause-and-resume.html