connection:封裝了jms客戶端程式和provider之間的乙個連線。
session:會話物件,生產和消費資訊的單執行緒上下文,用於建立生產者、消費者和訊息物件等。session物件提供了乙個事務性的上下文,在這個上下文中,一組傳送和接收操作被組合到了乙個原子操作。
destination:訊息傳送的目的地,有queue和topic兩種實現型別。
acknowledge:訊息的簽收。
transaction:訊息的事務。
訊息頭:包含訊息的識別資訊和路由資訊,主要屬性如下:
destination:訊息傳送的目的地,主要指topic和queue。
deliverymode:傳送模式,有持久化模式和費持久化模式。一條持久化的訊息應該被傳遞「一次且僅僅一次」,這意味著如果jms provider出現了故障,持久化的訊息也不會丟失,會在provider恢復後被重新消費。一條非持久化的訊息最多被消費一次,provider故障時該訊息可能會丟失。
expiration:訊息的過期時間。設定為0表示該訊息永久生效。如果在訊息傳送後,在過期時間到達後還沒有被消費,則該訊息會被清除。
priority:訊息的有限級別,有0~9共10個級別,其中0 ~ 4是普通資訊,5 ~9是加急訊息。jms規範不要求provider嚴格按照10個優先順序的順序傳送訊息,但是必須保證加急訊息先與普通資訊到達。預設的級別是4.
messageid:識別每個訊息的唯一標識,由jms provider產生。
timestamp:jms provider在呼叫send() 方法時自動設定,他說訊息被傳送和實際消費之間的時間差。
type:訊息型別,由開發者設定。
redelivered:重傳標誌。如果該訊息的redelivered屬性為true,表示該訊息已經被某個消費者接收過,但是並沒有簽收(acknowledge)
訊息體:jms api定義了5中訊息體格式,也稱為訊息型別,可以是使用不同的形式來傳送和接收訊息,並可以相容現有的訊息格式。5種訊息型別如下:
textmessage
mapmessage
bytesmessage
streammessage
objectmessage
訊息屬性:jms主要包含以下三種型別屬性:
應用程式設定的屬性,如message.setstringproperty(「key」,「value」);
jms定義的屬性,以「jmsx」作為字首,封裝在訊息的元資料中。可以使用connection.getmetadata().getjmsxpropertynames()方法獲取所有jmsx的屬性名。
jms provider的特定屬性。
activemq 使用學習2
訊息傳送策略 一 持久化訊息 預設持久化訊息 1.預設同步,可以設定非同步 con.setasyncsend true 2.設定回執視窗大小 二 非持久話訊息 預設非同步傳送,需要設定回執視窗大小 broke 到達訊息最大值時,需要回執 若到達最大的處理方式設定?consumer 是 pull 還是...
事件詳解2
預設行為 什麼是預設行為 不需要自己去編寫,瀏覽器本身就具備的功能 如 在空白頁面點選滑鼠右鍵出現選單 l阻止預設行為 普通寫法 return false 例子1.遮蔽右鍵選單 document.oncontextmenu function 同理,阻止表單提交onsubmit 阻止onkeydown...
Class檔案詳解 2
今天繼續分析class檔案的結構。上次讀取了constant pool,緊接著是這個類或介面的access flags,jvm定義的關於class或inte ce的access flags有 private static short acc public 0x0001 private static ...