Show Table of Contents
20.8.2. メッセージ送信への複製メッセージ検出の使用
送信メッセージに対して複製メッセージの検出を有効にするには、メッセージ上で特別なプロパティーを一意の値に設定する必要があります。好きな値を使用できますが、値が一意となる必要があります。
ターゲットサーバーがこのメッセージを受信すると、特別なプロパティーが設定されているかどうかを確認します。プロパティーが設定されている場合、ターゲットサーバーはヘッダーにその値がある受信したメッセージのメモリーキャッシュをチェックします。サーバーがヘッダーに同じ値があるメッセージを見つけると、クライアントによって送信されたメッセージを無視します。
トランザクションでメッセージを送信する場合、そのトランザクションのすべてのメッセージにプロパティーを設定する必要はありません。トランザクションで 1 度だけ設定する必要があります。サーバーがトランザクションのメッセージの複製を検出した場合、トランザクション全体を無視します。
設定するプロパティーの名前は、
org.hornetq.api.core.HDR_DUPLICATE_DETECTION_ID の値によって付与され、その値は _HQ_DUPL_ID になります。このプロパティーの値は、コア API のタイプ byte[] または SimpleString になります。JMS (Java Messaging Service) クライアントでは、一意の値を持つタイプ String である必要があります。簡単に一意の ID を生成するには、UUID を生成します。
下例はコア API のプロパティーを設定する方法を示しています。
... ClientMessage message = session.createMessage(true); SimpleString myUniqueID = "This is my unique id"; // Can use a UUID for this message.setStringProperty(HDR_DUPLICATE_DETECTION_ID, myUniqueID); ...下例は JMS クライアントのプロパティーを設定する方法を示しています。
... Message jmsMessage = session.createMessage(); String myUniqueID = "This is my unique id"; // Could use a UUID for this message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID); ...

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.