2011-12-28 2 views
3

큐의 깊이를 알 수있는 자바 코드를 작성하는 데 도움을 줄 수 있습니까? IBM WebSphere MQ에 4 개의 대기열이 있으며 내부에 메시지가 있습니다.MQ 큐의 깊이를 확인하십시오.

리포트를 실행하는 동안 대기열 이름과 깊이를 읽는 jsp를 작성하고 싶습니다. 어떻게하면됩니까?

답변

0

나는 응답 access queue with Websphere MQ API

당신이 JMX 컨텍스트에서의 MBean의 accessibles에서 찾아 보게 보았다? 그렇게해야만한다면 Mbean에 노출시킬 것입니다.

당신은 모니터링 및 큐 깊이와 같은 자원의 상태를 확인이 IBM JMS Topologies

볼 수있는 몇 가지 옵션이있다. JMSBasicFunction, JMSAdministration 및 EmbeddedJMSAdministration과 같은 모니터링을 위해 Application Serve와 함께 제공된 JMX Mbean을 사용하는 것이 가장 좋습니다. wsadmin을 통해 또는 프로그래밍 방식으로 이러한 Mbean에 액세스 할 수 있습니다. 두 번째로, runmqsc 또는 MQExplorer와 같은 기존 WMQ 관리 유틸리티를 사용하여 대기열 및 기타 자원을 볼 수 있습니다. 이러한 유틸리티를 사용하는 경우 Application Server 큐 관리자 및 큐에 대한 구성을 변경하지 않아야합니다. 이러한 리소스는 Application Server가 제어합니다. 당신은 WAS 서버에있는 경우 알이 여전히 같은 MBean의 경우,하지만 당신은 당신의 AS에 상응하는 MBean에를 찾을 수 있어야 작동하지 않는 구성

망가에 MQ 유틸리티 결과를 사용하여 이러한 자원에 대한 변경.

2

http://blog.guymahieu.com/2008/06/11/getting-the-depth-of-an-mqseries-queue-from-java/을 참조하십시오.

  • com.ibm.mq의 * 항아리
  • j2ee.jar은
:

import com.ibm.mq.*; 

public class QueueManager { 

    private final String host; 
    private final int port; 
    private final String channel; 
    private final String manager; 
    private final MQQueueManager qmgr; 

    public QueueManager(String host, int port, String channel, String manager) throws MQException { 
     this.host = host; 
     this.port = port; 
     this.channel = channel; 
     this.manager = manager; 
     this.qmgr = createQueueManager(); 
    } 

    public int depthOf(String queueName) throws MQException { 
     MQQueue queue = qmgr.accessQueue(queueName, MQC.MQOO_INQUIRE | MQC.MQOO_INPUT_AS_Q_DEF, null, null, null); 
     return queue.getCurrentDepth(); 
    } 

    @SuppressWarnings("unchecked") 
    private MQQueueManager createQueueManager() throws MQException { 
     MQEnvironment.channel = channel; 
     MQEnvironment.port = port; 
     MQEnvironment.hostname = host; 
     MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES); 
     return new MQQueueManager(manager); 
    } 
} 

이 클래스 경로에 다음 항아리를 넣어 다음과 같이

나는이를 다시 구현

+0

경로에 넣을 특정 jar는 지원되지 않으며 버전에 따라 다릅니다. V8 이전에는 클라이언트 지원이 필요한 경우 IBM은 전체 클라이언트 설치가 필요했습니다. v8.0부터 IBM은 jar 전용 지원 클라이언트 구성을 가지고 있지만 올바른 jar 목록이 아닙니다. –

+0

이것이 도움이되었습니다. 전송 모드를 바인딩으로 변경해야했습니다. –