共用方式為


使用佇列識別符

佇列Moniker用來以程式設計方式啟用佇列元件。 佇列名稱要求它接收要從緊接著它的新名稱處調用的對象的類別標識碼(CLSID)。 當左側加上前綴時,新的Moniker會將CLSID傳遞給其左側的Moniker。

元件服務系統管理工具

不適用。

Visual Basic

GetObject 顯示名稱參數是 "queue:/new:",後面接著要具現化的伺服器物件的程式 ID 或字串格式的 GUID,可以有大括號或沒有大括號。 下列範例顯示具有佇列名稱的元件的三種有效啟用:

  1. Set objMyQC = GetObject ("queue:/new:QCShip.Ship")
    
  2. Set objMyQC = GetObject ("queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}")
    
  3. Set objMyQC = GetObject ("queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE")
    

C/C++

CoGetObject 顯示名稱參數為 “queue:/new:”,後面接著要具現化之伺服器物件的程式標識符或字元串格式 GUID,可包含或不包含大括號。 下列範例顯示三種具有佇列識別符之元件的有效啟用:

  1. hr = CoGetObject (
      L"queue:/new:QCShip.Ship",
      NULL, IID_IShip, (void**)&pShip);
    
  2. hr = CoGetObject (
      L"queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}", 
      NULL, IID_IShip, (void**)&pShip);
    
  3. hr = CoGetObject (
      L"queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE",
      NULL, IID_IShip, (void**)&pShip);
    

備註

佇列識別碼接受可選參數,以改變傳送至消息佇列之訊息的屬性。 例如,若要讓消息佇列訊息以優先順序 6 傳送,佇列元件將會啟動,如下所示:

hr = CoGetObject (
  L"queue:Priority=6,ComputerName=MyComp/new:QCShip.Ship",
  NULL, IID_IShip, (void**)&pShip);

下表列出會影響目的地佇列的佇列識別符參數。

參數 描述
ComputerName
指定訊息佇列路徑名稱中的電腦名稱部分。 訊息佇列佇列路徑名稱的格式為 ComputerName<em>QueueName。 如果未指定,則會使用與設定的應用程式相關聯的計算機名稱。
QueueName
指定消息佇列佇列名稱。 訊息佇列佇列路徑名稱的格式為 ComputerName<em>QueueName。 如果未指定,則會使用與設定的應用程式相關聯的佇列名稱。
若要取得非交易式佇列,您可以先指定佇列名稱,然後建立相同名稱的 COM+ 應用程式。
PathName
指定完整的消息佇列路徑名稱。 如果未指定,則會使用與設定的應用程式相關聯的消息佇列佇列路徑名稱。 若要覆寫目的地名稱,可以在下列表單中指定訊息佇列工作組安裝的路徑:
佇列:PathName=ComputerName\PRIVATE$\AppName/new:Myproject.CMyClass
注意: C 和 Microsoft Visual C++ 程式設計語言在字串常量內都需要使用兩個反斜杠來代表一個反斜杠,例如 chicago\payroll。
格式名稱
當您將 COM+ 應用程式標示為已排入佇列時,COM+ 會建立消息佇列佇列,其名稱與應用程式相同。 該佇列的消息佇列格式名稱位於與 COM+ 應用程式相關聯的 COM+ 目錄中。 若要覆寫目的地名稱,可以使用下列格式來指定消息佇列工作組安裝的格式名稱:
佇列:FormatName=DIRECT=OS:ComputerName\PRIVATE$\AppName/new:ProgId
在 Active Directory 組態中,“PRIVATE$” 未指定為佇列名稱的一部分。

注意

選擇性佇列標識參數會由左至右處理。 只指定每個關鍵詞一次。 指定 PathName 參數會取代 ComputerNameQueueName參數。 特定 FormatName 參數會刪除 ComputerNameQueueNamePathName 參數的先前知識。

將佇列元件接聽器與特定私人佇列關聯

COM+ 佇列元件接收器只會接收與標示為佇列處理的 COM+ 應用程式相關聯的佇列。 當您將 COM+ 應用程式標示為已排入佇列時,COM+ 會建立消息佇列佇列,其名稱與應用程式相同。 該佇列的消息佇列格式名稱位於與 COM+ 應用程式相關聯的 COM+ 目錄中。 啟動 COM+ 應用程式並標示為接聽時,就會啟動 COM+ 應用程式程式中的接聽程式,並開啟佇列。 下表列出影響訊息佇列的佇列標識符參數。

參數 描述
AppSpecific
指定不帶正負號的整數,例如 AppSpecific=12345。
認證等級
指定訊息驗證層級。 已驗證的訊息會經過數字簽署,且需要傳送訊息的用戶憑證。 可接受的值:
  • MQMSG_AUTH_LEVEL_NONE,0
  • MQMSG_AUTH_LEVEL_ALWAYS,1
運送
指定訊息傳遞選項。 交易式佇列會忽略此值。 可接受的值:
  • MQMSG_DELIVERY_EXPRESS,0
  • MQMSG_DELIVERY_RECOVERABLE,1
加密算法
指定消息佇列用來加密和解密訊息的加密演算法。 可接受的值:
  • CALG_RC2、CALG_RC4
  • 在訊息佇列中,任何整數值都可被EncryptAlgorithm接受。
HashAlgorithm
指定密碼學哈希函數。 可接受的值:
  • CALG_MD2、CALG_MD4、CALG_MD5、CALG_SHA、CALG_SHA1、CALG_MAC、CALG_SSL3_SHAMD5、CALG_HMAC、CALG_TLS1PRF
  • Message Queuing 可接受的任何整數值,用於 HashAlgorithm
雜誌
指定消息佇列消息日誌選項。 可接受的值:
  • MQMSG_JOURNAL_NONE,0
  • MQMSG_DEADLETTER,1
  • MQMSG_JOURNAL,2
標籤
指定最多 MQ_MAX_MSG_LABEL_LEN 個字元的訊息標籤字串。
MaxTimeToReachQueue
指定訊息到達佇列的最大時間,以秒為單位。
可接受的值:
  • 無限
  • 長壽
  • 秒數
接收最大時間
指定目標應用程式接收訊息的最大時間,以秒為單位。 可接受的值:
  • 無限
  • 長壽
  • 秒數
優先順序
指定允許的消息佇列值內的訊息優先順序。
可接受的值:
  • MQ_MIN_PRIORITY,0
  • MQ_MAX_PRIORITY,7
  • MQ_DEFAULT_PRIORITY,3
  • 介於 0 到 7 之間的數位
PrivLevel
指定用來加密訊息的隱私權等級。
可接受的值:
  • MQMSG_PRIV_LEVEL_NONE、NONE、0
  • MQMSG_PRIV_LEVEL_BODY,BODY,
  • MQMSG_PRIV_LEVEL_BODY_BASE、BODY_BASE、1
  • MQMSG_PRIV_LEVEL_BODY_ENHANCED、BODY_ENHANCED、3
追蹤
指定追蹤選項,用於追蹤消息佇列路由。
可接受的值:
  • MQMSG_TRACE_NONE,0
  • MQMSG_SEND_ROUTE_TO_REPORT_QUEUE,1

使用 COM 物件即可取得 COM+ 管理 SDK 功能的完整集合。 這可讓任何程序視需要啟動和停止 COM+ 應用程式。

注意

啟動 COM+ 應用程式時,它是正在執行的應用程式,而不是應用程式內的個別元件。 如果應用程式呼叫非佇列元件,則會啟動包含元件的 COM+ 應用程式。 如果啟用接聽程式複選框,接聽程式也會啟動並開始處理佇列元件的訊息。 雖然佇列元件服務可以透過這種方式啟動,但如果您將佇列和非佇列的元件封裝成單一 COM+ 應用程式,請務必在執行非佇列元件時,真正希望佇列元件啟動。 如果情況並非如此,請將佇列元件封裝成與其他元件分開的 COM+ 應用程式。

啟用元件佇列