Sun Java System Messaging Server 6.3 管理ガイド

22.3 JMQ 通知メッセージとプロパティー

この節で説明する内容は、次のとおりです。

22.3.1 通知メッセージ

メッセージストア内で発生するさまざまな種類のイベントに対して通知メッセージを生成できます。たとえば、ユーザーがログインしたら、Login メッセージを生成して Message Queue ブローカに配信できます。

configutil パラメータは、生成する各メッセージの種類を指定します。各種の configutil パラメータを設定することによって、どのイベントでメッセージを生成するかを決定します。configutil パラメータは、1 つ以上の JMQ 通知プラグインライブラリによって参照されます。

送信先の種類が "topic" または "queue" のどちらに設定されているかに応じて、すべてのメッセージがトピックまたはキューに配信されます。Message Queue 送信先を設定する方法については、「JMQ 通知プラグインを設定する」を参照してください。

各メッセージは、次のメッセージヘッダーで識別されます。

MQ_MESSAGE_TYPE_HEADER_PROPERTY

JMQ 通知プラグインは、次の表に示すメッセージをサポートしています。

これらのメッセージを有効にする configutil パラメータのリストについては、「22.3.4 configutil パラメータのデフォルト値」を参照してください。

表 22–1 JMQ 通知メッセージ

通知メッセージ 

説明 

DeleteMsg

「削除済み」としてマークされたメッセージがメールボックスから削除されました。これは IMAP の破棄と同等です。 

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

制限容量が OverQuota 状態から正常に戻りました。 

UpdateMsg

IMAP 操作によってメッセージがメールボックスに追加されました。たとえば、ユーザーが電子メールメッセージをメールボックスにコピーしました。メッセージヘッダーや本文が含まれている可能性があります。 

22.3.2 通知メッセージのための規則とガイドライン

サポートされている通知メッセージには、次の規則とガイドラインが適用されます。

22.3.3 特定のメッセージタイプに対する通知

通知は、テキストメッセージ、ボイスメール、イメージデータなどの、異なるタイプのメッセージに関する状態情報を配信できます。ユーザーはたいてい、これらの異なるメッセージタイプのメッセージが同じメールフォルダに格納されることを期待しています。たとえば、新しいテキストメッセージとボイスメールがユーザーの携帯電話の受信箱に到着することを希望する場合があります。

これらのメッセージタイプを設定するには、store.messagetype.enable などの configutil コマンドを使用します。メッセージタイプの設定と管理については、第 20 章「メッセージストアを管理する」にある「メッセージタイプの管理」を参照してください。

メッセージタイプが設定されていれば、JMQ 通知メッセージで特定のメッセージタイプを識別できます。通知メッセージをメッセージタイプごとに解釈し、各タイプに関する状態情報をメールクライアントに配信するように Message Queue クライアントを記述できます。

たとえば、異なるタイプの新しいメッセージがユーザーのメールボックスに到着したとします。たとえば、ユーザーの受信箱に 7 つの新しいボイスメールメッセージと 4 つの新しいテキストメッセージが存在することをユーザーに通知するデータを、NewMsg 通知メッセージに含めることができます。

次の通知メッセージに、特定のメッセージタイプを追跡するための情報を含めることができます。


NewMsg
UpdateMsg
ReadMsg
TrashMsg
DeleteMsg
PurgeMsg
OverQuota
UnderQuota

JMQ 通知機能は、現在メールボックス内にあるメッセージの数をメッセージタイプごとにカウントします。1 つのカウントを送信するのではなく、メッセージタイプごとのカウントを指定する配列が通知メッセージとともに送信されます。

メッセージ固有のカウントは numMsgs プロパティーに含まれ、通知メッセージで配信されます。ReadMsg および TrashMsg 通知メッセージでは、開封されたメッセージの数 (numSeen) と削除済みとしてマークされた数 (numDeleted) もメッセージタイプごとにカウントされます。


注 –

イベント通知サービスは、メッセージタイプをサポートしていません。メッセージタイプに関する情報を配信するには、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 

エポック (1970 年 1 月 1 日 0:00:00 GMT) 以降のミリ秒数を指定します。 

22.3.5.2 特定の通知メッセージに固有のプロパティー

表 22–4 は、特定の通知メッセージに含まれるプロパティーを示しています。

各メッセージには、次の表に示すプロパティーのサブセットが含まれます。各メッセージに関連付けられたプロパティーのリストについては、表 22–5 を参照してください。

表 22–4 特定の通知メッセージに固有のプロパティー

プロパティー 

データ型 

説明 

client

ConstMQString 

メッセージに関連付けられた Message Queue クライアントの IP アドレス。 

diskquota

MQInt32 

メッセージに関連付けられたユーザーのディスク制限容量 (K バイト単位)。この値が -1 に設定されている場合は、制限容量がないことを示します。 

diskquotaused

MQInt32 

メッセージに関連付けられたユーザーによって使用されたディスク容量 (K バイト単位)。 

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 

メッセージに関連付けられたユーザー ID。 


注 –

サブスクライバは、メッセージ参照を解析する場合、ドキュメント化されていないプロパティーを許可するようにしてください。これにより、新しいプロパティーが追加された場合でも将来の互換性が確保されます。


newflags および oldflags プロパティーの構文

newflags および oldflags プロパティーは 5 文字の文字列です。文字列は次の値を持つ必要があります。

22.3.5.3 各通知メッセージに含まれるプロパティー

表 22–5 は、各通知メッセージに関連付けられたプロパティーを示しています。

たとえば、TrashMsg メッセージにどのプロパティーが適用されるかを調べるには、「ReadMsg、TrashMsg」の列タイトルを参照します。TrashMsg メッセージは、標準のプロパティーに加えて、mailboxNamenumMsgsuidValiditynumSeen、および numDeleted を使用できます。

表 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

なし 

あり 

なし 

なし 

あり 

あり 


注 –

* numDeletednnumMsgsnnumSeenn、および numSeenDeletedn プロパティーが通知に含まれるのは、メッセージストアでメッセージタイプが定義されている場合だけです。