BizTalk Server
配置BAM问题处理
作者:郑佐
日期:2007-5-30
前段时间在安装BizTalk 2006的环境,在配置完BAS和BAM后,访问业务活动监视主页,提示“可能缺少视图或活动,因为无法与一个或多个数据库建立联系”。
系统环境和安装软件
采用Windows Server 2003 企业版,加sp2补丁。
IIS 6
安装MSMQ
安装IBM MQ 6.0
Office 2003
专业版
Office Visio 2003
专业版
SharePoint Service2.0 + sp2
安装 SQL Server 2005 企业版
BizTalk Server 2006
企业版
主要帐号设置
BizTalkAdministrator
:BizTalk管理员用户。
BizTalkAdmin
:BizTalk管理员用户。
BizTalkIsolateUser
:独立主机实例帐户。
BizTalk
的安装和配置
使用Administrator本地超级管理员进行BizTalk安装,在安装过程中选择所有组件并成功安装。
配置方式使用自定义配置,使用BizTalkAdministrator做为配置凭据,配置所有相关项包括:
1.
企业SSO。
2.
组。
3.
BizTalk
运行时项配置,独立主机帐户实例用户使用BizTalkIsolateUser用户。
4.
MSMQT
。
5.
业务规则引擎。
6.
EDI
。
7.
工作流运行时。
8.
工作流服务 WebService。
9.
BAM
工具,包括BAM警报。
10.
BAM
门户。
11.
SharePoint
适配器。
12.
BAS
,包括BAS安全性设置。
自定义配置成功,生成的用户组如下:
BizTalk Application Users
:有权访问进程内的 BizTalk 主机(BizTalk Server 中的主机进程)的 Windows 帐户组。
BizTalk BAS Administrators
:BizTalk BAS 业务管理员。
BizTalk BAS Managers
:BizTalk BAS 管理员。
BizTalk BAS Users
:BizTalk BAS 用户。
BizTalk BAS Web Services Group
:BAS Web Services 组。
BizTalk Isolated Host Users
:有权访问独立 BizTalk 主机(不在 BizTalk Server 上运行的主机进程,例如 HTTP 和 SOAP)的 Windows 帐户组。
BizTalk Server Administrators
:BizTalk Server Administrators 组拥有执行配置框架向导中包括的管理任务以及在安装后管理 BizTalk Server 环境所必需的最低权限。
BizTalk Server Operators
:BizTalk Server 操作员组具有在安装 BizTalk Server 后完成运行该环境所需任务的最低权限。
EDI Subsystem Users
:有权访问 EDI 子系统的 Windows 帐户组。
IIS
相关设置
应用程序池标识账户设置
BAMAppPool
:BizTalkAdministrator。
BTSharePointAdapterWSAppPool
:BizTalkAdmin。
HwsMessagesAppPool
:BizTalkAdministrator
HwsWSAppPool
:BizTalkAdministrator。
StsAdminAppPool
:Network Service。
STSWebServiceAppPool
:。BizTalkAdmin。
TpmWSAppPool
:BizTalkAdministrator
WSSAppPool
:BizTalkAdmin
在默认网站下的一些相关虚拟目录对应相应的应用程序池如下,
BAM
BTSSharePointAdapterWS
HwsMessages
HwsService
STSWebService
TPMgmtWS
TPPubWS
通过浏览器访问业务活动监视网站,http://localhost/BAM/default.aspx,在左边“我的视图”中提示“可能缺少视图或活动,因为无法与一个或多个数据库建立联系”。
察看系统日志,错误如下,
事件类型: 错误
事件来源: Bam Web Service
事件种类: 无
事件 ID: 12033
日期: 2007-5-24
事件: 10:52:40
用户: N/A
计算机: TEST-BIZTALK
描述:
服务器“TEST-BIZTALK”上的引用数据库“BAMPrimaryImport”不可访问。错误:
System.NullReferenceException:
未将对象引用设置到对象的实例。
在 Microsoft.BizTalk.Bam.WebServices.AsyncResult.End(AsyncResult asyncResult)
在 Microsoft.BizTalk.Bam.WebServices.Management.GetViewSummaryAsyncResult.End(IAsyncResult result)
在 Microsoft.BizTalk.Bam.WebServices.Management.BamManagementService.GetViewSummaryForCurrentUser()
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
在微软的客户帮助和支持主页上找到一篇关于配置BizTalk Server 后台SQL Server数据库的权限的相关文章。
按照上面的步骤操作,没有解决问题。
还是通过Google搜索看看是否有好的方案,在Tiho's blog上找到一个处理方式,
按照文章上面说的解决方式,需要修改BizTalk Server 相关的BAM数据库DBO账户为Windows帐号。修改方式可以通过系统存储过程实现。
use BAMPrimaryImport
go
sp_changedbowner 'domain/user'
go
查看BAMPrimaryImport数据库的属性,所有者为“TEST-BIZTALK/Administrator”那应该是符合要求,但是为什么还有问题。想把数据库所有者修改成“TEST-BIZTALK/BizTalkAdministrator”。
use BAMPrimaryImport
go
sp_changedbowner 'TEST-BIZTALK/BizTalkAdministrator'
go
结果执行失败:
标题: Microsoft SQL Server Management Studio
------------------------------
删除 对于 用户“TEST-BIZTALK/BizTalkAdministrator”失败。 (Microsoft.SqlServer.Smo)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.3042.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=删除+User&LinkId=20476
失败的原因是“数据库主体在该数据库中拥有架构,无法删除。 (Microsoft SQL Server,错误: 15138)”。
打开BAMPrimaryImport数据库,查看“安全性”->“用户”,看到存在“ TEST-BIZTALK/BizTalkAdministrator ”用户,点击右键删除失败。查看其属性,此用户拥有的架构为:
BAM_EVENT_WRITER
BAAM_ManagementNSReader
BAM_ManagementWS
不过以上的架构无法进行修改。
继续搜索查找修改架构设置的办法,发现这里讲到一个实现方式,http://zhidao.baidu.com/question/16078255.html
通过sp_changedbowner系统存储过程进行修改。不过按照上面的方式修改失败。
于是尝试修改Sa用户做为BAMPrimaryImport数据库所有者。
use BAMPrimaryImport
go
EXEC sp_changedbowner 'sa'
Go
执行命令成功。访问http://localhost/BAM/default.aspx。
结果提示“服务不可用”。
想修改回来,
use BAMPrimaryImport
go
sp_changedbowner ' TEST-BIZTALK/Administrator '
go
结果执行失败,提示如下:
消息 15110,级别 16,状态 1,第 1 行
推荐的新数据库所有者已经是此数据库的用户或在此数据库中已有一个别名。
打开BAMPrimaryImport数据库,查看“安全性”->“用户”,看到存在“ TEST-BIZTALK/Administrator ”用户,点击右键删除成功,继续执行以下命令,
use BAMPrimaryImport
go
sp_changedbowner ' TEST-BIZTALK/Administrator '
go
执行成功,OK。访问http://localhost/BAM/default.aspx。结果数据库访问正常了,不再提示“可能缺少视图或活动,因为无法与一个或多个数据库建立联系”,问题解决。