第27章 事前承認モード


JMS は、次の 3 つの承認モードを指定します。
  • AUTO_ACKNOWLEDGE
  • CLIENT_ACKNOWLEDGE
  • DUPS_OK_ACKNOWLEDGE
ただし、JMS によってサポートされない別のケースがあります。場合によっては、障害発生時にメッセージを失い、メッセージをクライアントに配信する前にサーバーでメッセージを承認することが適切なことがあります。
HornetQ では、この特別なモードは pre-acknowledge モードと呼ばれます。
配信前にサーバーで承認する欠点は、サーバーでメッセージを承認してからメッセージがクライアントに配信されるまでにシステムがクラッシュした場合に、メッセージが失われることです。
メッセージングのケースに応じて、事前承認モードでは、メッセージが失われることがある代わりにネットワークトラフィックと CPU の負荷を回避できます。
事前承認の使用例は、株価更新メッセージです。これらのメッセージでは、クラッシュ時にメッセージを失うことが適切な場合があります。これは、次の株価更新メッセージがすぐに到着し、前の株価を上書きするためです。

注記

事前承認モードを使用する場合は、消費されるメッセージのトランザクションセマンティクスが失われます。これは、メッセージが、トランザクションをコミットしたときではなく、サーバーで最初に承認されるためです。

27.1. PRE_ACKNOWLEDGE の使用

これは、以下のように JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml ファイルの connection factory で設定できます。
<connection-factory name="NettyConnectionFactory">
   <connectors>
      <connector-ref connector-name="netty-connector"/>
   </connectors>
   <entries>
      <entry name="/ConnectionFactory"/>
   </entries>
   <pre-acknowledge>true</pre-acknowledge>
</connection-factory>
Copy to Clipboard Toggle word wrap
または、JMS API で事前承認モードを使用するために、HornetQSession.PRE_ACKNOWLEDGE 定数で JMS セッションを作成します。
// messages will be acknowledge on the server *before* being delivered to the client
Session session = connection.createSession(false, HornetQSession.PRE_ACKNOWLEDGE);
Copy to Clipboard Toggle word wrap
または、セッターメソッドを使用して、HornetQConnectionFactory インストールで直接事前承認を設定できます。
コア API で事前承認を使用するために、セッターメソッドを使用して ClientSessionFactory インスタンスで直接これを設定できます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat