用于优化环境的配置后步骤

配置后步骤可帮助提高性能、维护 BizTalk 环境和安装 EDI 架构。

禁用 SQL Server 中的 Shared Memory 协议

  1. 打开 SQL Server 配置管理器>展开MSSQLSERVERSQL Server网络配置>协议。
  2. 右键单击“ 共享内存>禁用”。
  3. 选择“SQL Server服务”,右键单击“SQL Server (MSSQLServer) >重启”。
  4. 关闭SQL Server 配置管理器

配置 SQL 代理作业

  1. 打开SQL Server Management Studio并连接到数据库引擎

  2. 依次展开“SQL Server 代理”和“作业”。 配置下列作业:

    • 备份BizTalk Server:备份BizTalk Server数据库和日志文件。 在配置该作业时,需要确定频率和文件位置等参数。

      以下链接介绍了 SQL 代理作业及其参数:

      此 SQL 代理作业还会截断事务日志,这有助于改进性能。

      此作业不会删除备份文件,包括较旧的文件。 要删除备份文件,请参阅当备份文件在 Microsoft BizTalk Server 数据库服务器中累积一段时间后,“备份 BizTalk Server”作业失败。

    • DTA 清除和存档:截断并存档BizTalk Server跟踪数据库 (BizTalkDTADb) 。 在配置该作业时,需要确定已完成实例的保留天数以及所有数据的保留天数等参数。

      以下链接介绍了 SQL 代理作业及其参数:

      此 SQL 代理作业通过维护跟踪主机和清除跟踪事件来直接影响性能。

维护备份文件

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 Application 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 附带的 Party 迁移工具迁移到 BizTalk Server 2013/2013 R2。

或者,使用 BizTalk Server 2013/2013 R2 附带的 Party 迁移工具迁移到 BizTalk Server 2010。 然后,升级到 BizTalk Server 2013/2013 R2。
BizTalk Server 2009 使用 BizTalk Server 2013/2013 R2 附带的 Party 迁移工具直接迁移到 BizTalk Server 2013/2013 R2。
BizTalk Server 2010 升级到 BizTalk Server 2013/2013 R2。

Party 迁移工具在 \PartyMigrationTool 文件夹下的BizTalk Server媒体上可用。

BizTalk 运行状况监视器 (BHM)

BizTalk 运行状况监视器提供了仪表板,可创建和查看 MessageBox 查看器报表、创建自定义查询、运行终止符任务、监视多个 BizTalk 环境等。 如果负责 BizTalk 环境,建议安装并使用此工具检查 BizTalk 环境的运行状况,以及对其进行维护。

关键链接:

下载 BHM安装 BHMBHM 官方博客

创建主机和主机实例

建议将某些关键任务分到不同的主机。 例如,始终创建只专用于跟踪的独立主机。 创建另一个主机/主机实例以侧重于接收消息,再创建另一个主机/主机实例用于发送消息,以及另一个用于业务流程的主机/主机实例。

这一领域有许多相关建议。 下面是一些可帮助入门的建议:

管理 BizTalk 主机和主机实例

为 BizTalk 主机提供高可用性

最佳做法:创建并配置 BizTalk Server 主机和主机

在同一台计算机上的多个主机中运行业务流程

用于创建和配置BizTalk Server主机、主机实例和处理程序的 PowerShell

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