日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java消息服务~自动分配的消息头

發布時間:2024/7/23 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java消息服务~自动分配的消息头 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

消息頭的值由JMS提供者來設置,開發者setJMSXxx()分配的值忽略。

JMSDestination

? ? ? ? 消息頭使用一個Topic 或 Queue 對象來標識目的地。

Topic destination = (Topic) message.getJMSDestination();

JMSDeliveryMode

? ? ? ? 在JMS 中,傳送模式有兩種類型:持久模式和非持久模式。

????????一條持久性消息應該被傳送“一次而且僅僅一次”,這就意味著如果JMS 提供者出現故障,該消息并不會丟失,它會在服務器恢復正常之后再次傳送。

? ? ? ? 一條非持久性消息最多只會傳送一次,這意味著如果JMS 提供者出現故障,該消息可能會永久丟失。

? ? ? ? 在持久性和非持久性這兩種傳遞模式總,消息服務器都不會將一條消息向同一消費者發送一次以上。

int deliveryMode = message.getJMSDeliveryMode(); if (deliveryMode == DeliveryMode.PERSISTENT) {... } else {... }

傳送模式可以使用生產者(TopicPublisher 或 QueueSender)的 setJMSDeliveryMode() 方法來設定。默認為PERSISTENT

// 在消息生產者上設置JMS 傳送模式 TopicPublisher topicPublisher = topicSession.createPublisher(topic); topicPublisher.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

JMSMessageID

????????JMSMessageID 是一個String 類型的值,它唯一地標識了一條消息。至于標識符是如何實現唯一的,這取決于廠商。

String messageId = message.getJMSMessageID();

JMSTimestamp

????????JMSTimestamp 由 MessageProducer 在調用send() 操作時自動設置。它包含的是JMS 提供者接收消息的時間,而不是該消息實際傳送的時間。

long timestamp = message.getJMSTimestamp();

JMSExpiration

? ? ? ? 一個Mesage 對象的有效期(expiration date)用來防止把過期的消息傳送給消費者。

long timeToLive = message.getJMSExpiration();

消息的有效期以毫秒為單位,使用setTimeToLive() 方法在生產者(TopicPublisher)上設置:

TopicPublisher topicPublisher = topicSession.createPublisher(topic); // 將生存時間設置為1 小時(1000毫秒 * 60 * 60) topicPublisher.setTimeToLive(3600000);

默認將timeToLive 設置為零(0),這表明該消息沒有到期時間。

JMSRedelivered

????????JMSRedelivered 消息頭表示該消息將被重新傳送給消費者。如果消息被重新傳送,JMSRedelivered 消息頭就為 true,否則為 false。

boolean isRedelivered = message.getJMSRedelivered();

JMSPriority

? ? ? ? 消息優先級有兩類:0~4級是普通優先級,而5~9級則是加急優先級。加急優先級的消息要比普通優先級的消息優先傳送:

int priority = message.getJMSPriority();...TopicPublisher topicPublisher = topicSession.createPublisher(topic); topicPublisher.setPriority(9);

總結

以上是生活随笔為你收集整理的Java消息服务~自动分配的消息头的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。