6.3. JMS API를 사용하여 AMQ Broker 관리
JMS(Java Message Service) API를 사용하면 메시지를 생성, 전송, 수신 및 읽을 수 있습니다. JMS 및 Red Hat build of Apache Cryostat JMS 클라이언트를 사용하여 브로커를 관리할 수 있습니다.
6.3.1. JMS 메시지 및 Red Hat build of Apache Cryostat JMS Client를 사용하여 브로커 관리 구성
JMS를 사용하여 브로커를 관리하려면 먼저 관리 권한으로 브로커의 관리 주소를 구성해야 합니다.
프로세스
-
<
;broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. <
;management-address&
gt; 요소를 추가하고 관리 주소를 지정합니다.기본적으로 관리 주소는
activemq.management
입니다. 기본값을 사용하지 않으려면 다른 주소만 지정해야 합니다.<management-address>my.management.address</management-address>
관리 주소에
manage
사용자 권한 유형을 제공합니다.이 권한 유형을 사용하면 관리 주소가 관리 메시지를 수신하고 처리할 수 있습니다.
<security-setting-match="activemq.management"> <permission-type="manage" roles="admin"/> </security-setting>
6.3.2. JMS API 및 Red Hat build of Apache Cryostat JMS Client를 사용하여 브로커 관리
JMS 메시지를 사용하여 관리 작업을 호출하려면 Red Hat build of Apache Cryostat JMS 클라이언트가 특수 관리 대기열을 인스턴스화해야 합니다.
프로세스
-
QueueRequestor
를 생성하여 메시지를 관리 주소로 보내고 응답을 수신합니다. -
메시지를
생성합니다. -
메시지를 관리 속성으로 채우려면 Helper 클래스
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper
를 사용합니다. -
QueueRequestor
를 사용하여 메시지를 보냅니다. -
Helper 클래스
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper
를 사용하여 관리 응답에서 작업 결과를 검색합니다.
예 6.2. 큐의 메시지 수 보기
이 예제에서는 JMS API를 사용하여 JMS 큐 exampleQueue
에서 메시지 수를 확인하는 방법을 보여줍니다.
Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management"); QueueSession session = ... QueueRequestor requestor = new QueueRequestor(session, managementQueue); connection.start(); Message message = session.createMessage(); JMSManagementHelper.putAttribute(message, "queue.exampleQueue", "messageCount"); Message reply = requestor.request(message); int count = (Integer)JMSManagementHelper.getResult(reply); System.out.println("There are " + count + " messages in exampleQueue");