共用方式為


Message Queue Task

「訊息佇列」工作可讓您使用 Message Queuing (又稱為 MSMQ) 在 SQL Server Integration Services 套件之間傳送和接收訊息,或將訊息傳送至由自訂應用程式處理的應用程式佇列。 這些訊息可採用簡單文字、檔案或變數及其值的形式。

透過使用「訊息佇列」工作,您可以協調整個企業內的作業。 如果目的地無法使用或者忙碌,可以將訊息排入佇列以稍後傳遞;例如,此工作可將屬於銷售代表離線之膝上型電腦的訊息排入佇列,等銷售代表們連接到網路後就可以接收到各自的訊息。 您可將「訊息佇列」工作用於下列用途:

  • 延遲工作執行,直到其他封裝簽入。 例如,在每個零售站台的夜間維護完成後,訊息佇列工作會傳送訊息給公司電腦。 執行於公司電腦的封裝將包含「訊息佇列」工作,每個工作都會等待來自特定零售站台的訊息。 來自站台的訊息抵達後,便會有一個工作自該站台上傳資料。 所有站台均簽入後,封裝會計算摘要總數。

  • 將資料檔傳送給處理它們的電腦。 例如,餐廳的收銀機輸出可以將資料檔訊息傳送至公司的薪資系統,以進行服務生的小費資料擷取。

  • 將檔案散發至整個企業。 例如,封裝可使用「訊息佇列」工作將封裝檔案傳送至另一台電腦。 接著,執行於目的電腦的封裝使用「訊息佇列」工作,以在本機擷取與儲存封裝。

傳送或接收訊息時,「訊息佇列」工作會使用下列四種訊息類型之一:資料檔、字串、字串訊息至變數或變數。 只有接收訊息時才能使用「字串訊息至變數」訊息類型。

工作使用 MSMQ 連接管理員以連接到訊息佇列。 如需詳細資訊,請參閱 MSMQ 連線管理員。 如需有關 Message Queuing 的詳細資訊,請參閱 MSDN Library

「訊息佇列」工作要求安裝 Integration Services 服務。 您在 SQL Server 安裝精靈的 [要安裝的元件] 頁面或 [特徵選取] 頁面上選取要安裝的一些 SQL Server 元件,會安裝 Integration Services 元件的部分子集。 這些元件對特定的工作有用,但 Integration Services 的功能會受到限制。 例如,SQL Server Data Tools (SSDT) 選項會安裝設計某個封裝所需的 Integration Services 元件,但不會安裝 Integration Services 服務,因此「訊息佇列」工作將無法運作。 為了確保 Integration Services 能完整安裝,您必須在 [要安裝的元件] 頁面上選取 [Integration Services]。 如需安裝及執行「訊息佇列」工作的詳細資訊,請參閱 安裝 Integration Services

注意

當電腦的作業系統是以 FIPS 模式設定並且工作使用加密時,「訊息佇列」工作無法符合美國聯邦資訊處理標準 (FIPS) 140-2 的規定。 如果「訊息佇列」工作沒有使用加密,工作會順利執行。

訊息類型

您可利用下列方式設定「訊息佇列」工作提供的訊息類型:

  • Data file 訊息指定某個檔案包含訊息。 接收訊息時,您可以設定工作以儲存檔案,覆寫現有的檔案,並指定工作可以從中接收訊息的封裝。

  • String 訊息指定訊息為字串。 接收訊息時,您可以設定工作,以比較接收到的字串與使用者自訂字串,並根據比較結果採取行動。 字串比較可以為完全相符、區分大小寫或不區分大小寫,或者使用子字串。

  • String message to variable 將來源訊息指定為傳送到目的變數的字串。 您可以設定工作使用完全相符、不區分大小寫或子字串比較,來比較接收到的字串與使用者自訂的字串。 只有當工作接收訊息時此訊息類型才可用。

  • Variable 指定訊息將包含一或多個變數。 您可以設定工作,以指定訊息中包含的變數名稱。 接收訊息時您可以設定工作,以指定可從中接收訊息的封裝,以及做為訊息目的地的變數。

傳送訊息

設定「訊息佇列」工作以傳送訊息時,您可以使用 Message Queuing 技術目前支援的加密演算碼 RC2 及 RC4 其中一個,以加密訊息。 這兩種加密演算法目前被認為在密碼編譯技術上不如較新的演算法,不過 Message Queuing 技術目前還不支援較新的演算法。 因此,在使用「訊息佇列」工作傳送訊息時,應仔細考慮您的加密需求。

接收訊息

接收訊息時,可以利用下列方式設定「訊息佇列」工作。

  • 略過訊息,或者從佇列中移除訊息。

  • 指定逾時。

  • 若逾時發生則失敗。

  • 如果訊息儲存在 Data file 中則覆寫現有的檔案。

  • 如果訊息使用 Data file message 類型,則以不同的檔案名稱儲存訊息檔案。

訊息佇列工作上可用的自訂記錄訊息

下表列出「訊息佇列」工作的自訂記錄項目。 如需詳細資訊,請參閱 Integration Services (SSIS) 記錄自訂訊息以進行記錄

記錄項目 描述
MSMQAfterOpen 指出工作已經完成開啟訊息佇列。
MSMQBeforeOpen 指出工作已經開始開啟訊息佇列。
MSMQBeginReceive 指出工作已經開始接收訊息。
MSMQBeginSend 指出工作已經開始傳送訊息。
MSMQEndReceive 指出工作已經完成接收訊息。
MSMQEndSend 指出工作已經完成傳送訊息。
MSMQTaskInfo 提供有關工作的描述性資訊。
MSMQTaskTimeOut 指出工作已經逾時。

訊息佇列工作的組態

您可以透過 SSIS 設計師或以程式設計方式設定屬性。 如需您可以在 SSIS Designer中設定之屬性的相關資訊,請按一下下列其中一個主題:

如需有關以程式設計方式來設定這些屬性的詳細資訊,請參閱《開發人員指南》中 Microsoft.SqlServer.Dts.Tasks.MessageQueueTask.MessageQueueTask 類別的文件。

如需如何在 SSIS 設計工具中設定這些屬性的詳細資訊,請參閱設定工作或容器的屬性

另請參閱

Integration Services 工作
控制流程