Jms Topicの永続購読について-Bory.Chan

1871 ワード

ホログラムミドルウェアのTopicメカニズムは,一般にメッセージを保存していない.接続されていないと、再接続時に接続期間を失ったメッセージは受信されません.このメカニズムは、メッセージが失われる可能性のあるシーンに適用される.もちろん、メッセージミドルウェアにはメッセージを保存する機能があります.Jms仕様ではDurableSubscriberが定義されている.
Jms仕様の永続化サブスクリプションに関する一部

                         。    ,           
            。        ,           。
              ,         durable(    )。        
     JMS             (subscription)。           
               。               ,JMS     
  ,             。

Jms仕様を見るとめまいがします(翻訳が下手かもしれません)、キーコードを見て理解しやすいです.
永続的なサブスクリプションを使用するには、送信者はDeliveryModeを使用します.PERSISTENTモード発見、接続前に設定.サブスクライバはクライアント名を設定しsessionを呼び出す.createDurableSubscriber.
Sender:
 
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);  
  • Destination destination = session.createTopic("my-topic");  

  •   
  • MessageProducer producer = session.createProducer(destination);  

  • producer.setDeliveryMode(DeliveryMode.PERSISTENT);//保存メッセージの設定
  • connection.start();//設定完了後、
  • に接続する
    Receiver:
     
    connection.setClientID("client-name");  
  • final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);  

  •   
  • Topic topic = session.createTopic("my-topic");  

  • MessageConsumer consumer = session.createDurableSubscriber(topic, "my-sub-name");  
  • connection.start();  

  • 最後に、まずReceiverを実行して、目的はこのクライアント(メッセージミドルウェアサーバがこのクライアントのためにメッセージを保存するようにする)を登録して、それからこのReceiverを閉じて、Senderを起動して、メッセージを発見して、それからReceiverを起動してオフラインメッセージを受け取ることができます.
    通常の購読者:MessageConsumer consumer=sessionを同時に有効にすることができます.createConsumer(topic); 対比する.
    使用中、メッセージサーバは、オフラインで登録されたクライアントごとに独立したメッセージを保存し、オンラインになったときに送信すると感じます.
    このメカニズムは授業を受けるようなものです.先生が授業をしているので、テープレコーダーを持っている学生はサインして授業をサボることができます.持続的な購読者はテープレコーダーを持っている学生です.
    全文を読むと...