訊息佇列工作

「訊息佇列」工作讓您可以使用 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 設計師」中設定之屬性的詳細資訊,請按下列其中一個主題:

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

相關工作

如需有關如何在「SSIS 設計師」中設定這些屬性的詳細資訊,請參閱<設定工作或容器的屬性>。

相關內容

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群的精選解決方案,請瀏覽 MSDN 上的 Integration Services 頁面:


若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。

請參閱

概念

Integration Services 工作

控制流程