Sun Java System Messaging Server 6.3 관리 설명서

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 등록 정보는 메시지 저장소에 메시지 유형이 정의된 경우에만 알림과 함께 전달됩니다.