當前位置:編程學習大全網 - 源碼下載 - Java消息服務的持久訂閱

Java消息服務的持久訂閱

JMS 通過允許創建持久訂閱來簡化時間相關性,即使消息預訂者未激活也可以接收到消息。此外,使用持久訂閱還可通過隊列提供靈活性和可靠性,而仍然允許消息被發給許多的接收者。 Topic Subscriber topic Subscriber = topicSession.createDurableSubscriber(topic, subscriptionName);

Connection 對象表示了到兩種消息模型中的任壹種的消息系統的連接。服務器端和客戶機端對象要求管理創建的JMS連接的狀態。連接是由Connection Factory創建的並且通過JNDI查尋定位。//取得用於 P2P的 QueueConnectionFactory QueueConnectionFactory = queueConnectionFactory( ); Context messaging = new InitialContext( ); QueueConnectionFactory = (QueueConnectionFactory) Messaging.lookup(“QueueConnectionFactory”); //取得用於 pub/sub的 TopicConnectionFactory TopicConnectonFactory topicConnectionFactory; Context messaging = new InitialContext(); topicConnectionFactory = (TopicConnectionFactory) messaging.lookup(“TopicConnectionFactory”);

註意:用於P2P的代碼和用於PublishSubscribe的代碼非常相似。

如果 session 被標記為 transactiona l的話,確認消息就通過確認和校正來自動地處理。如果 session 沒有標記為 transactional,妳有三個用於消息確認的選項:

· AUTO_ACKNOWLEDGE:session 將自動地確認收到壹則消息;

· CLIENT_ACKNOWLEDGE:客戶端程序將確認收到壹則消息,調用這則消息的確認方法;

· DUPS_OK_ACKNOWLEDGE:這個選項命令 session “懶散地”確認消息傳遞,可以想到,這將導致消息提供者傳遞的壹些復制消息可能會出錯。這種確認的方式只應當用於消息消費程序可以容忍潛在的副本消息存在的情況。 queueSession = queueConnection.createQueueSession(false, session.AUTO_ACKNOWLEDGE);//P2P topicSession = topicConnection.createTopicSession(false, session.AUTO_ACKNOWLEDGE); //Pub-Sub

註意:在本例中,壹個session目的從連結中創建,非值指出session是non-transactional的,並且 session將自動地確認收到壹則消息。

  • 上一篇:史上最全水電定位註意事項
  • 下一篇:請問怎麽修復excel?打開文件提示說“發現不可讀取的內容”
  • copyright 2024編程學習大全網