Sun Java System Messaging Server 6.3 관리 설명서

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 값은 알림을 비활성화합니다.