设置 SQL Server 数据库,使其与 Jazz™ Team Server 协同工作。
本过程假定已满足下列先决条件:
切记: 在 JazzInstallDir/server/teamserver.properties 文件中,为 SQL Server
数据库定义的缺省登录名是 jazzDBuser,缺省密码是
jazzDBpswd。在下列用于创建数据库的步骤中,将使用这些值。您可以将这些值替换为您所使用数据库的用户名和密码。
设置数据库
本节描述如何使用命令行工具
sqlcmd 来设置 SQL Server 数据库,此工具由
SQL Server 安装版本附带提供。您还可以使用可视工具,例如 SQL Server Studio Management,此工具
与 SQL Server Studio Management Express 一样,也适用于
Express™ 版。有关更多信息,请参阅 SQL Server 文档或者与 SQL Server 数据库管理员(DBA)联系。
要使用命令工具 sqlcmd 来设置 SQL Server 数据库,请执行下列操作:
- 创建 Jazz Team Server 数据库。在命令行工具中,输入以下命令:
CREATE DATABASE jazz
GO
- 创建用户和密码,然后变更 Jazz Team Server
数据库的所有权。在命令行工具中,输入以下命令:
CREATE LOGIN jazzDBuser
WITH PASSWORD = 'jazzDBpswd';
USE jazz;
exec sp_changedbowner 'jazzDBuser'
GO
- 变更 Jazz Team Server 数据库的整理顺序。在命令行工具中,输入以下命令:
ALTER DATABASE jazz COLLATE SQL_Latin1_General_CP437_CS_AS
GO
配置服务器
切记: 缺省情况下,JazzInstallDir/server 目录中的
teamserver.properties 文件未设置为连接到 SQL Server 数据库。同一目录中的
teamserver.sqlserver.properties 文件包含所有缺省设置以及 SQL Server 所特有的设置。
要配置服务器,请执行下列操作:
- 将下列文件重命名:
- 将 JazzInstallDir/server/conf/jazz/teamserver.properties 文件重命名为
teamserver.OtherDBProvider.properties
- 将 teamserver.sqlserver.properties 文件重命名为 teamserver.properties
提示: 通过将原始的 teamserver.properties
文件重命名,您以后就能够将该文件恢复为先前工作版本。缺省情况下,DB 提供程序是 derby。
- 如果您已使用另一个用户名、密码或数据库名称、已将 SQL Server 与
Jazz Team Server 安装到不同机器或者正在使用除缺省端口以外的端口,请编辑服务器配置文件。打开
JazzInstallDir/server/conf/jazz 目录中的
teamserver.properties
文件并变更下列信息,以使其与您的设置匹配。
com.ibm.team.repository.db.vendor = SQLSERVER
com.ibm.team.repository.db.jdbc.location=//SQL SERVER MACHINE IP:SQL SERVER TCIP PORT;databaseName=JAZZ DATABASE NAME;user=JAZZ USERNAME;password={password}
com.ibm.team.repository.db.jdbc.password=JAZZ LOGIN PASSWORD
要点: 请不要变更 com.ibm.team.repository.db.jdbc.location 属性中的 password={password} 文本。必须在属性 com.ibm.team.repository.db.jdbc.password
中指定用户密码。
要点: (仅限于 Windows)请确保服务器安全性处于混合方式。您可以通过检查服务器安全性进行此验证。它应该设置为“SQL Server 和 Windows 认证方式”。
要指定 JDBC 的 jar 文件位置,请执行下列操作:
- 在服务器脚本所在的目录(JazzInstallDir/server)中,创建一个名为 sqlserver 的目录。
- 找到名为 sqljdbc.jar 的 SQL Server JDBC 驱动程序 JAR 文件。此文件的所在位置随驱动程序安装位置的不同而有所变化,如先决条件一节所述。将该文件复制到新创建的 sqlserver 目录中。
- 通过完成下列任务,指定 JDBC 的 JDBC JAR 文件位置:
故障诊断
如果 repotools 命令未成功,那么请检查日志文件
JazzInstallDir/server 目录中的日志文件
repotools_createTables.log。
并且,请验证下列各项:
- 是否已将 SQL Server 配置为允许使用 TCP/IP 协议来建立连接。有需要时,请重新启动 SQL 服务。
- 是否已在 teamserver.properties 文件中正确地反映 SQL Server 机器的主机名和端口。
- 是否已在 teamserver.properties 文件中正确地反映登录名、密码和数据库名称。
- 不存在导致您无法访问 SQL Server 的防火墙。借助 Telnet 命令,对具有
teamserver.properties 文件所指定主机名和端口的机器进行远程登录。
- 创建的用户在 Jazz Team Server 数据库中是否具有正确的许可权。
注: Jazz Team Server 的数据库代码设计成具有通用性和标准性,能够在多种数据库平台上运行;但是,不同企业数据库供应商的系统在语法、优化策略和锁定语义方面有所差别。我们已使用各种自动化测试功能以及模拟正常工作负载和压力测试在 SQL Server 上测试此服务器。对正常工作负载的模拟表明性能可接受。在某些情况下,执行自动化并行测试时观察到数据库死锁现象;但是,这些现象在不同的服务器硬件上并不会一贯地再现。
服务器的设计支持为大量并发请求提供服务。在某些异常情况下,在存储库数据库中会发生死锁,原因是与那些请求相关联的事务以并发方式更新类似的或等同的对象。这些情况很罕见,但并非不正常。系统能够抵御这种情况,数据完整性将得以维护;不会丢失数据。有时,执行构建引擎之类的任务将记录死锁情况。通常,死锁情况将被检测到,并且该任务将被重试。死锁可能会导致构建失败。在非常罕见的情况下,要解决死锁,必须中止用户操作(例如处理工作项或源代码)。在这种情况下,该用户操作将失败,并且将向用户显示带有与死锁相关的详细信息的错误。然后,该用户可以重试该操作。
遇到的所有死锁都将记录在服务器上,以便提供有关发生死锁时的情况的信息。日志条目的文本类似于:com.ibm.team.repository.common.RetryableDatabaseException:序列化失败。
如果您的系统遇到死锁,那么请查看错误日志,地址为:https://servername:9443/jazz/service/com.ibm.team.repository.common.internal.IFeedService?category=SystemLog。
如果您频繁地遇到死锁异常,那么请与产品支持人员联系或者访问 jazz.net 上的论坛以获取最新信息、更新或迁移技术。