環境最佳化的後續設定步驟

協助改善效能、維護 BizTalk 環境,以及安裝 EDI 結構描述的設定後續作業步驟。

停用 SQL Server 的共用記憶體通訊協定

  1. 開啟[SQL Server 組態管理員> 展開MSSQLSERVER的網路組態> 通訊協定SQL Server。
  2. 以滑鼠右鍵按一下[共用記憶體>停用]。
  3. 選取[SQL Server服務],以滑鼠右鍵按一下SQL Server ([MSSQLServer]>) [重新開機]。
  4. 關閉SQL Server 組態管理員

設定 SQL Agent 作業

  1. 開啟SQL Server Management Studio,然後連線到Database Engine

  2. 展開[SQL Server Agent],然後展開 [作業]。 設定下列作業:

    • 備份BizTalk Server:備份BizTalk Server資料庫和記錄檔。 設定作業時,您可以決定頻率和檔案位置等參數。

      下列連結會說明 SQL Agent 作業和其參數︰

      這個 SQL Agent 作業也會截斷交易記錄檔,有利改善效能。

      此作業不會移除或刪除備份檔案,包括較舊的檔案。 若要刪除備份檔案,請參閱 Microsoft BizTalk Server 資料庫伺服器與時俱增的備份檔案中失敗的「備份 BizTalk Server」作業。

    • DTA 清除和封存: (BizTalkDTADb) 截斷和封存BizTalk Server追蹤資料庫。 設定作業時,您可以決定已完成執行個體的保留天數以及所有資料的保留天數等參數。

      下列連結會說明 SQL Agent 作業和其參數︰

      此 SQL Agent 作業會藉由維護追蹤主機和清除追蹤事件,直接影響效能。

維護備份檔案

BizTalk Server 不包含任何刪除備份檔案的作業。 所以,如何維護備份檔是由您決定。 許多使用者會建立 sp_DeleteBackupHistoryAndFiles 預存程序,然後直接在備份 BizTalk Server 作業中呼叫此預存程序。 有些使用者則是建立維護計畫。 選擇在您。 本主題列出這兩個選項。

選項 1︰建立 sp_DeleteBackupHistoryAndFiles 預存程序

  1. 在 SQL Server Management Studio 中,選取 BizTalk 管理資料庫 (BizTalkMgmtDb)。

  2. 選取[新增查詢],然後執行下列 T-SQL 腳本來建立 sp_DeleteBackupHistoryAndFiles (BizTalk Server 2016) 或 sp_DeleteBackupHistoryAndFiles2013 (BizTalk Server 2013 R2 和較舊的) 預存程式:

    sp_DeleteBackupHistoryAndFiles (BizTalk Server 2016 和更新版本)

    CREATE PROCEDURE [dbo].[sp_DeleteBackupHistoryAndFiles] @DaysToKeep smallint = null
    AS
    
    BEGIN
    set nocount on
    IF @DaysToKeep IS NULL OR @DaysToKeep <= 1
    RETURN
    /*
    Only delete full sets
    If a set spans a day in such a way that some items fall into the deleted group and the other does not, do not delete the set
    */
    
    /*
    First delete MarkName from all other databases
    */
    declare @BackupServer sysname ,@BackupDB sysname, @tsql nvarchar(1024), @MarkToBeDeleted nvarchar(128)
    DECLARE BackupDB_Cursor insensitive cursor for
    SELECT	ServerName, DatabaseName
    FROM	admv_BackupDatabases
    ORDER BY ServerName
    open BackupDB_Cursor
    
    SELECT @MarkToBeDeleted = MAX([MarkName])
    FROM [dbo].[adm_BackupHistory] [h1]
    WHERE [BackupType] = 'lg' AND datediff( dd, [BackupDateTime], getdate() ) >= @DaysToKeep
    AND	[BackupSetId] NOT IN ( SELECT [BackupSetId] FROM [dbo].[adm_BackupHistory] [h2] WHERE [h2].[BackupSetId] = [h1].[BackupSetId] AND datediff( dd, [h2].[BackupDateTime], getdate() ) < @DaysToKeep AND [h2].[BackupType] = 'lg')
    AND EXISTS( SELECT TOP 1 1 FROM [dbo].[adm_BackupHistory] [h2] WHERE [h2].[BackupSetId] > [h1].[BackupSetId] AND [h2].[BackupType] = 'lg')
    fetch next from BackupDB_Cursor into @BackupServer, @BackupDB
    
    while @@fetch_status = 0
    	begin
    	set @tsql = '[' + @BackupServer + '].[' + @BackupDB + '].[dbo].[sp_CleanUpMarkLog]'
    	exec @tsql @MarkName=@MarkToBeDeleted
    	fetch next from BackupDB_Cursor into @BackupServer, @BackupDB
    	end
    
    close BackupDB_Cursor
    deallocate BackupDB_Cursor
    
    DECLARE DeleteBackupFiles CURSOR
    -- xp_delete_file variant
    FOR SELECT [BackupFileLocation] + '\' + [BackupFileName] FROM [adm_BackupHistory]
    -- xp_cmdshell variant
    -- FOR SELECT 'del "' + [BackupFileLocation] + '\' + [BackupFileName] + '"' FROM [adm_BackupHistory]
    WHERE  datediff( dd, [BackupDateTime], getdate() ) >= @DaysToKeep
    AND [BackupSetId] NOT IN ( SELECT [BackupSetId] FROM [dbo].[adm_BackupHistory] [h2] WHERE [h2].[BackupSetId] = [BackupSetId] AND datediff( dd, [h2].[BackupDateTime], getdate() ) < @DaysToKeep )
    
    DECLARE @cmd varchar(400)
    OPEN DeleteBackupFiles
    FETCH NEXT FROM DeleteBackupFiles INTO @cmd
    WHILE (@@fetch_status <> -1)
    BEGIN
        IF (@@fetch_status <> -2)
        BEGIN
    -- xp_delete_file variant
            EXECUTE master.dbo.xp_delete_file 0, @cmd
    -- xp_cmdshell variant
    --        EXEC master.dbo.xp_cmdshell @cmd, NO_OUTPUT
            delete from [adm_BackupHistory] WHERE CURRENT OF DeleteBackupFiles
            print @cmd
        END
        FETCH NEXT FROM DeleteBackupFiles INTO @cmd
    END
    
    CLOSE DeleteBackupFiles
    DEALLOCATE DeleteBackupFiles
    END
    GO
    

    sp_DeleteBackupHistoryAndFiles2013 (BizTalk 2013 R2 和較舊的)

    CREATE PROCEDURE [dbo].[sp_DeleteBackupHistoryAndFiles2013] @DaysToKeep smallint = null
    AS
    
    BEGIN
    set nocount on
    IF @DaysToKeep IS NULL OR @DaysToKeep <= 1
    RETURN
    /*
    Only delete full sets
    If a set spans a day in such a way that some items fall into the deleted group and the other does not, do not delete the set
    */
    
    DECLARE DeleteBackupFiles CURSOR
    FOR SELECT 'del "' + [BackupFileLocation] + '\' + [BackupFileName] + '"' FROM [adm_BackupHistory]
    WHERE  datediff( dd, [BackupDateTime], getdate() ) >= @DaysToKeep
    AND [BackupSetId] NOT IN ( SELECT [BackupSetId] FROM [dbo].[adm_BackupHistory] [h2] WHERE [h2].[BackupSetId] = [BackupSetId] AND  datediff( dd, [h2].[BackupDateTime], getdate() ) < @DaysToKeep )
    
    DECLARE @cmd varchar(400)
    OPEN DeleteBackupFiles
    FETCH NEXT FROM DeleteBackupFiles INTO @cmd
    WHILE (@@fetch_status <> -1)
    BEGIN
        IF (@@fetch_status <> -2)
        BEGIN
            EXEC master.dbo.xp_cmdshell @cmd, NO_OUTPUT
            delete from [adm_BackupHistory] WHERE CURRENT OF DeleteBackupFiles
            print @cmd
        END
        FETCH NEXT FROM DeleteBackupFiles INTO @cmd
    END
    
    CLOSE DeleteBackupFiles
    DEALLOCATE DeleteBackupFiles
    END
    GO
    
  3. 開啟 [備份BizTalk Server作業 > ],選取[步驟]。

  4. 編輯 [清除備份歷程記錄 ] 步驟,讓它呼叫新的 sp_DeleteBackupHistoryAndFilessp_DeleteBackupHistoryAndFiles2013 預存程式,而不是先前 的sp_DeleteBackupHistory 預存程式。

  5. 選取 [ 確定 ] 以儲存變更。

選項 2:建立維護計畫

  1. 在 [SQL Server Management Studio] 中,展開 [管理],以滑鼠右鍵按一下 [維護計畫],然後選取 [維護計畫精靈]。
  2. 例如,將方案命名為 (,將它命名為 [清除備份檔案]) ,然後選取 [排程] 旁的 [變更] 按鈕。
  3. 選擇您想要的備份檔案清除頻率。 這些設定完全由您決定。 依序選取 [確定] 和 [下一步]。
  4. 選取[維護清除工作>] [下一步]。
  5. 在 [ 清除工作 ] 視窗中,移至 [ 搜尋資料夾並刪除檔案...],選取您的備份檔案夾 (可能是 f:\BizTalkBackUps) ,然後輸入 .bak 做為副檔名。 您也可以選擇依據檔案存在時間刪除檔案。 例如,如果想要刪除存在時間超過 3 週的檔案,輸入 3。 選取 [下一步]。
  6. 完成執行精靈,並輸入您想要的任何其他資訊。 選取 [完成]。

安裝 EDI 結構描述及更多的 EDI AS2 設定

EANCOM、EDIFACT、HIPAA 和 X12 架構檔案包含在名為 MicrosoftEdiXSDTemplates.exe 的自我解壓縮可執行檔中。 若要建立 EDI 解決方案,請解壓縮這些檔案,並使用您的專案部署。 安裝並解壓縮這些檔案︰

  1. 執行BizTalk Server安裝,並安裝開發人員工具和 SDK元件。 此元件會將 MicrosoftEdiXSDTemplates.exe EDI 架構檔案下載至 \XSD_Schema\EDI 資料夾。

    注意

    如果您升級BizTalk Server,安裝中的 MicrosoftEdiXSDTemplates.exe 檔案會取代為與升級相關聯的新 MicrosoftEdiXSDTemplates.exe 檔案。 如果需要原先的結構描述,請備份先前的 MicrosoftEdiXSDTemplates.exe 檔案。

    注意

    如果您在將BizTalk Server升級至較新的組建時升級訊息架構,則可能會遇到使用更新架構的問題,或者您可能必須執行其他更新步驟。 請參閱更新應用程式的重要考慮中的一節

  2. 移至 \Program Files (x86) \Microsoft BizTalk Server < VERSION > \XSD_Schema\EDI,然後按兩下 MicrosoftEdiXSDTemplates.exe。

  3. 將架構解壓縮至 \Program Files (x86) \Microsoft BizTalk Server < VERSION > \XSD_Schema\EDI。 當您解壓縮結構描述時,它們會儲存在 EANCOM、EDIFACT、HIPAA 和 X12 資料夾中。

加入 BizTalk Server EDI 應用程式的參考

EDI 架構、管線和協調流程會部署在 BizTalk EDI 應用程式中。 若要使用任何其他應用程式作為 EDI 應用程式,請新增 BizTalk EDI 應用程式的參考。 步驟:

  1. 在 BizTalk Server 管理主控台中,展開[應用程式]。 以滑鼠右鍵按一下您想要用於 EDI (的應用程式,例如 BizTalk 應用程式 1) ,選取 [ 新增],然後選取 [ 參考]。

  2. 選取 [BizTalk EDI 應用程式],然後選取 [ 確定 ] 以儲存變更。

提示

若要查看其他應用程式的參考,請以滑鼠右鍵按一下任何應用程式,然後選取 [ 屬性]。 選取 [參考]。 您也可以加入新的參考,然後移除現有的參考。

注意

請勿將自訂成品加入 [BizTalk EDI 應用程式] 中。 此應用程式最好保持原樣。

啟動批次協調流程

如果您讓合作對象啟用接收及/或傳送 EDI 批次功能,您就必須啟動批次協調流程。 這些協調流程不會由安裝精靈或組態精靈啟動。 步驟:

  1. 在 BizTalk Server 管理主控台中,展開[BizTalk EDI 應用程式],然後選取 [協調流程]。

  2. 以滑鼠右鍵按一下下列每個協調流程,然後選取 [ 啟動]:

    • Microsoft.BizTalk.Edi.BatchSuspendOrchestration.BatchElementSuspendService (組件:Microsoft.BizTalk.Edi.BatchingOrchestration.dll)

    • Microsoft.BizTalk.Edi.BatchingOrchestration.BatchingService (組件:Microsoft.BizTalk.Edi.BatchingOrchestration.dll)

    • Microsoft.BizTalk.Edi.RoutingOrchestration.BatchRoutingService (組件:Microsoft.BizTalk.Edi.RoutingOrchestration.dll)

注意

只有在您接收及/或傳送 EDI 批次時,這些 EDI 批次處理協調流程才會啟動。 若是在系統不是正在接收或傳送 EDI 批次時啟動這些協調流程,可能會影響系統效能。

從舊版 BizTalk 移轉 EDI 成品

BizTalk Server 2010 和更新版本中,BizTalk Server管理交易夥伴的方式。 在先前的BizTalk Server版本中,一方只會針對交易夥伴建立,而不是針對裝載BizTalk Server的夥伴建立。 在 BizTalk Server 2010 和更新版本中,必須為所有交易夥伴建立合作物件,包括主控BizTalk Server夥伴。 在先前的BizTalk Server版本中,會在合作物件層級定義編碼 (X12 和 EDIFACT) 和傳輸 (AS2) 通訊協定屬性。 在 BizTalk Server 2010 和更新版本中,這些屬性是透過合約來定義。

若要從舊版移轉合作物件資料,BizTalk Server包含合作物件移轉工具。 請考慮下列移轉路徑︰

BizTalk Server版本 移轉路徑
BizTalk Server 2006 R2 升級到 BizTalk Server 2009。 然後,使用BizTalk Server 2013/2013 R2 隨附的合作物件移轉工具來移轉至 BizTalk Server 2013/2013 R2。

或者,使用 BizTalk Server 2013/2013/2013 R2 隨附的合作物件移轉工具移轉至 BizTalk Server 2010。 然後,升級至 BizTalk Server 2013/2013 R2。
BizTalk Server 2009 使用隨附于 BizTalk Server 2013/2013 R2 的合作物件移轉工具,直接移轉至 BizTalk Server 2013/2013 R2。
BizTalk Server 2010 升級至 BizTalk Server 2013/2013 R2。

合作物件移轉工具可在 \PartyMigrationTool 資料夾下的BizTalk Server媒體上使用。

安裝 BHM 狀況監控 (BHM)

BHM 狀況監控提供儀表板,以建立及檢視 MessageBox 檢視器報表、建立自訂查詢、執行結束字元工作、監視多個 BizTalk 環境等等。 如果您負責 BizTalk 環境,建議您安裝並使用此工具來檢查與維護 BizTalk 環境的狀況。

重要連結:

下載 BHM安裝 BHM BHM官方部落格

建立您的主控件與主控件執行個體

建議將重要的工作分成不同的主控件。 例如,一律分別建立專門用於追蹤的主控件。 建立專門接收訊息的另一個主控件/主控件執行個體、傳送訊息的另一個主控件/主控件執行個體,以及用於協調流程的另一個主控件/主控件執行個體。

有很多關於這方面的建議。 下面這些可以讓您快速上手︰

管理 BizTalk 主控件和主控件執行個體

為 BizTalk 主控件提供高可用性

BizTalk Server Best Practices: Create and Configure BizTalk Server Host and Host Instances (BizTalk 伺服器的最佳做法︰建立與配置 BizTalk Server 主控件和主控件執行個體)

BizTalk Server: Running Orchestrations in Multiple Hosts on the Same Computer (在同一部電腦的多個主控件中執行協調流程)

建立和設定BizTalk Server主機、主機實例和處理常式的 PowerShell

BizTalk Server Resources on the TechNet Wiki (TechNet Wiki 上的 BizTalk Server 資源)