我有两个不同的接收端口和两个接收位置 - 每个端口分配一个位置。这些端口设置为接收完全相同类型的文件 - 我最终都使用了这两种文件,因为我整合了两个不同的应用程序,这些应用程序做了同样的事情。
我想将两个位置组合成一个接收端口,但我似乎无法更改任何属于的位置 - 我无法选择执行此操作。基本上,我只想占用一个位置(要么 - 我不在乎),并将其分配给另一个端口,以便一个端口有两个位置而另一个端口没有。
有人知道改变现有位置接收端口的方法吗?
答案 0 :(得分:1)
我求助于黑暗面,并手动更新了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
答案 1 :(得分:0)
请不要在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支持,他们将不支持。