我的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'])