我有两个不同的接收端口和两个接收位置 - 每个端口分配一个位置。端口设置为接收完全相同类型的文件 - 我最终得到了两者,因为我合并了两个执行相同操作的不同应用程序。
我想将这两个位置合并到一个接收端口中,但我似乎无法更改其中一个位置所属的位置 - 我找不到这样做的选项。本质上,我只想取一个位置(或者 - 我不在乎),并将其分配给另一个端口,这样一个端口有两个位置,另一个没有。
有人知道更改现有位置的接收端口的方法吗?
我有两个不同的接收端口和两个接收位置 - 每个端口分配一个位置。端口设置为接收完全相同类型的文件 - 我最终得到了两者,因为我合并了两个执行相同操作的不同应用程序。
我想将这两个位置合并到一个接收端口中,但我似乎无法更改其中一个位置所属的位置 - 我找不到这样做的选项。本质上,我只想取一个位置(或者 - 我不在乎),并将其分配给另一个端口,这样一个端口有两个位置,另一个没有。
有人知道更改现有位置的接收端口的方法吗?
我求助于阴暗面,手动更新了 SQL 表。我仍然欢迎任何有合法的、受支持的方式来做到这一点的人,但对于任何需要答案的人,这是我为解决这个问题而编写的脚本(到目前为止没有副作用,虽然只有一天) :
DECLARE @AppName VARCHAR(255),
@ReceiveLocationName VARCHAR(255),
@NewReceivePortName VARCHAR(255)
SET @AppName = 'Your application name'
SET @ReceiveLocationName = 'Name of your existing receive location'
SET @NewReceivePortName = 'Name of receive port to move location to'
DECLARE @NewPortID INT
DECLARE @ReceiveLocationID INT
SELECT @NewPortID = rp.[nID]
FROM [BizTalkMgmtDb].[dbo].[bts_application] a
JOIN [BizTalkMgmtDb].[dbo].[bts_receiveport] rp
ON a.nID = rp.nApplicationID
WHERE a.nvcName = @AppName
AND rp.nvcName = @NewReceivePortName
SELECT @ReceiveLocationID = Id
FROM [BizTalkMgmtDb].[dbo].[adm_receivelocation]
WHERE Name = @ReceiveLocationName
UPDATE [BizTalkMgmtDb].[dbo].[adm_receivelocation]
SET ReceivePortId = @NewPortID,
IsPrimary = 0
WHERE Id = @ReceiveLocationID
请不要尝试在 BizTalk 系统数据库中进行此类直接 SQL 更改。您始终使用 Microsoft 提供的 API。
尝试使用 ExplorerOM 或 WMI 进行任何此类配置更改。 http://msdn.microsoft.com/en-us/library/microsoft.biztalk.explorerom.receiveport_members(v=bts.10 ) http://msdn.microsoft.com/en-us/library/ee277482(v= bts.10).aspx
如果您直接更改数据库并提高 Microsoft 支持,他们将不会支持它。