Sun Java System Messaging Server 6.3 관리 설명서

22장 JMQ 알림 플러그 인을 구성하여 Message Queue에서 사용할 메시지 생성

이 장에서는 JMQ 알림 플러그인을 구성하여 Message Queue 서비스에서 클라이언트가 소비할 메시지를 생성하는 방법에 대해 설명합니다.

이 장은 다음 내용으로 구성되어 있습니다.22 장, JMQ 알림 플러그 인을 구성하여 Message Queue에서 사용할 메시지 생성

22.1 JMQ 알림 개요

Messaging Server 알림 플러그 인을 사용하면 메시징 서비스 또는 이벤트 서비스에 알림 메시지를 전달할 수 있습니다. 메시징 서비스에서 소비자(클라이언트 인터페이스)에게 알림을 전송하면 이 소비자는 메시지를 필터링하여 지정된 사용자에게 전달합니다.

예를 들어, 사용자의 메일함에 새 전자 메일이 도착하면 알림 플러그 인은 메시징 서비스에 알림 메시지를 전달합니다. 메시징 서비스의 구성 요소인 메시지 소비자는 알림을 받은 후 사용자의 전자 메일 클라이언트(Communications Express 또는 Mozilla 메일 등)로 보냅니다. 그러면 전자 메일 클라이언트가 사용자의 컴퓨터 화면에 팝업 메시지 "새 메시지가 수신되었습니다."를 표시할 수 있습니다.

또 다른 예로, 사용자의 메일함이 할당량을 초과한 경우 알림 플러그 인에서는 할당량 초과 알림 메시지를 생성합니다. 메시지 소비자는 사용자와 이벤트에 대해 알아야 할 관리자에게 경고를 보냅니다.

22.1.1 두 개의 알림 메시징 서비스

서로 다른 두 개의 메시징 서비스에 알림을 전달하도록 Messaging Server를 구성할 수 있습니다.

Message Queue 서비스는 JMS(Java Messaging Service) 사양을 구현하며 메시지 브로커, 메시지를 생성하거나 소비하는 클라이언트를 만드는 인터페이스, 관리 서비스 및 제어를 제공합니다. Message Queue는 라우팅 및 전달 기능, 프로토콜, 메시지 형식에 JMS 표준을 사용합니다.

Event Notification Service는 Messaging Server 및 Sun Java System Calendar Server와 함께 번들로 제공되는 구성 요소입니다. 이 서비스는 게시/가입 구조를 사용하여 이벤트 알림을 보내고 받는 전용 서비스입니다.

Message Queue, Event Notification Service 또는 두 서비스 모두에 대해 알림 생성자를 구성할 수 있습니다.


주 –

이 장에서는 Message Queue에 대해서만 알림을 구성하는 방법에 대해 설명합니다.


Event Notification Service에 대한 자세한 내용은 Sun Java System Communications Suite Event Notification Service Guide를 참조하십시오.

22.1.2 알림 플러그 인

Messaging Server에서 Message Queue 또는 Event Notification Service로 보내는 알림을 생성하려면 해당 서비스의 플러그 인을 구성해야 합니다.

iBiff 플러그 인을 로드하고 Event Notification Service를 구성하는 방법을 보려면 Sun Java System Messaging Server 관리 설명서의 "부록 B: Messaging Server에서 Event Notification Service 관리"를 참조하십시오.

22.1.3 JMQ 알림 사용의 장점

JMQ 알림 플러그 인을 Message Queue와 함께 사용하면 다음과 같은 장점을 얻을 수 있습니다.

22.1.3.1 항목 또는 대기열에 게시

항목과 대기열은 서로 다른 메시징 전달 패턴을 사용하며 각각 Message Queue 서비스에 구성할 수 있습니다.

항목.메시지 생성자가 항목으로 메시지를 보낼 때 게시/가입 구조가 사용됩니다. 이 브로드캐스트 패턴에서 생성자는 항목 대상으로 메시지를 보냅니다. 이 항목 대상에 가입할 수 있는 소비자의 수에는 제한이 없습니다. 항목에 가입된 각 소비자는 자체 메시지 복사본을 가집니다. 항목에 가입된 소비자가 없는 경우에는 메시지가 삭제됩니다.

Event Notification Service도 게시/가입 구조를 사용하며 Message Queue에 정의된 항목 패턴과 비슷합니다.

대기열.메시지 생성자가 대기열에 메시지를 보낼 때 지점간 구조가 사용됩니다. 이 패턴에서는 생성자가 한 소비자만 메시지를 받을 수 있는 대기열 대상으로 메시지를 보냅니다. 대기열에서 오는 메시지를 여러 소비자가 기다리는 경우에는 가입자 중 하나만 메시지를 받습니다. 메시지를 기다리는 소비자가 없는 경우에는 메시지가 시간 초과되거나 사용자가 대기열에 관심을 보일 때까지 메시지가 보관됩니다.

대기열에 메시지를 생성하면 여러 소비자 사이에 메시지 로드를 분산할 수 있습니다.

22.1.3.2 여러 개의 JMQ 알림 플러그 인 사용

한 개에서 다섯 개까지 알림 플러그 인을 구성할 수 있습니다.

Messaging Server는 다음과 같은 기본 위치에 플러그 인 라이브러리를 제공합니다.

/opt/SUNWmsgsr/lib/libjmqnotify

configutil 유틸리티를 사용하여 플러그 인의 매개 변수를 지정하고 플러그 인이 실행 코드의 라이브러리를 가리키도록 합니다.

두 개 이상의 플러그 인을 지정한 경우 각 플러그 인은 다른 메시지와는 독립적으로 알림 메시지를 생성합니다. 예를 들어, delete-message 매개 변수로 두 개의 플러그 인을 구성하고 사용자의 메일함에서 메시지를 삭제한 경우, 두 플러그 인 모두가 알림 메시지를 생성합니다.

여러 개의 플러그 인을 구성하면 목적에 따라 다른 메시지 배포 패턴을 사용할 수 있습니다. 예를 들어, 각각 다음에 메시지를 생성하도록 서로 다른 세 개의 플러그 인을 구성할 수 있습니다.

22.1.3.3 알림 플러그 인의 매개 변수 구성

구성하는 각 플러그 인에 대해 별도의 configutil 매개 변수 집합을 정의해야 합니다.

매개 변수에 따라 두 가지 정보가 결정됩니다.

플러그 인을 구성하는 방법에 대한 지침은 JMQ 알림 플러그 인 구성 방법을 참조하십시오.

22.2 JMQ 알림 서비스 구성

이 절에서는 JMQ 알림 플러그 인이 전체 Message Queue 서비스 컨텍스트에 맞게 들어가는 방식에 대해 간략하게 설명합니다. 그런 다음 JMQ 알림 플러그 인을 구성하는 자세한 지침을 제공합니다.

22.2.1 JMQ 알림 서비스 계획

JMQ 알림 플러그 인은 Message Queue 서비스의 한 부분에 불과합니다. 메시징 서비스에는 메시지를 소비하는 클라이언트와 Message Queue 인프라(브로커, 관리 구성 요소 등)도 포함됩니다.

다음 단계는 Messaging Server를 지원하는 Message Queue 서비스를 만들기 위해 수행할 작업에 대한 간략한 설명입니다.

  1. 알림 메시지 서비스를 설계합니다.

    Messaging Server 설치에 필요한 알림 메시지를 정의합니다. 메시지 서비스 개발 라이프사이클의 계획 및 설계 단계는 이 장에서 다루는 범위를 벗어납니다. 하지만 JMQ 알림 플러그 인을 구성하기 전에 다음과 같은 설계 관련 질문을 생각해 봐야 합니다.

    • 알림으로 생성할 메시지 이벤트는 무엇입니까? 사용 가능한 알림 메시지의 목록은 22.3.1 알림 메시지를 참조하십시오.

    • 메시지를 대기열, 항목, 둘 다 중 어디에 생성하려고 합니까?

    • Message Queue 서비스뿐만 아니라 고유 Event Notification Service를 사용하려고 합니까?

    이런 질문를 생각해 보면 알림 플러그 인을 하나만 구성할 것인지 여러 개를 구성할 것인지, 그리고 각 플러그인을 어떻게 구성할 것인지 결정하는 데에 도움이 됩니다.

  2. Message Queue 제품을 설치, 구성 및 배포합니다.

    Message Queue 설치에 대한 자세한 내용은 Sun Java System Message Queue Installation Guide를 참조하십시오.

    Message Queue 구성 및 배포에 대한 자세한 내용은 Sun Java System Message Queue 관리 설명서를 참조하십시오.

  3. JMQ 알림 메시지를 소비할 Message Queue 클라이언트를 하나 이상 작성합니다.

    클라이언트는 Message Queue 클라이언트 API 요구 사항에 맞아야 합니다. 다음 경로에서 C로 작성된 간단한 클라이언트 소스 코드의 예를 찾을 수 있습니다.


    /opt/SUNWmsgsr/examples/jmqsdk/

    소스 파일 이름은 jmqclient.c입니다.

    이 클라이언트 소스 코드는 libjmqnotify 라이브러리에 있는 매개 변수로 정의된 JMQ 알림 메시지로부터 메시지를 받습니다. 그런 다음 메시지 출력을 stdout으로 보냅니다.

    C 또는 Java로 Message Queue 클라이언트를 작성하는 방법에 대한 자세한 내용은 Sun Java System Message Queue Developer's Guide for C Clients 또는 Sun Java System Message Queue Developer's Guide for Java Clients를 참조하십시오.

  4. 알림 메시지를 생성하도록 JMQ 알림 플러그 인을 구성 및 활성화합니다.

    이 장의 나머지 부분에서는 알림 플러그 인을 구성하는 방법에 대해 설명합니다.

  5. 런타임 Message Queue 클라이언트를 구성 및 시작합니다.

    런타임 Message Queue 클라이언트 배포에 대한 자세한 내용은 Sun Java System Message Queue 관리 설명서를 참조하십시오.

ProcedureJMQ 알림 플러그 인 구성 방법

이 절차에서는 먼저 알림을 생성하는 메시지 이벤트를 구성합니다. 다음으로는 Message Queue에 필요한 정보를 지정합니다. 마지막으로(단계 9) 플러그 인 라이브러리 이름 다음에 매개 변수를 지정하여 플러그 인 이름을 구성합니다.


'/opt/SUNWmsgsr/lib/libjmqnotify$plug-in_name'

플러그 인 이름을 지정하지 않으면 기본적으로 jmqnotify가 사용됩니다.

시작하기 전에

다음 제품을 설치, 구성 및 배포해야 합니다.


주 –

다음 단계에서 구성하는 대부분의 configutil 매개 변수는 선택 사항입니다. 기본값 목록은 표 22–2를 참조하십시오.


  1. 알림 메시지 매개 변수를 구성합니다.

    플러그 인에 포함할 각 알림 메시지 유형에 대해 configutil 유틸리티와 함께 local.store.notifyplugin 명령을 사용합니다.

    예를 들어 새 메시지에 대해 알림을 사용하려면 다음을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.NewMsg.enable -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 이 메시지의 알림을 활성화합니다. 0 값은 이 메시지의 알림을 비활성화합니다.

    모든 JMQ 알림 메시지의 목록은 22.3.1 알림 메시지를 참조하십시오.

    JMQ 알림 메시지를 활성화하는 configutil 매개 변수의 정의는 Sun Java System Messaging Server Administration Reference의 "3장: Messaging Server Configuration"을 참조하십시오.

    알림 메시지 중에는 두 개 이상의 configutil 매개 변수를 사용하여 추가 기능이 있는 메시지를 활성화하는 것도 있습니다. 예를 들어, 일부 메시지의 알림 텍스트에는 메시지 헤더가 포함되어 있습니다. 이런 메시지의 구성 방법에 대한 지침은 newflags 및 oldflags 등록 정보의 구문을 참조하십시오.


    주 –

    구성하는 각 플러그 인에 대해 별도로 매개 변수를 구성해야 합니다.

    따라서 jmq1jmq2라는 두 매개 변수를 구성한 경우 두 플러그 인 모두에서 새 메시지 알림을 활성화하려면 local.store.notifyplugin 명령을 두 번 실행해야 합니다.


    configutil -o local.store.notifyplugin.jmq1.NewMsg.enable -v 1

    configutil -o local.store.notifyplugin.jmq2.NewMsg.enable -v 1

  2. Message Queue 대상(브로커)이 실행 중인 호스트를 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.jmqHost -v "127.0.0.1"

    여기서 jmqnotify는 플러그 인의 이름이며

    "127.0.0.1"은 Message Queue 브로커의 호스트 시스템 IP 주소입니다.

  3. Message Queue 브로커의 포트를 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.jmqPort -v "7676"

    여기서 jmqnotify는 플러그 인의 이름이며

    "7676"은 Message Queue 브로커의 포트입니다.

  4. 서비스에 메시지를 생성할 권한이 있는 Message Queue 사용자의 사용자 아이디와 비밀번호를 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.jmqUser -v "guest"

    configutil -o local.store.notifyplugin.jmqnotify.jmqPwd -v "%$#a62t&"

    여기서 jmqnotify는 플러그 인의 이름이며

    "guest""%$#a62t&"는 각각 Message Queue 사용자의 사용자 아이디와 비밀번호입니다.

  5. 대상의 유형(항목 또는 대기열)과 메시지를 보낼 대상의 이름을 구성합니다.

    다음 단계를 수행합니다.

    1. 대상이 항목인지 대기열인지 지정합니다.

      예를 들어, 다음 명령을 입력합니다.


      configutil -o local.store.notifyplugin.jmqnotify.DestinationType -v "queue"

      여기서 jmqnotify는 플러그 인의 이름이며

      "queue"는 대상이 대기열이 되도록 지정합니다. 이 매개 변수에 허용되는 값은 "queue" "topic"입니다.

    2. 대상 이름을 지정합니다.

      예를 들어, 다음 명령 중 하나를 입력합니다.


      configutil -o local.store.notifyplugin.jmqnotify.jmqQueue -v "JES-MS"

      또는


      configutil -o local.store.notifyplugin.jmqnotify.jmqTopic -v "JES-MS"

      여기서 jmqnotify는 플러그 인의 이름이며

      jmqQueue 또는 jmqTopic은 대상 유형을 나타냅니다. jmqQueuejmqTopic 매개 변수는 서로 동의어이며 동시에 사용할 수 없습니다. 한 플러그 인에는 이 매개 변수 중 하나만 사용할 수 있습니다.

      "JES-MS"는 메시지를 보낼 대기열 또는 항목의 이름 예입니다.

  6. 메시지 우선 순위를 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.Priority -v 3

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 3은 이 플러그 인으로 생성되는 메시지에 지정할 Message Queue 우선 순위입니다.

    Priority의 기본값은 4입니다.

  7. Message Queue 브로커에 메시지를 보관하는 기간(밀리초)을 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.ttl -v 100

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 100은 Message Queue 서비스에서 메시지를 전달하거나 삭제하기 전에 100밀리초 동안 보관하도록 지정합니다. 0 값은 메시지를 영구적으로 보관하며 시간 초과가 발생하지 않음을 의미합니다.

  8. 메시지의 지속성을 지정합니다.

    예를 들어, 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin.jmqnotify.Persistent -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 Message Queue 서비스에 영구 메시지를 사용하도록 지정합니다. 허용되는 값은 1(영구)과 0(비영구)입니다.

  9. 플러그 인 이름을 지정합니다.

    기본 이름으로 플러그 인 하나를 구성하려면 플러그 인 라이브러리의 정규화된 이름을 입력하거나 라이브러리 이름과 해당 플러그 인 매개 변수를 입력합니다.


    configutil -o local.store.notifyplugin -v /opt/SUNWmsgsr/lib/libjmqnotify

    또는


    configutil -o local.store.notifyplugin -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmqnotify'

    여기서 libjmqnotify는 라이브러리 이름이며

    jmqnotify는 플러그 인 매개 변수의 기본 이름입니다.

    달러 기호($)를 사용하여 라이브러리 이름과 매개 변수를 분리합니다.

    전체 값을 작은 따옴표로 묶어야 합니다('value'). 그렇게 하지 않으면 쉘에서 달러 기호를 해석합니다.

    기본 플러그 인에서 읽는 configutil 매개 변수는 다음과 같은 이름을 가집니다.


    local.store.notifyplugin.jmqnotify.*

    jmq42 등의 다른 플러그 인 이름을 구성하려면 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmq42'

    jmq42 플러그 인에서 읽는 configutil 매개 변수는 다음과 같은 이름을 가집니다.


    local.store.notifyplugin.jmq42.*

Procedure여러 개의 플러그 인 구성 방법

  1. 만들려는 각 플러그 인에 대해 별도의 JMQ 알림 매개 변수 집합을 구성합니다.

    예를 들어, jmq1jmq2라는 두 개의 플러그 인을 구성하는 경우를 가정합니다. 새 메시지 알림은 두 플러그 인 모두에 대해 활성화하고 제거된 메시지 알림은 jmq2 플러그 인에 대해서만 활성화하려 합니다. 이 경우 다음과 같이 local.store.notifyplugin 명령을 세 번 실행합니다.


    configutil -o local.store.notifyplugin.jmq1.NewMsg.enable -v 1

    configutil -o local.store.notifyplugin.jmq2.NewMsg.enable -v 1

    configutil -o local.store.notifyplugin.jmq2.PurgeMsg.enable -v 1

    플러그 인이 Message Queue 서비스와 통신하도록 하는 매개 변수도 지정해야 합니다.

    모든 알림 매개 변수를 구성하는 단계별 지침은 JMQ 알림 플러그 인 구성 방법을 참조하십시오.

  2. 플러그 인 이름을 구성합니다.

    jmq1jmq2라는 두 개의 플러그 인을 구성하려면 다음 명령을 입력합니다.


    configutil -o local.store.notifyplugin 
    -v '/opt/SUNWmsgsr/lib/libjmqnotify$jmq1$$/opt/SUNWmsgsr/ \
    lib/libjmqnotify$jmq2'

    이 예에서는 플러그 인 라이브러리의 인스턴스 두 개가 실행됩니다.

    달러 기호 하나($)를 사용하여 라이브러리 이름과 플러그 인 이름을 지정하는 매개 변수를 분리합니다.

    달러 기호 두 개($$)를 사용하여 첫째 플러그 인 인스턴스를 다음 인스턴스와 분리합니다.

    전체 값을 작은 따옴표로 묶어야 합니다('value'). 그렇게 하지 않으면 쉘에서 달러 기호를 해석합니다.

    이 예에서 첫째 인스턴스는 jmq1이라는 이름의 매개 변수에서 구성을 작성합니다.


    local.store.notify.jmq1.*

    둘째 인스턴스는 jmq2라는 이름의 매개 변수에서 구성을 작성합니다.


    local.store.notify.jmq2.*

22.2.2 두 개 이상의 configutil 매개 변수를 사용하는 알림 메시지 지정

대부분의 알림 메시지에서는 local.store.notifyplugin 명령을 하나만 실행하여 메시지를 지정합니다.

하지만 다음 알림 메시지는 두 개 이상의 local.store.notifyplugin 명령으로 구성할 수 있습니다.

  1. NewMsg

  2. UpdateMsg

  3. DeleteMsg

  4. MsgFlags

다음 절차에서는 이런 알림 메시지를 설정하는 방법에 대해 설명합니다.

Procedure메시지 헤더와 메시지 본문에 새 메시지 및 업데이트된 메시지 알림 구성

새로운 전자 메일 메시지나 업데이트된 메시지가 있는 경우에 보내는 알림 메시지의 텍스트에 메시지 헤더와 메시지 본문을 추가할 수 있습니다.

메시지 헤더 및 메시지 본문을 포함하는 것은 선택 사항입니다. 둘 다 포함할 수도 있고, 하나만 포함할 수도 있고, 둘 다 포함하지 않을 수도 있습니다. 기본값은 메시지 헤더나 메시지 본문 없이 메시지를 보내는 것입니다.

  1. 새 메시지 또는 업데이트된 메시지 알림을 지정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.NewMsg.enable -v 1

    configutil -o local.store.notifyplugin.jmqnotify.UpdateMsg.enable -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 이런 메시지의 알림을 활성화합니다. 0 값은 알림을 비활성화합니다.

  2. 다음 예와 같이 maxHeaderSize 매개 변수에 0보다 큰 값을 지정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.maxHeaderSize -v 1024

    여기서 jmqnotify는 플러그 인의 이름이며

    1024는 보낼 헤더의 최대 크기입니다. maxHeaderSize의 기본값은 0이며, 이 값을 설정하면 메시지와 함께 헤더 정보를 보내지 않습니다.

  3. 다음 예와 같이 maxBodySize 매개 변수에 0보다 큰 값을 지정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.maxBodySize -v 1024

    여기서 jmqnotify는 플러그 인의 이름이며

    5120은 보낼 메시지 본문의 최대 크기입니다. maxBodySize의 기본값은 0이며, 이 값을 설정하면 메시지와 함께 본문을 보내지 않습니다.

Procedure메시지 헤더가 있는 삭제된 메시지 알림 구성 방법

전자 메일 메시지가 삭제된 경우 알림 메시지 텍스트에 메시지 헤더를 추가할 수 있습니다.

메시지 헤더를 포함하는 것은 선택 사항입니다. 기본값은 메시지 헤더 없이 알림을 보내는 것입니다.

  1. 전자 메일 메시지가 삭제되면 전송되도록 알림을 활성화합니다.


    configutil -o local.store.notifyplugin.jmqnotify.DeleteMsg.enable -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 이 메시지의 알림을 활성화합니다. 0 값은 알림을 비활성화합니다.

  2. ExpungeHeaders 매개 변수를 지정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.ExpungeHeaders -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 삭제된 메시지 알림과 함께 메시지 헤더가 전송되도록 합니다. ExpungeHeaders의 기본값은 0입니다. 이 값을 설정하면 삭제된 메시지 알림에 헤더 정보가 함께 전송되지 않습니다.

    DeleteMsg 메시지가 메시지 헤더를 전달하도록 ExpungeHeaders 매개 변수를 구성해야 합니다.

  3. 다음 예와 같이 maxHeaderSize 매개 변수에 0보다 큰 값을 지정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.maxHeaderSize -v 1024

    여기서 jmqnotify는 플러그 인의 이름이며

    1024는 보낼 헤더의 최대 크기입니다. maxHeaderSize의 기본값은 0이며, 이 값을 설정하면 메시지와 함께 헤더 정보를 보내지 않습니다.

22.2.2.1 메시지 상태 변경에 대한 알림 구성

전자 메일 메시지의 상태가 변경된 경우에 알림 메시지를 보내도록 구성할 수 있습니다.

메시지 플래그 알림으로 전달되는 정보

다음과 같은 이유로 전자 메일 메시지의 상태 플래그가 변경될 때마다 메시지 플래그 알림이 생성됩니다.

메시지 플래그 알림이 전송될 때 알림에는 다음 등록 정보가 포함됩니다.

이 정보는 5자로 된 문자열인 두 개의 등록 정보 oldflagsnewflags로 전달됩니다.

이 두 등록 정보의 값에 대한 설명은 newflags 및 oldflags 등록 정보의 구문을 참조하십시오.

메시지 플래그 알림에 필요한 Configutil 매개 변수

메시지 플래그 알림을 활성화하려면 다음 configutil 매개 변수를 구성해야 합니다.

첫째 MsgFlags 매개 변수는 IMAP 서버와 메시지 저장소에서 상태 플래그의 변경 값을 식별 및 추적하여 이 정보를 알림 메시지에 전달할 수 있도록 설정합니다.

이 매개 변수는 모든 알림 플러그 인에 적용됩니다. 따라서 메시지 플래그 알림을 사용하는 알림 플러그 인이 있는 경우에는 매개 변수를 활성화해야 합니다. 메시지 플래그 알림을 사용하는 플러그 인이 없는 경우에는 이 매개 변수를 비활성화(기본값)해야 합니다.

둘째 매개 변수 *.MsgFlags.enable을 사용하면 특정 플러그 인 라이브러리에 대해 메시지 플래그 알림을 전송할 수 있습니다.


주 –

메시지 플래그에 대해 알림을 활성화하려면 두 매개 변수를 모두 구성해야 합니다.


Procedure메시지 상태 플래그가 변경된 경우의 알림 활성 방법

  1. 메시지 플래그 알림으로 상태 플래그를 추적하고 상태 정보가 전달되도록 설정합니다.


    configutil -o local.store.notifyplugin.MsgFlags -v 1

    여기서 -v 1은 메시지 플래그 알림과 함께 메시지 플래그 정보가 전송되도록 설정합니다. 0 값은 이 알림을 비활성화합니다.

  2. 특정 플러그 인에서 메시지 플래그 알림을 보낼 수 있도록 설정합니다.


    configutil -o local.store.notifyplugin.jmqnotify.MsgFlags.enable -v 1

    여기서 jmqnotify는 플러그 인의 이름이며

    -v 1은 이 플러그 인에 대해 메시지 플래그 알림을 활성화합니다. 0 값은 알림을 비활성화합니다.

22.3 JMQ 알림 메시지 및 등록 정보

이 절에서는 다음 항목에 대해 설명합니다.

22.3.1 알림 메시지

메시지 저장소에서 발생하는 다양한 종류의 이벤트에 대해 알림 메시지를 생성할 수 있습니다. 예를 들어, 사용자가 로그인하면 Login 메시지를 생성하여 Message Queue 브로커에 전달할 수 있습니다.

configutil 매개 변수는 생성할 각 메시지 종류를 지정합니다. 메시지를 생성하는 이벤트는 다양한 configutil 매개 변수를 구성하여 결정합니다. configutil 매개 변수는 하나 이상의 JMQ 알림 플러그 인 라이브러리에서 참조됩니다.

모든 메시지는 대상 유형이 "topic" 또는 "queue" 중 어느 것으로 설정되었는지에 따라 항목 또는 대기열에 전달됩니다. Message Queue 대상을 구성하는 방법에 대한 자세한 내용은 JMQ 알림 플러그 인 구성 방법을 참조하십시오.

각 메시지는 다음 메시지 헤더로 식별됩니다.

MQ_MESSAGE_TYPE_HEADER_PROPERTY

JMQ 알림 플러그 인은 다음 표에 표시된 메시지를 지원합니다.

이런 메시지를 활성화하는 configutil 매개 변수의 목록은 22.3.4 configutil 매개 변수의 기본값 을 참조하십시오.

표 22–1 JMQ 알림 메시지

알림 메시지 

설명 

DeleteMsg

“삭제됨”으로 표시된 메시지가 메일함에서 제거됩니다. IMAP expunge와 동일합니다. 

Login

사용자가 IMAP, HTTP 또는 POP에서 로그인했습니다. (이 메시지는 configutil 매개 변수 local.store.notifyplugin.*.LogUser.enable로 활성화됩니다.)

Logout

사용자가 IMAP, HTTP 또는 POP에서 로그아웃했습니다. (이 메시지는 configutil 매개 변수 local.store.notifyplugin.*.LogUser.enable로 활성화됩니다.)

MsgFlags

메시지의 메시지 플래그가 변경되었습니다. 이 메시지와 함께 이전 플래그와 새 플래그가 전달됩니다. 

NewMsg

시스템에서 사용자의 메일함으로 새 메시지를 받았습니다. 메시지 헤더와 본문을 포함할 수 있습니다. 

OverQuota

사용자의 메일함이 할당량(diskquota, msgquota) 중 하나를 초과했기 때문에 작업이 실패했습니다. MTA 채널은 할당량이 변경되거나 사용자의 메일함 수가 할당량 아래로 떨어질 때까지 메시지를 보관합니다. MTA에 보관되어 있는 동안 메시지가 만료되면 정리됩니다. 

PurgeMsg

서버 프로세스 imexpire에 의해 메일함에 있는 메시지가 정리되었습니다(날짜 만료). 이것이 서버측 정리이고 DeleteMsg가 클라이언트측 정리입니다. 진정한 의미의 제거라고는 할 수 없습니다. 

ReadMsg

메일함에 있는 메시지를 읽었습니다. (IMAP 프로토콜에서 메시지가 조회로 표시되었습니다.) 

TrashMsg

IMAP 또는 HTTP에 의해 메시지가 삭제 표시되었습니다. 메일 클라이언트의 구성에 따라 폴더에 있는 메시지가 사용자에게 계속 보일 수도 있습니다. 정리를 수행하면 메시지가 폴더에서 제거됩니다. 

UnderQuota

할당량이 할당량 초과 상태에서 정상 상태로 돌아왔습니다. 

UpdateMsg

IMAP 작업에 의해 메시지가 메일함에 추가되었습니다. 예를 들어, 사용자가 전자 메일 메시지를 메일함에 복사했습니다. 메시지 헤더와 본문을 포함할 수 있습니다. 

22.3.2 알림 메시지의 규칙 및 지침

다음 규칙 및 지침이 지원되는 알림 메시지에 적용됩니다.

22.3.3 특정 메시지 유형의 알림

알림은 텍스트 메시지, 음성 메시지 및 이미지 데이터 등의 여러 메시지 유형에 대해 상태 정보를 전달할 수 있습니다. 같은 메일 폴더에 이러한 서로 다른 메시지 유형을 저장하려는 경우도 많습니다. 예를 들어, 사용자 휴대폰의 받은 메일함에 새로운 텍스트 메시지와 음성 메시지가 도착하는 경우가 있습니다.

이런 메시지 유형을 구성하려면 store.messagetype.enable과 같은 configutil 명령을 사용합니다. 메시지 유형의 구성 및 관리에 대한 자세한 내용은 “18장: 메시지 저장소 관리”에 있는 “메시지 유형 관리”를 참조하십시오.

메시지 유형을 구성하고 나면 JMQ 알림 메시지에서 특정 메시지 유형을 식별할 수 있습니다. 메시지 유형별로 알림 메시지를 해석하고 각 유형에 대한 상태 정보를 메일 클라이언트로 전달하도록 Message Queue 클라이언트를 작성할 수 있습니다.

예를 들어, 서로 다른 여러 유형의 새 메시지가 사용자의 메일함에 도착하는 경우를 가정할 수 있습니다. NewMsg 알림 메시지는 예를 들어 새 음성 메일 메시지 7개와 새 텍스트 메시지 4개가 사용자의 받은 메일함에 있다고 알리는 데이터를 전달할 수 있습니다.

다음 알림 메시지는 특정 메시지 유형을 추적하는 정보를 전달할 수 있습니다.


NewMsg
UpdateMsg
ReadMsg
TrashMsg
DeleteMsg
PurgeMsg
OverQuota
UnderQuota

JMQ 알림 기능에서는 현재 메일함에 있는 메시지의 수를 메시지 유형별로 계산합니다. 수 값이 하나 전달되는 대신 각 메시지 유형의 수를 지정하는 배열이 알림 메시지와 함께 전달됩니다.

메시지별 개수 값은 numMsgs 등록 정보를 통해 알림 메시지와 함께 전달됩니다. ReadMsgTrashMsg 알림 메시지의 경우 조회된 메시지의 수(numSeen)와 삭제됨으로 표시된 수(numDeleted) 역시 메시지 유형별로 계산됩니다.


주 –

Event Notification Service는 메시지 유형을 지원하지 않습니다. 메시지 유형에 대한 정보를 전달하려면 JMQ 알림 플러그 인을 사용하십시오.


22.3.4 configutil 매개 변수의 기본값

알림 메시지와 Message Queue에 필요한 구성 정보는 configutil 매개 변수로 구성됩니다.

표 22–2에는 이런 매개 변수와 그 기본값이 나와 있습니다.

configutil 매개 변수에 대한 자세한 정의는 Sun Java System Messaging Server Administration Reference의 "3장: Messaging Server Configuration"을 참조하십시오.

표 22–2 configutil 매개 변수 및 기본값

configutil 매개 변수

기본값 

local.store.notifyplugin.*.maxBodySize

0 — 비활성화 

local.store.notifyplugin.*.maxHeaderSize

0 — 비활성화 

local.store.notifyplugin.*.NewMsg.enable

1 — 활성화 

local.store.notifyplugin.*.UpdateMsg.enable

1 — 활성화 

local.store.notifyplugin.*.ReadMsg.enable

1 — 활성화 

local.store.notifyplugin.*.DeleteMsg.enable

1 — 활성화 

local.store.notifyplugin.*.PurgeMsg.enable

1 — 활성화 

local.store.notifyplugin.*.LogUser.enable

1 — 활성화 

local.store.notifyplugin.*.MsgFlags.enable

0 — 비활성화 

local.store.notifyplugin.*.noneInBox.enable

0 — 비활성화 

local.store.notifyplugin.*.jmqHost

“127.0.0.1” 

local.store.notifyplugin.*.jmqPort

7676 

local.store.notifyplugin.*.jmqTopic

“JES-MS” 

local.store.notifyplugin.*.jmqQueue

“JES-MS” 

local.store.notifyplugin.*.jmqUser

“guest” 

local.store.notifyplugin.*.jmqPwd

“guest” 

local.store.notifyplugin.*.destinationtype

“topic” 

local.store.notifyplugin.*.Priority

local.store.notifyplugin.*.ttl

0 — 메시지가 시간 초과되지 않음을 나타냅니다. 

local.store.notifyplugin.*.Persistent

1 — 활성화 

22.3.5 알림 메시지 등록 정보

모든 메시지는 등록 정보에 정의된 추가 정보를 전달합니다. 메시지마다 다른 등록 정보가 있습니다. 예를 들어, NewMsg는 새 메시지의 IMAP uid를 나타냅니다.

22.3.5.1 표준 알림 메시지 등록 정보

표 22–3에서는 표준 알림 메시지 등록 정보에 대해 설명합니다. 이 등록 정보는 모든 JMS 메시지에 있습니다.

표 22–3 표준 알림 메시지 등록 정보

등록 정보 

데이터 유형 

설명 

hostname

ConstMQString 

메시지를 생성한 시스템의 호스트 이름입니다. 

pid

MQInt32 

메시지를 생성한 프로세스의 ID입니다. 

process

ConstMQString 

메시지를 생성한 프로세스의 이름을 지정합니다. 

timestamp

MQFloat64 

기준 시점(GMT로 1970년 1월 1일 자정)으로부터 지난 시간(밀리초)을 지정합니다. 

22.3.5.2 특정 알림 메시지에만 해당되는 등록 정보

표 22–4에서는 특정 알림 메시지와 함께 전달되는 등록 정보에 대해 설명합니다.

각 메시지에는 아래 표에 표시된 등록 정보의 일부가 포함됩니다. 각 메시지에 연결된 등록 정보의 목록은 표 22–5를 참조하십시오.

표 22–4 특정 알림 메시지에만 해당되는 등록 정보

등록 정보 

데이터 유형 

설명 

client

ConstMQString 

메시지에 연결된 Message Queue 클라이언트의 IP 주소입니다. 

diskquota

MQInt32 

메시지에 연결된 사용자의 디스크 공간 할당량(KB)입니다. 값이 -1로 설정되면 할당량이 없는 것을 나타냅니다. 

diskquotaused

MQInt32 

메시지와 연결된 사용자가 사용하는 디스크 공간 크기(KB)입니다. 

hdrLen

MQInt32 

메시지 헤더의 크기입니다. 메시지 본문에 있는 헤더가 잘렸을 수도 있기 때문에 해당 헤더의 크기와 이 값이 다를 수도 있습니다. 

imapUid

MQInt32 

메시지와 연결된 IMAP uid 등록 정보입니다. 

lastUid

MQInt32 

메일함에 사용된 마지막 IMAP uid 값입니다. 

mailboxName

ConstMQstring 

이벤트와 연결된 메시지 저장소 메일함 이름입니다. mailboxName에는 다음 형식 중 하나가 지정됩니다. 여기서 uid는 사용자의 고유 식별자입니다.

uid — 기본(주) 도메인에 있는 사용자의 받은 메일함을 식별합니다.

uid@domain — 호스트된 도메인에 있는 사용자의 받은 메일함을 식별합니다.

uid/mailboxname — 기본 도메인에 있는 사용자의 최상위 메일함을 식별합니다.

uid@domain/mailboxname — 호스트된 도메인에 있는 사용자의 최상위 메일함을 식별합니다.

uid/foldername/mailboxname — 기본 도메인에 있는 사용자 폴더의 메일함을 식별합니다.

uid@domain/foldername/mailboxname — 호스트된 도메인에 있는 사용자 폴더의 메일함을 식별합니다.

msgquota

MQInt32 

최대 메시지 수에 대한 사용자의 할당량입니다. 값이 -1로 설정되면 할당량이 없는 것을 나타냅니다. 

newflags

ConstMQString 

현재 작업으로 인해 플래그가 변경된 후에 사용자의 메일함 메시지에 설정되는 플래그입니다. MsgFlags 알림 메시지가 생성된 경우에는 항상 이 등록 정보가 oldflags와 함께 존재합니다.

newflags의 구문과 값은 이 표 아래 있는 newflags 및 oldflags 등록 정보의 구문을 참조하십시오.

numDeleted

MQInt32 

메일함에서 삭제됨으로 표시된 메시지의 수입니다.  

이 수는 메일함 소유자가 삭제한 메시지의 수를 계산합니다. 다른 사용자가 메일함에 액세스할 수 있는 경우 메일함에서 다른 사용자가 수행하는 작업은 이 수에 포함되지 않습니다. (다른 사용자의 작업으로 DeleteMsg 등의 알림이 트리거될 수는 있습니다.)

numDeletednn

MQInt32 

메일함에서 삭제됨으로 표시된 메시지의 총 수를 나타내며, 각 메시지 유형별로 지정됩니다. 메시지 유형이 구성된 경우  

numDeletednn 등록 정보는 각 메시지 유형 nn에 대한 수를 전달합니다.

numDeleted 등록 정보는 항상 전달됩니다. 이 등록 정보는 모든 유형을 포함하여 삭제됨으로 표시된 모든 메시지의 총 수를 계산합니다.

예를 들어 20개의 메시지가 삭제됨으로 표시된 경우 10개가 유형 3이고, 7개가 유형 16이고, 나머지 메시지의 유형은 인식되지 않았다면 알림과 함께 다음 등록 정보 및 수 값이 전달됩니다.  

numDeleted=20

numDeleted3=10

numDeleted16=7

numMsgs

MQInt32 

현재 메일함에 있는 총 메시지 수입니다. 

numMsgsnn

MQInt32 

현재 메일함에 있는 메시지의 총 수를 나타내며 각 메시지 유형별로 지정됩니다. 메시지 유형이 구성된 경우  

numMsgsnn 등록 정보는 각 메시지 유형 nn에 해당하는 개수를 전달합니다.

numMsgs 등록 정보는 항상 전달됩니다. 이 등록 정보는 모든 유형을 포함하여 메일함에 있는 모든 메시지의 총 수를 나타냅니다.

예를 들어, 현재 메일함에 20개의 메시지가 있는 경우 10개가 유형 3이고, 7개가 유형 16이고, 나머지 메시지의 유형은 인식되지 않았다면 알림과 함께 다음 등록 정보 및 수 값이 전달됩니다.  

numMsgs=20

numMsgs3=10

numMsgs16=7

numSeen

MQInt32 

메일함에서 조회(읽음)로 표시된 메시지의 수입니다. 

이 수는 메일함 소유자가 읽은 메시지의 수를 계산합니다. 다른 사용자가 메일함에 액세스할 수 있는 경우 메일함에서 다른 사용자가 수행하는 작업은 이 수에 포함되지 않습니다. (다른 사용자의 작업으로 ReadMsg 등의 알림이 트리거될 수는 있습니다).

numSeennn

MQInt32 

메일함에서 조회(읽음)으로 표시된 메시지의 총 수를 나타내며, 각 메시지 유형별로 지정됩니다. 메시지 유형이 구성된 경우 numSeennn 등록 정보는 각 메시지 유형 nn에 해당하는 개수를 전달합니다.

numSeen 등록 정보는 항상 전달됩니다. 여기서는 모든 유형을 총괄하여 조회로 표시된 모든 메시지의 수를 나타냅니다.

예를 들어 20개의 메시지가 조회로 표시된 경우 10개가 유형 3이고, 7개가 유형 16이고, 나머지 메시지의 유형은 인식되지 않았다면 알림과 함께 다음 등록 정보 및 수 값이 전달됩니다.  

numSeen=20

numSeen3=10

numSeen16=7

numSeenDeleted

MQInt32 

메일함에서 조회(읽음)으로 표시되고 삭제됨으로 표시된 메시지의 수입니다. 

이 값은 읽음으로 표시되고 메일함 소유자에 의해 삭제된 메시지의 수를 나타냅니다. 다른 사용자가 메일함에 액세스할 수 있는 경우 메일함에서 다른 사용자가 수행하는 작업은 이 수에 포함되지 않습니다. (하지만 다른 사용자의 작업으로 ReadMsgDeleteMsg와 같은 알림이 트리거될 수는 있습니다).

numSeenDeletednn

MQInt32 

메일함에서 조회(읽음)으로 표시되고 삭제됨으로 표시된 메시지의 총 수를 나타내며, 각 메시지 유형별로 지정됩니다. 메시지 유형이 구성된 경우 numSeenDeletednn 등록 정보는 각 메시지 유형 nn에 해당하는 개수를 전달합니다.

numSeenDeleted 등록 정보는 항상 전달됩니다. 이 등록 정보는 모든 유형을 포함하여 읽음 및 삭제됨으로 표시된 모든 메시지의 총 수를 나타냅니다.

예를 들어 20개의 메시지가 읽음 및 삭제됨으로 표시된 경우 10개가 유형 3이고, 7개가 유형 16이고, 나머지 메시지의 유형은 인식되지 않았다면 알림과 함께 다음 등록 정보 및 수 값이 전달됩니다.  

numSeenDeleted=20

numSeenDeleted3=10

numSeenDeleted16=7

oldflags

ConstMQString 

현재 작업으로 인해 플래그가 변경되기 전에 사용자의 메일함 메시지에 설정되었던 플래그입니다. MsgFlags 알림 메시지가 생성된 경우에는 항상 이 등록 정보가 newflags와 함께 존재합니다.

oldflags의 구문과 값은 이 표 아래 있는 newflags 및 oldflags 등록 정보의 구문을 참조하십시오.

quotaRoot

ConstMQString 

이 값은 사용자 이름, 폴더 이름 또는 메시지 유형이 될 수 있습니다. 

size

MQInt32 

메시지의 크기입니다. 본문은 보통 메시지가 잘린 버전이기 때문에 이 값은 메시지 본문의 크기와 다를 수 있습니다. 

uidValidity

MQInt32 

IMAP uid 유효성 등록 정보입니다. 

userid

ConstMQString 

메시지와 연결된 사용자 아이디입니다. 


주 –

가입자는 메시지 참조를 구문 분석할 때 기록되지 않은 등록 정보를 허용해야 합니다. 그러면 이후에 새 등록 정보가 추가되어도 호환성을 유지할 수 있습니다.


newflags 및 oldflags 등록 정보의 구문

newflagsoldflags 등록 정보는 5자로 된 문자열입니다. 문자열에는 다음 값이 있어야 합니다.

22.3.5.3 각 알림 메시지와 함께 전달되는 등록 정보

표 22–5에서는 각 알림 메시지와 연결된 등록 정보가 표시되어 있습니다.

예를 들어 TrashMsg 메시지에 적용되는 등록 정보를 보려면 "ReadMsg, TrashMsg"의 열 헤더를 살펴 봅니다.TrashMsg 메시지에는 표준 등록 정보 외에도 mailboxName, numMsgs, uidValidity, numSeennumDeleted를 사용할 수 있습니다.

표 22–5 각 알림 메시지와 함께 전달되는 등록 정보

등록 정보 

NewMsg, UpdateMsg 

ReadMsg, TrashMsg 

DeleteMsg, PurgeMsg 

MsgFlags 

 

Login, Logout 

OverQuota, UnderQuota 

client

아니요 

아니요 

아니요 

아니요 

예 

아니요 

diskquota

아니요 

아니요 

아니요 

아니요 

아니요 

예 

diskquotaused

아니요 

아니요 

아니요 

아니요 

아니요 

예 

hdrLen

예 

아니요 

아니요 

예 

아니요 

아니요 

hostname

예 

예 

예 

예 

예 

예 

imapUid

예 

아니요 

예 

예 

아니요 

아니요 

lastUid

아니요 

아니요 

예 

아니요 

아니요 

아니요 

mailboxName

예 

예 

예 

예 

아니요 

아니요 

msgquota

아니요 

아니요 

아니요 

아니요 

아니요 

예 

newflags

아니요 

아니요 

아니요 

예 

아니요 

아니요 

numDeleted

예 

예 

예 

아니요 

아니요 

아니요 

numDeletedn

예* 

예* 

예* 

아니요 

아니요 

아니요 

numMsgs

예 

예 

예 

아니요 

아니요 

예 

numMsgsn

예* 

예* 

예* 

아니요 

아니요 

아니요 

numSeen

예 

예 

예 

아니요 

아니요 

아니요 

numSeenn

예* 

예* 

예* 

아니요 

아니요 

아니요 

numSeenDeleted

예 

예 

예 

아니요 

아니요 

아니요 

numSeenDeletedn

예* 

예* 

예* 

아니요 

아니요 

아니요 

oldflags

아니요 

아니요 

아니요 

예 

아니요 

아니요 

Owner

아니요 

예 

아니요 

아니요 

아니요 

아니요 

pid

예 

예 

예 

예 

예 

예 

process

예 

예 

예 

예 

예 

예 

quotaRoot

아니요 

아니요 

아니요 

아니요 

아니요 

예 

size

예 

아니요 

아니요 

아니요 

아니요 

아니요 

timestamp

예 

예 

예 

예 

예 

예 

uidValidity

예 

예 

예 

예 

아니요 

아니요 

userid

아니요 

예 

아니요 

아니요 

예 

예 


주 –

* numDeletedn, numMsgs n, numSeennnumSeenDeletedn 등록 정보는 메시지 저장소에 메시지 유형이 정의된 경우에만 알림과 함께 전달됩니다.