Fiorano Logo Share (facebook)
english 英語   Deutsch ドイツ語   japanese 日本語
ホーム | What We Do | ブログ | ニュース | ダウンロード | POC お申込み | お問合せ | サイトマップ   
    ホーム >> 製品ライン >> FioranoMQ トップ >> FioranoMQ の機能 >> JMS とは >> メッセージ配信の保証

  製品ライン
     FioranoMQ® トップ
        FioranoMQ® 10 (JMS 2.0)
           共有サブスクリプション

        FioranoMQ® の利点
        メッセージ配信性能
        機能説明
           デザイン ゴール
           JMS に準拠した機能
           JMS 補完機能
        最新機能 (リリース情報)
        動作環境 (システム要件)

FioranoMQ Datasheet
製品紹介パンフレット


     Fiorano Integration

     Fiorano API マネジメント

JMS の機能的特徴 (メッセージ配信の保証)



4. メッセージ配信の保証
JMS におけるメッセージ配信の保証は、次のメカニズムによって実現されます。

     ACKNOWLEDGE と永続 (persistent) メッセージ
     トランザクショナル メッセージ (ローカル トランザクション)
     継続サブスクライバ (durable subscriber)


4.1 ACKNOWLEDGE と永続 (persistent) メッセージ
JMS におけるメッセージ送受信の承認 (ACKNOWLEDGE) は、プロデューサ--サーバーサ間とコンシューマ-- サーバー間でそれぞれ独立して行われます。これによって、プロデューサとコンシューマの疎結合を確保しています。
永続メッセージとマークされたメッセージの場合、メッセージは外部の永続的なデータ ストアに格納されます。これによって、JMS サーバーに障害が発生した場合のメッセージ消失を防いでいます。


図 5. メッセージの承認と永続メッセージ
  1. プロデューサは、ディストネーション (キュー、トピック) に向けてメッセージを送信します。
  2. JMS サーバーは、メッセージをディストネーションに格納します。永続 (persistent) とマークされたメッセージの場合には、さらに外部のデータ ストアに保存します。
  3. プロデューサに承認 (ACKNOWLEDGE) を返信します。
  4. ACKNOWLEDGE を受け取ったプロデューサは、送信が完了したものとして次の処理に移行します。

  5. コンシューマは、ディストネーションからメッセージを受信すると、JMS サーバーに対して ACKNOWLEDGE を返します
  6. ACKNOWLEDGE を受け取った JMS サーバーは、メッセージの配信が完了したものとして、ディストネーションから削除します。また、永続メッセージの場合は、外部ストアからもメッセージを消去します。

重要な点は、これらのメカニズムは障害が回復した後のメッセージ配信の機能であり、障害発生時の対処方法を規定するものではないという点です。
また、これらのメカニズムはすべてコンシューマにおけるメッセージの受信を保証するものであり、プロデューサにおける処理を保証するものでもありません。

JMS における耐障害性 (フォルト トレーランス) の機能については、製品ベンダーにその実装が任されています。
FioranoMQ では、JMS クライアントにフォルトトレーランスのメカニズムを提供する
  • 恒久接続
  • クライアント サイドの永続化
の 2 つの機能を導入しました。
これによって、障害発生時の堅牢性を高めるとともに、プロデューサにおけるメッセージ損失を避けることができます。


       詳細については FioranoMQ フォルト トレーランスの向上 のページへ


4.2 トランザクショナル メッセージ (ローカル トランザクション)
JMS では、複数のメッセージからなるメッセージ グループをトランザクションとして処理します。
承認 (ACKNOWLEDGE) と同様に、トランザクションはプロデューサー-サーバーサ間とコンシューマー-サーバー間でそれぞれ独立して処理されます。


図 6. トランザクショナル メッセージ
  1. プロデューサは、ディストネーション (キュー、トピック) に向けて一連のメッセージを順に送信します。
  2. JMS サーバーは、メッセージをディストネーションに格納します。プロデューサからコミットもしくはロールバックが発行されるまで、メッセージはすべてディストネーションに保存されています。
  3. プロデューサがコミットを発行するまで、メッセージはコンシューマに配信されません。コミットされると、メッセージが配信されます。
  4. プロデューサがロールバックを発行すると、ディストネーション上の一連のメッセージは破棄されます。
  5. コンシューマは、ディストネーションから一連のメッセージを受信します。
  6. JMS サーバーは、コンシューマがコミットを発行するまでメッセージを保持します。
  7. コンシューマによってコミットされると、ディストネーション上のメッセージを消去します。
  8. コンシューマがロールバックを発行した場合、メッセージは再送されます。

分散トランザクションについて
上述のトランザクショナル メッセージは、メッセージ (グループ) をアトミック (Atomic) な単位としたトランザクション処理です。
アプリケーションによっては、分散トランザクション処理が必要となる場合があります。例えば、プロデューサがデータベースにデータを書き込むと共に、コンシューマにもデータを送信をするような場合です。このようなケースでは、JMS サーバーにメッセージを送信することができなかった場合、データベースへのデータ書込みをロールバックする必要があります。

JMS 仕様では、分散トランザクションを必須としていません。ただし、分散トランザクションを実装する場合には、JTA (Java Transaction API) に準拠することを求められています。

FioranoMQ では、JTA に準拠した XA 分散トランザクションをサポートしています。

       XA 分散トランザクションのサポート のページへ


4.3 継続サブスクライバ (durable subscriber)
継続サブスクライバとは、サーバーとの接続が切断されている間もメッセージの購読を継続するサブスクライバのことです。

継続 (durable) の指定がないサブスクライバのみがメッセージを購読している場合、メッセージがパブリッシュされた時点で接続されているアクティブなサブスクライバにメッセージが配信され、アクティブなサブスクライバのすべてがメッセージを受信した時点でそのメッセージは消去されます。

継続サブスクライバの場合、継続サブスクライバの接続が切断されても JMS サーバーはメッセージを蓄積し、消去しません。何らかの障害による切断でも、継続サブスクライバの意図的な切断でも変わりません。
継続サブスクライバが接続を再開すると、蓄積されていたメッセージが配信されます。

継続サブスクライバの機能は、サブスクライバ側に障害が発生した場合のメッセージ配信を保証します。PTP (キュー) の場合、コンシューマ クライアントが接続していない状況でも必ずキュー上にメッセージが保持されますので、特に durable の指定はありません。

『4.1 ACKNOWLEDGE と永続 (persistent) メッセージ』 のセクションで説明したように、継続サブスクライバもコンシューマ (サブスクライバ) におけるメッセージの受信を保証するものであり、プロデューサ (パブリッシャ) における処理を保証するものではありません。
FioranoMQ は、パブリッシャにおけるフォルト トレーランスを高める機能を有しています。

       FioranoMQ フォルト トレーランスの向上 のページへ



 製品 / ソリューション
インテグレーション プラットフォーム | ESB | クラウド連携プラットフォーム | B2B/EDI ゲートウェイ | プリビルト マイクロサービス/アダプター | BPM ツール
API マネジメント          MQ | JMS | MQTT (IoT/M2M) | メッセージング
SAP 連携 | Salesforce 連携 | モバイル インテグレーション | SOA/EDI | ハイブリッド クラウド連携 |
医療連携 | 電子商取引 | バンキング ソリューション | FIX (電子証券取引) | e-GIF (電子政府)

フィオラノ ソフトウェア公式ブログ
        フィオラノ ジャパン ブログ
フィオラノ ソフトウェア (株) 公式 SNS
    Share (facebook)     FioranoonGoogle+            

プライバシー ポリシー | 利用規約 | お問合わせ     
© Fiorano Software Technologies P Ltd. All Rights Reserved.