Biztalk - 我可以更改现有接收位置的接收端口吗?

时间:2009-10-02 15:56:00

标签: biztalk biztalk2006r2 receive-location

我有两个不同的接收端口和两个接收位置 - 每个端口分配一个位置。这些端口设置为接收完全相同类型的文件 - 我最终都使用了这两种文件,因为我整合了两个不同的应用程序,这些应用程序做了同样的事情。

我想将两个位置组合成一个接收端口,但我似乎无法更改任何属于的位置 - 我无法选择执行此操作。基本上,我只想占用一个位置(要么 - 我不在乎),并将其分配给另一个端口,以便一个端口有两个位置而另一个端口没有。

有人知道改变现有位置接收端口的方法吗?

2 个答案:

答案 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.10http://msdn.microsoft.com/en-us/library/ee277482(v=bts.10).aspx

如果您进行直接数据库更改并提高Microsoft支持,他们将不支持。