20.10.2. メッセージ送信への複製メッセージ検出の使用
送信メッセージに対して複製メッセージの検出を有効にするには、メッセージ上で特別なプロパティーを一意の値に設定する必要があります。好きな値を使用できますが、値が一意となる必要があります。
ターゲットサーバーがこのメッセージを受信すると、特別なプロパティーが設定されているかどうかを確認します。プロパティーが設定されている場合、ターゲットサーバーはヘッダーにその値がある受信したメッセージのメモリーキャッシュをチェックします。サーバーがヘッダーに同じ値があるメッセージを見つけると、クライアントによって送信されたメッセージを無視します。
トランザクションでメッセージを送信する場合、そのトランザクションのすべてのメッセージにプロパティーを設定する必要はありません。トランザクションで 1 度だけ設定する必要があります。サーバーがトランザクションのメッセージの複製を検出した場合、トランザクション全体を無視します。
設定するプロパティーの名前は、
org.hornetq.api.core.HDR_DUPLICATE_DETECTION_ID
の値によって付与され、その値は _HQ_DUPL_ID
になります。このプロパティーの値は、コア API のタイプ byte[]
または SimpleString
になります。JMS (Java Messaging Service) クライアントでは、一意の値を持つタイプ String
である必要があります。簡単に一意の ID を生成するには、UUID を生成します。
下例はコア API のプロパティーを設定する方法を示しています。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
下例は JMS クライアントのプロパティーを設定する方法を示しています。
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow