intra-mart Accel Platform IM-MessageHub プログラミングガイド 第3版 2021-04-01

6.8. 配信メッセージの分割

ここでは配信メッセージの分割と設定方法について説明します。

6.8.1. 配信メッセージの分割とは

IM-MessageHub の行う配信処理は、各配信先メディアに対してそれぞれ一度行われます。
この時、配信先メディアへの配信処理によっては、一度に配信できない場合があります。
このような場合のために、IM-MessageHub では、配信メッセージを分割してから配信処理を実行します。
IM-MessageHub で標準で用意されている配信メッセージの分割処理は以下の通りです。
なお、メッセージの分割処理は、上記の順に実行されます。

6.8.2. 宛先ユーザ情報による分割

全てのメッセージを一度に配信した場合、宛先ユーザによっては自分のロケールと異なるロケールでメッセージが通知されることとなります。
IM-MessageHub では、メッセージの本文が同一となるように、宛先ユーザの「ロケール」と「タイムゾーン」が同一の宛先ごとに配信メッセージを分割します。
この処理は、配信先メディアや設定によらず、常に実行されます。

6.8.3. 宛先の数による分割

IM-MessageHub を利用したメール配信の場合、一つのメッセージに多くの宛先(TO)が指定された状態で配信処理を行うと、メールサーバへの過負荷や規制の対象となる可能性が考えられます。
この問題を回避するために、 IM-MessageHub には、配信クラス毎に宛先の配信上限数を指定することができます。
メッセージの宛先が設定された上限数を越えたメッセージは、分割されて配信されます。
IM-MessageHub は宛先の上限数を配信先メディアを定義するプラグインファイル内に設定します。
具体的には、「 配信先メディアを定義する 」で作成したプラグインファイルに設定します。
宛先の上限数を 50 とする設定例は以下の通りです。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
    <extension point = "jp.co.intra_mart.message_hub.DeliveryMedias">
        <delivery-media
                id   = "immh.sample.delivery" 
                name = "Sample Delivery Media" 
                name-key = "CAP.Z.SAMPLE.APPLICATION.NAME" 
                deliverer-class ="sample.message_hub.delivery.SampleMessageDeliverer" 
                version = "8.0.0" 
                rank = "100" >
            <init-param>
                <param-name>max-address-size</param-name>
                <param-value>50</param-value>
            </init-param>
        </delivery-media>
    </extension>
</plugin>
表:属性の詳細
タグ名 説明
param-name
max-address-size を指定してください。
param-value
最大宛先数とする数値を指定してください。
デフォルトでは 0 (分割しない)になります。