Websphere 8.5 SIB에 구성된 대기열에있는 모든 메시지를 삭제하려고합니다. 아래 두 가지 방법을 시도했지만, 그 중 아무 것도 작동하지 않는 것처럼 보이고 각각 다른 예외가 throw됩니다. 누군가가이를 달성하기위한 올바른 방법에 대해 조언 해 줄 수 있습니까?대기열에있는 모든 메시지 삭제 JMX를 통한 Websphere 8.5 SIB
접근법 1
MBeanServerConnection connection = getServerConnection();
connection.invoke(new ObjectName("WebSphere:*,type=SIBQueuePoint,name=jms.queue.MY_QUEUE"), "deleteAllQueuedMessages", null, null);
이 방법은 아래의 예외를 던진다.
javax.management.InstanceNotFoundException :는 WebSphere : TYPE = SIBQueuePoint 이름 = jms.queue.MY_QUEUE
접근법 2
MBeanServerConnection connection = getServerConnection();
ObjectName objQueue = new ObjectName(WAS85_RESOURCE_URL + ",type=SIBQueuePoint");
Set<ObjectName> objNames = connection.queryNames(objQueue, null);
for(ObjectName objName: objNames) {
String qName = connection.getAttribute(objName,"identifier").toString();
if(qName.equals("jms.queue.MY_QUEUE")) {
connection.invoke(objName, "deleteAllQueuedMessages", null, null);
}
}
이 방법은 아래의 예외를 던진다.
javax.management.ReflectionException : 찾을 수없는 대상 방법 : com.ibm.ws.sib.admin.impl.JsQueuePoint.deleteAllQueuedMessages