WebShepe SIB队列如何使用wsadmin命令从队列中删除特定消息

时间:2019-09-11 12:12:51

标签: jython wsadmin

我的WAS服务器中有_system.exception.destinationqueue。有很多消息(成​​千上万),我只想自动删除一种类型的消息,例如,消息是从JMS目标队列:// DeactivateUserReq?busName = AppBus发出的。无需从system.exceprion目标中删除所有消息。有什么想法可以通过jython脚本来实现吗?我知道工具SIB目标处理程序,但它是手动工作的。感谢您的进步。

我使用此脚本显示SIB队列的深度

qpoint = 'WebSphere:*,type=SIBQueuePoint'
queues = AdminControl.queryNames(qpoint).split()

for q in queues:
identifier = AdminControl.getAttribute(q, 'identifier')
size = AdminControl.getAttribute(q, 'depth')
print identifier + ' size: ' + size + ' messages'
print AdminControl.getAttributes(q)

和此脚本删除system.exception.destination

中的所有消息
objName = AdminControl.makeObjectName('WebSphere:type=SIBQueuePoint,SIBMessagingEngine=n1.appsrv1-AppBus,name=_SYSTEM.Exception.Destination.n1.appsrv1-AppBus,*')
qps = AdminControl.queryNames_jmx(objName, None)
qp = qps[0]
AdminControl.invoke_jmx(qp, 'deleteAllQueuedMessages', 
[java.lang.Boolean('false')], ['java.lang.Boolean'])

0 个答案:

没有答案