18.9. PRE_ACKNOWLEDGE モード


JMS は次の 3 つの承認モードを指定します。
  • AUTO_ACKNOWLEDGE
  • CLIENT_ACKNOWLEDGE
  • DUPS_OK_ACKNOWLEDGE
HornetQ は、PRE_ACKNOWLEDGE と INDIVIDUAL_ACKNOWLEDGE の 2 つの追加モードをサポートします。
シナリオによっては、障害発生時にメッセージを失わせる可能性があるので、クライアントへ配信する前にサーバーでメッセージを確認しやすくなります。
この追加モードは HornetQ によってサポートされ、事前承認モードと呼ばれます。
配信前にサーバーでメッセージを承認する欠点は、サーバーでメッセージを承認した後、クライアントに配信される前にシステムがクラッシュした場合にメッセージが失われることです。この場合、システムの再起動時にメッセージが失われ、復元されません。
メッセージングのケースに応じて、事前承認モードでは、メッセージ損失による対応により、追加のネットワークトラフィックと CPU を回避できます。
事前承認の使用例は、株式価格更新メッセージに関連します。これらのメッセージでは、クラッシュ発生時にメッセージが失われることは適切です。これは、次の価格更新メッセージがすぐに到達し、前の価格を上書きするためです。
注記
pre-acknowledge モードを使用する場合、消費されるメッセージのトランザクションセマンティクスが失われます。これは、トランザクションのコミット時ではなく、サーバーで最初に確認されるためです。

18.9.1. PRE_ACKNOWLEDGE の使用

事前承認モードは、接続ファクトリーの standalone.xml または domain.xml ファイルで設定できます。
<connection-factory name="ConnectionFactory">
   <connectors>
      <connector-ref connector-name="netty-connector"/>
   </connectors>
   <entries>
      <entry name="ConnectionFactory"/>
   </entries>
   <pre-acknowledge>true</pre-acknowledge>
</connection-factory>
または、JMS API を使用して事前承認モードを使用するには、HornetQSession.PRE_ACKNOWLEDGE 定数で JMS セッションを作成します。
// messages will be acknowledge on the server *before* being delivered to the client
Session session = connection.createSession(false, HornetQJMSConstants.PRE_ACKNOWLEDGE);
または、setset メソッドを使用して HornetQConnectionFactory インスタンスに事前承認を直接設定できます。
コア API を使用して事前承認モードを使用するには、セッターメソッドを使用して ClientSessionFactory インスタンスに直接設定できます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.