回覆列表
  • 1 # 榨汁哥123123

    可以簡單的把佇列看作一個容器,用來存放訊息。佇列按其定義來分,可以分成本地佇列、遠端佇列、別名佇列和模型佇列。其中本地佇列是真正意義上的佇列實體,可以用來存放訊息。而遠端佇列和別名佇列只是一種佇列的定義,指向另一個佇列實體。其中遠端佇列指向的是其他佇列管理器中的佇列,而別名佇列指向的是本地佇列管理器中的佇列。模型佇列有一點特殊,它雖然本身只是一個佇列的定義,描述了模型的屬性,但是當開啟模型佇列的時候,佇列管理其就會以這個定義為模型,建立一個本地佇列,被成為動態佇列。 一個佇列管理器可以管轄多個佇列。但對於一個佇列只能隸屬於其中的一個佇列管理器。所以佇列在其所隸屬於的佇列管理器只能有唯一的名字,不能於同一個管理器中的其他的佇列重名。當訊息新增到佇列中是,其預設被新增到最後。刪除訊息時從頭開始。 (1)本地佇列:本地佇列按照功能又可以分為初始化佇列、傳輸佇列、目標佇列和死信佇列。其中初始化佇列用作訊息觸發。傳輸佇列只是暫存待傳的訊息,在條件許可的情況下,透過管道將訊息傳送其他的佇列管理器。目標佇列是訊息的目的地,可以長期存放資訊。如果訊息不能送達目標佇列,也不能路由出去,則被自動放入死信佇列。命令佇列指的是WebSphere MQ佇列管理器預定義的SYSTEM.ADMIN.COMMAND.QUEUE,任何的MQSC命令都可以發往改佇列,並被佇列管理器的命令伺服器(Command Server)接受處理。 MQXQH(傳輸資訊頭,其中的RemoteQName和RemoteQMgrName兩個域指名了目標佇列和目標佇列管理器) MQDLH(死信資訊頭,其中DestQName和DestQMgrName兩個域指名了原訊息的目標佇列和目標佇列管理器,Reason域指名了訊息無法投遞的原因)。 MQMD(應答訊息頭,其中ReplyToQ和ReplyToMgr分別表示應答佇列和應答佇列管理器) (2)別名佇列:別名佇列的TARGQ屬性指名了其代表的目標佇列名稱,目標佇列通常是本地佇列。可以將別名佇列理解為指標。 (3) 遠端佇列:遠端佇列也是一個定義,使用了遠端佇列,你就可以不用知道目標佇列所在的佇列管理器了。 (4) 模型佇列:模型佇列定義了一套本地佇列的屬性集合。一旦開啟模型佇列,佇列管理器就會按照這些屬性動態建立處一個本地佇列。模型佇列的DEFTYPE屬性可以取值為PERMDYN和TEMPDYN分別代表永久動態度列和臨時動態佇列。

  • 中秋節和大豐收的關聯?
  • 為什麼有些人喜歡去大醫院看病?