使用 Solution Central 部署构建基块
在此部署方案中,将数据库和 ThingWorx 安装到系统,并使用 Solution Central 将构建基块部署到 ThingWorx 实例。
完成下文中的操作步骤:
先决条件
在部署构建基块之前,请完成以下先决条件:
查看构建基块系统要求,包括兼容的 ThingWorx 版本。有关详细信息,请参阅系统要求
查看兼容的 ThingWorx 版本的 ThingWorx 系统要求。有关详细信息,请参阅 ThingWorx 帮助中心的系统要求
安装兼容的 ThingWorx 版本。有关详细信息,请参阅安装 ThingWorx
配置 ThingWorx 以启用扩展导入。有关详细信息,请参阅 ThingWorx 帮助中心的导入扩展
请确保将 ThingWorx 服务器时区设置为 UTC。有关详细信息,请参阅 ThingWorx 帮助中心内的安装 Java、Apache Tomcat 和 ThingWorx
应用许可证。有关详细信息,请参阅 ThingWorx 帮助中心的 ThingWorx 许可
获取对 Solution Central 的访问权限。除了用于部署构建基块外,Solution Central 工具还被推荐用于在不同的 ThingWorx 环境之间迁移您的部署和自定义,例如从测试环境迁移到生产环境。有关详细信息,请参阅 ThingWorx Solution Central Help Center
如果要在 Linux 上安装数据库,请先安装 sqlcmd 工具。
安装 Microsoft SQL Server Management Studio。有关详细信息,请参阅 https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
更新脚本超时设置
要更新脚本超时设置,ThingWorx 管理员必须完成以下步骤:
1. ThingWorx 服务器上,导航至 ThingWorxPlatform 文件夹。
2. 在文本编辑器中打开 platform-settings.json 文件。
3. 找到 ScriptTimeout 设置并将其值更新为 1200。
4. 保存并关闭 platform-settings.json 文件。
5. 重新启动 ThingWorx 服务器。
* 
如果脚本日志中出现如下所示的消息,请重复上述步骤以进一步增加 ScriptTimeout 设置的值:
[message: Execution of Script terminated after : 1200 seconds. Timeout configured for 1200 seconds.]
有关详细信息,请参阅 ThingWorx 帮助中心内的 platform-settings.json 配置细节
更新会话超时设置
默认情况下,空闲用户会话将在 30 分钟后超时。
要更改会话超时设置,ThingWorx 管理员必须完成以下步骤:
1. ThingWorx 中,导航至“系统” > “子系统”
2. 在编辑模式下打开 UserManagementSubsystem
3. “配置”下,更改“空闲会话超时 (分钟)”设置。
4. 单击“保存”
5. 重新启动 ThingWorx 服务器。
安装 MS SQL JDBC 驱动程序
如果将 ThingWorx 实例配置为以 PostgreSQL 作为持久化方案提供工具,那么要想安装 MS SQL JDBC 驱动程序,请完成以下步骤。如果将 ThingWorx 实例配置为以 MS SQL 作为持久化方案提供工具,请跳至下一节。
1. 通过以下链接,下载与 JRE11 兼容的 Microsoft JDBC Driver 7.4.1 for SQL Server 驱动程序版本:https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver15#sql-version-compatibility
2. 将 JDBC JAR 文件复制到 Tomcat 安装的 lib 目录中:(<TOMCAT_HOME>/lib)。
3. 重新启动 Tomcat 服务器以加载 JDBC 驱动程序,使其可在 ThingWorx 使用。
创建构建基块数据库和数据库用户
请完成以下步骤:
1. 在主数据库中为构建基块数据库用户创建登录名和密码。请遵照针对数据库的密码复杂性建议来创建密码。
对于 Windows,在 Microsoft SQL Server Management Studio 的查询编辑器中使用 Transact-SQL 命令:
CREATE LOGIN <bbadmin> WITH PASSWORD = '<password>';
在上述命令中,使用构建基块数据库用户的登录名和密码替换 <bbadmin><password>
对于 Linux:
1. 在 Linux 客户端中打开命令提示符。
2. 使用以下命令在 SQL Server 上创建登录:
sqlcmd –S <database-server-name> -U <sql-administrator-username> -P <sql-administrator-password> \
-Q "create login <bbadmin> with password = '<bbadmin-password>'" \
GO; \
exit
在上述命令中,使用数据库服务器名称替换 <database-server-name>,使用 SQL 管理员用户名和密码分别替换 <sql-administrator-username><sql-administrator-password>,以及使用构建基块数据库用户的登录名和密码分别替换 <bbadmin><bbadmin-password>
2. 创建构建基块将使用的 Microsoft SQL Server (MSSQL) 数据库。
对于 Windows,在 Microsoft SQL Server Management Studio 的查询编辑器中使用 Transact-SQL 命令:
CREATE DATABASE <bbdb> COLLATE SQL_Latin1_General_CP1_CI_AS;
ALTER DATABASE <bbdb> SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE <bbdb> SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE <bbdb> SET ARITHABORT ON;
在上述命令中,使用数据库名称替换 <bbdb>
对于 Linux:
1. 在 Linux 客户端中打开命令提示符。
2. 使用以下命令创建 SQL Server 数据库,并使用数据库服务器名称以及 SQL 管理员用户名和密码分别替换相关变量:
sqlcmd –S <database-server-name> \
-U <sql-administrator-username> -P <sql-administrator-password> \
-Q "create database <bbdb> COLLATE SQL_Latin1_General_CP1_CI_AS; ALTER DATABASE <bbdb> SET READ_COMMITTED_SNAPSHOT ON; ALTER DATABASE <bbdb> SET ALLOW_SNAPSHOT_ISOLATION ON;ALTER DATABASE <bbdb> SET ARITHABORT ON"
在上述命令中,使用数据库服务器名称替换 <database-server-name>,使用 SQL 管理员用户名和密码分别替换 <sql-administrator-username><sql-administrator-password>,以及使用数据库名称替换 <bbdb>
3. 针对在步骤 1 中创建的登录名创建数据库用户。使用数据库用户在登录时所用的登录名。
对于 Windows,在针对步骤 2 中所创建的数据库打开的 Microsoft SQL Server Management Studio 查询编辑器中使用 Transact-SQL 命令:
CREATE USER <bbadmin> FOR LOGIN <bbadmin>;
ALTER ROLE [db_owner] ADD MEMBER <bbadmin>;
在上述命令中,使用步骤 1 中创建的登录名替换 <bbadmin>
对于 Linux:
1. 在 Linux 客户端中打开命令提示符。
2. 使用以下命令为构建基块数据库创建数据库用户,并使用数据库服务器名称以及 SQL 管理员用户名和密码分别替换相关变量:
sqlcmd –S <database-server-name> \
-U <sql-administrator-username> -P <sql-administrator-password> \
-Q "use <bbdb>; create user <bbadmin> for login <bbadmin>;ALTER ROLE [db_owner] ADD MEMBER <bbadmin>"
在上述命令中,使用数据库服务器名称替换 <database-server-name>,使用 SQL 管理员用户名和密码分别替换 <sql-administrator-username><sql-administrator-password>,使用数据库名称替换 <bbdb>,以及使用步骤 1 中创建的登录名替换 <bbadmin>
使用 Solution Central 部署构建基块
* 
如果要在 ThingWorx HA 系统上部署构建基块,则建议将群集缩减至单个实例,并安装扩展,然后重新扩展群集。这样更加高效,并可防止最终出现一致性问题,因为每台服务器都会在启动时加载新扩展。有关详细信息,请参阅 ThingWorx 帮助中心的在 ThingWorx HA 中管理 ThingWorx 扩展
要使用 Solution Central 将构建基块部署到 ThingWorx 实例,ThingWorx 管理员必须完成以下步骤:
1. 请确保 ThingWorx Composer 中已安装许可证。有关详细信息,请参阅 PTC 知识库中的此技术支持文章
2. 设置 Solution Central。有关详细信息,请参阅 ThingWorx Solution Central Help Center 的 Getting Started with Using Solution Central
3. 在 Solution Central 中注册 ThingWorx 实例。有关详细信息,请参阅 ThingWorx Solution Central Help Center 的 Register Your ThingWorx Instance
4. ThingWorx Composer 中,导航至“管理” > Solution Central > “PTC 解决方案”
5. 选中要部署的构建基块所对应的复选框。以下构建基块集可供使用:
Manufacturing Building Blocks
6. 单击“点击部署”。随即打开一个窗口,其中列出要部署的所有扩展。
7. 单击“部署全部”
即会下载并安装这些扩展。此过程可能需要几分钟时间。此过程完成后,您会收到相关通知。
有关详细信息,请参阅 ThingWorx Solution Central Help Center
运行 InitializeSolution 服务
运行 InitializeSolution 服务,以配置要连接到构建基块数据库的数据库事物,创建数据库表,并为构建基块注册管理器事物。
要运行此服务,ThingWorx 管理员必须完成以下步骤:
1. ThingWorx Composer 中,导航至 PTC.Base.Manager 事物。
2. 获取配置参数:
a. “服务”下,查找并执行 GetSolutionDeploymentConfigurationParameters 服务。服务输出为 JSON,其中包含 InitializeSolution 服务所需的配置参数 (具体根据所提供的构建基块集而动态变化)。服务输出 JSON 如下所述:
{
"databaseUser": {
"types": [
"STRING"
],
"description": "Name of the database user used for DPM database Thing",
"optional": false
},
"twxAdminUserName": {
"types": [
"STRING"
],
"description": "Thingworx Admin Username",
"optional": false
},
"overrideComponentDeploymentState": {
"types": [
"BOOLEAN"
],
"description": "If true, the current component deployment state is ignored and the DeployComponent service will be rerun.",
"optional": true
},
"twxAdminPassword": {
"types": [
"STRING"
],
"description": "Thingworx Admin Password",
"optional": false
},
"databasePassword": {
"types": [
"STRING"
],
"description": "Password of the database user used for DPM database Thing",
"optional": false
},
"twxURL": {
"types": [
"STRING"
],
"description": "Thingworx URL",
"optional": false
},
"databaseJDBCString": {
"types": [
"STRING"
],
"description": "JDBC Connection String for the DPM database Thing",
"optional": false
},
"databaseThing": {
"types": [
"STRING"
],
"description": "The default database thing (PTC.DBConnection.MSSQLDatabase)",
"optional": true
}
}
b. 复制在服务输出中返回的 JSON,并将其粘贴到文本编辑器中。
c. 编辑 JSON,使用特定于站点的值替换各个配置参数的大括号之间的内容。
databaseUser - 具有系统管理权限的数据库用户的登录名。
twxAdminUserName - ThingWorx 管理员用户的名称。
twxAdminPassword - ThingWorx 管理员用户的密码。
databasePassword - 具有系统管理权限的数据库用户的登录密码。
databaseJDBCString - 构建基块数据库的 JDBC 连接字符串。
twxURL - ThingWorx 实例的 URL。
databaseThing - 默认数据库事物 (PTC.DBConnection.MSSQLDatabase)。
以下示例是经过编辑的 JSON:
{
"databaseUser": "<bbadmin>",
"twxAdminUserName": "Administrator",
"twxAdminPassword": "<twxadminpassword>",
"databasePassword": "<password>",
"databaseJDBCString": "jdbc:sqlserver://<databaseHost>:<databasePort>;databaseName=<bbdatabaseName>",
"twxURL": "http://<host>:<port>/Thingworx",
"databaseThing": "PTC.DBConnection.MSSQLDatabase"
}
以下示例是经过编辑且具有实际值的 JSON:
{
"databaseUser": "BBadmin",
"twxAdminUserName": "Administrator",
"twxAdminPassword": "ThingWorx!BB9876",
"databasePassword": "945DaTaBase!39525",
"databaseJDBCString": "jdbc:sqlserver://localhost:1433;databaseName=dpmdb",
"twxURL": "http://MyCompany.com:8080/Thingworx",
"databaseThing": "PTC.DBConnection.MSSQLDatabase"
}
3. “服务”下,查找并执行 InitializeSolution 服务,并将步骤 2.c 中编辑的 JSON 作为此服务的 deploymentConfig 输入参数。
此服务完成后,输出会显示一个信息表,其中列出已部署的构建基块及其配置状况:ConfiguredNot ConfiguredError。如果构建基块具有 ErrorNot Configured 状况,请完成以下故障排除步骤:
a. 请确保 JSON 中指定的数据库凭据是有效的,然后再执行 InitializeSolution 服务。
b. 如果构建模块在服务输出中仍具有 ErrorNot Configured 状况,请审阅 ThingWorx 应用程序和脚本错误日志,并解决在此发现的任何错误。然后执行 InitializeSolution 服务。
c. 如果构建模块在服务输出中仍具有 ErrorNot Configured 状况,请更新 JSON 以在其中包含以下内容,然后执行 InitializeSolution 服务:
"overrideComponentDeploymentState": true
运行 UpdateDBSchema 服务
运行 UpdateDBSchema 服务以将必要约束应用于数据库表。
要运行此服务,ThingWorx 管理员必须完成以下步骤:
1. ThingWorx Composer 中,导航至 PTC.DBConnection.Manager 事物。
2. “服务”下,查找并执行 UpdateDBSchema 服务。
执行完服务后,服务输出窗格中会出现一个显示数据库更新情况的信息表。
这对您有帮助吗?