安装和升级 > 安装 ThingWorx > 手动安装 > 安装附录 > plateform-settings.json 配置详细信息
plateform-settings.json 配置详细信息
plateform-settings.json 文件适用于管理员对设置进行微调,可至软件下载处获取。有关高可用性群集的特定设置,请参阅 ThingWorx HA 的平台设置
* 
以下示例包含所有选项。仅需要一个持久化方案提供工具。
{
"PlatformSettingsConfig": {
"BasicSettings": {
"BackupStorage": "/ThingworxBackupStorage",
"DatabaseLogRetentionPolicy": 7,
"DatabaseWriteRetryAttempts": 10,
"EnableBackup": true,
"EnableClusteredMode": false,
"EnableSystemLogging": false,
"EnableSSO": false,
"FileRepositoryRoot": "/ThingworxStorage",
"HTTPRequestHeaderMaxLength": 2000,
"HTTPRequestParameterMaxLength": 2000,
"InternalAesCryptographicKeyLength": 128,
"MetricsLoggingFrequency": 30,
"MetricsLoggingLevel": "WARN",
"MetricsReportingEnabled": true,
"SessionUpdateDelay": 60,
"Storage": "/ThingworxStorage",
"ScriptTimeout": 30,
"MaxSearchItems": 100000
},
"DomainConfiguration": {
"trustedDomains":[
"www.example1.com",
"www.example2.com",
"images.example3.com",
"localhost"
],
"ignoreTrustedDomains": false
}
"SolutionCentralSettings": {
"SolutionCentralHost": "<Solution Central host name>",
"KeyStorePath": "<Path for your keystore>",
"KeyStorePass": "<Password for your keystore>"
},
"AdministratorUserSettings": {
"InitialPassword": "changeme"
},
"ContentTypeSettings": {
"supportedMediaEntityContentTypes" : ["image/svg+xml","image/png","image/gif","image/bmp","image/jpeg","application/pdf","image/vnd.microsoft.icon"]
},
"OrchestrationSettings": {
"EnableOrchestration": true,
"QueueHost": "localhost",
"QueuePort": 5672,
"QueueName": "256mb",
"QueueUsername": "flowuser",
"QueuePassword": "encrypt.queue.password",
"QueueVHost": "orchestration",
"TurnOffScopesApprovalPopup": true
},
"ExtensionPackageImportPolicy": {
"importEnabled": false,
"allowJarResources": false,
"allowJavascriptResources": false,
"allowCSSResources": false,
"allowJSONResources": false,
"allowWebAppResources": false,
"allowEntities": false,
"allowExtensibleEntities": false,
"haCompatibilityImportLevel": "WARN"
},
"ClusteredModeSettings": {
"PlatformId": "platform1",
"CoordinatorHosts": "localhost:2181",
"ModelSyncPollInterval": 100
},
"LicensingConnectionSettings": {
"username": "<username>",
"password": "<password>",
"timeout":"60",
"useProxy": false,
"proxyHost": "<proxyHost>",
"proxyPort" : "<proxy port>",
"proxyScheme": "<http or https>",
"proxyUseNTLM": true,
"proxyUsername": "<user>",
"proxyPassword": "<user password>",
"proxyWorkstation": "<dummyWorkstation>",
"proxyDomain": "<dummyDomain>"
},
"MetricsUserSettings": {
"InitialPassword": "<password>"
},
"PersistenceProviderPackageConfigs": {
"H2PersistenceProviderPackage": {
"ConnectionInformation": {
"acquireIncrement": 5,
"acquireRetryAttempts": 30,
"acquireRetryDelay": 1000,
"checkoutTimeout": 2000,
"networkTimeout": 900000,
"idleConnectionTestPeriod": 6,
"initialPoolSize": 10,
"maxConnectionAge": 0,
"maxIdleTime": 0,
"maxIdleTimeExcessConnections": 36000,
"maxPoolSize": 100,
"maxStatements": 0,
"maxStatementsPerConnection": 50,
"minPoolSize": 10,
"numHelperThreads": 6,
"password": "password",
"tableLockTimeout": 10000,
"testConnectionOnCheckout": false,
"unreturnedConnectionTimeout": 0,
"username": "twadmin"
},
"StreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumQueueSize": 250000,
"maximumWaitTime": 10000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"ValueStreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 10000,
"maximumQueueSize": 500000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"PersistentPropertyProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 1000,
"maximumQueueSize": 100000,
"numberOfProcessingThreads": 20,
"scanRate": 25,
"sizeThreshold": 1000
"producerTimeout": 30000,
}
},
"PostgresPersistenceProviderPackage": {
"ConnectionInformation": {
"acquireIncrement": 5,
"acquireRetryAttempts": 3,
"acquireRetryDelay": 10000,
"checkoutTimeout": 1000000,
"networkTimeout": 900000,
"queryTimeout": 600000,
"driverClass": "org.postgresql.Driver",
"fetchSize": 5000,
"idleConnectionTestPeriod": 60,
"initialPoolSize": 5,
"jdbcUrl": "jdbc:postgresql://localhost:5432/thingworx",
"maxConnectionAge": 0,
"maxIdleTime": 0,
"maxIdleTimeExcessConnections": 300,
"maxPoolSize": 100,
"maxStatements": 100,
"minPoolSize": 5,
"numHelperThreads": 8,
"password": "password",
"testConnectionOnCheckout": false,
"unreturnedConnectionTimeout": 0,
"username": "twadmin"
},
"StreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumQueueSize": 250000,
"maximumWaitTime": 10000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"ValueStreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumQueueSize": 500000,
"maximumWaitTime": 10000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"PersistentPropertyProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 1000,
"maximumQueueSize": 100000,
"numberOfProcessingThreads": 20,
"scanRate": 25,
"sizeThreshold": 1000
"producerTimeout": 30000,
}
},
"MssqlPersistenceProviderPackage": {
"ConnectionInformation": {
"acquireIncrement": 5,
"acquireRetryAttempts": 3,
"acquireRetryDelay": 10000,
"checkoutTimeout": 1000000,
"networkTimeout": 900000,
"queryTimeout": 600000,
"driverClass": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"fetchSize": 5000,
"idleConnectionTestPeriod": 60,
"initialPoolSize": 5,
"jdbcUrl": "jdbc:sqlserver://localhost:1433;databaseName=thingworx;applicationName=Thingworx;",
"maxConnectionAge": 0,
"maxIdleTime": 0,
"maxIdleTimeExcessConnections": 300,
"maxPoolSize": 100,
"maxStatements": 100,
"minPoolSize": 5,
"numHelperThreads": 8,
"password": "Password@123",
"testConnectionOnCheckout": false,
"unreturnedConnectionTimeout": 0,
"username": "msadmin"
},
"StreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumQueueSize": 250000,
"maximumWaitTime": 10000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"ValueStreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 10000,
"maximumQueueSize": 500000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
"producerTimeout": 30000,
},
"PersistentPropertyProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 1000,
"maximumQueueSize": 100000,
"numberOfProcessingThreads": 20,
"scanRate": 25,
"sizeThreshold": 1000
"producerTimeout": 30000,
}
}
},
"cache": {
"provider-type": "com.thingworx.cache.ignite.IgniteCacheProvider",
"ignite": {
"instance-name": "twx-core-server",
"client-mode": false,
"address-resolver": {
"type": "zookeeper",
"connection": "localhost:2181"
}
}
}
}
}
* 
参数 networkTimeoutqueryTimeoutproducerTimeout 仅能用于 ThingWorx 9.2.8 和更高版本,以及 ThingWorx 9.3.3 和更高版本。
platform-settings.json 设置
基本设置 
设置
默认值
说明
BackupStorage
/ThingworxBackupStorage
写入所有备份的目录名称。
DatabaseLogRetentionPolicy
7
数据库日志的保留天数。
DatabaseWriteRetryAttempts
10
系统在失去连接的情况下重试持久化数据库中条目的最大尝试次数。
EnableBackup
true
确定是否保留备份。
EnableClusteredMode
false
确定 ThingWorx 将作为群集还是独立服务器运行。
EnableSystemLogging
false
确定是否已启用系统日志记录。
* 
除非得到 THINGWORX 支持的指导,否则不要将其开启。
EnableSSO
false
设置为 true 时,可针对 ThingWorx Platform 启用 SSO。启用 SSO 时,所有身份验证都将重新定向到于 sso-settings.json 文件中配置的中央授权服务器。Edge WebSocket 身份验证不会受到影响。
FileRepositoryRoot
/ThingworxStorage
创建根文件信息库的目录位置。默认位置可满足独立部署。对于 ThingWorx HA 部署,存储库应位于所有 ThingWorx 服务器均可访问的共享文件系统上。
HTTPRequestHeaderMaxLength
2000
HTTP 请求标题值的最大允许长度。
HTTPRequestParameterMaxLength
2000
HTTP 请求参数值的最大允许长度。
InternalAesCryptographicKeyLength
128
生成对称 AES 密钥时使用的密钥长度。可用值为 128、192、256。
* 
如果密钥长度大于 128 且 Java 策略未配置为使用该密钥大小,则加密和解密将失败。
MetricsLoggingFrequency
30
将由平台收集的指标记录到“应用程序日志”时采用的频率 (以分钟为单位)。
MetricsLoggingLevel
WARN
将由平台收集的指标记录到“应用程序日志”时采用的“日志级别”。值可以是下列选项之一:WARNDEBUGTRACEINFOERROR
MetricsReportingEnabled
不适用
确定是否将性能指标数据发送至 PTC。也可在平台子系统中配置此选项。有关 ThingWorx 中数据收集的详细信息,请参阅 ThingWorx 中的数据收集
SessionUpdateDelay
60
添加到 lastUpdateTime 的时长 (以秒为单位),达到此时长后会话的 lastUpdateTime 将会更新。如果在延迟期间收到多个请求,则只有第一个请求会更新 lastUpdateTime。默认值为 60 秒。
Storage
/ThingworxStorage
创建/定位所有存储的目录 (不包括备份存储)。
ScriptTimeout
30
在 ThingWorx 平台终止脚本之前,脚本可以执行的最大秒数。
* 
如果脚本执行时间超过为此超时配置的秒数,则平台上的脚本将自动终止。
* 
在配置其超时持续时间时,请考虑脚本所处理的信息的敏感度和/或重要性。尽管出于安全考虑,在给定时间段后终止脚本至关重要,但过早终止可能会导致数据丢失。由于 ThingWorx 平台的灵活性,在某些用例中,所需的超时时间可能会比默认值稍短或稍长。
MaxSearchItems
100000
允许用户根据环境中存在的实体数增加默认搜索限制。
在 ThingWorx Composer 中通过 SearchFunctions 资源组 API 设置的 MaxSearchItems 将优先于在 platform-settings.json 中设置的值。
如果将 MaxSearchItems 设置为大于 100k,则根据用例传递相应的搜索条件,以减少获取所需数量的实体耗用的搜索时间。
* 
根据 ThingWorx Platform 中的实体数设置 MaxSearchItems 参数。不要设置为最大整数值:2,147,483,647。
* 
重新启动 ThingWorx 环境以应用新的 MaxSearchItems 值。
域配置设置 
设置
默认值
说明
ignoreTrustedDomains
true
如果将此标志设置为 true,则允许通过媒体实体调用所有外部 HTTP。如果设置为 false,则只允许针对 trustedDomains 下列出的域调用 HTTP。
trustedDomains
不适用
已验证和受信任域的列表,用户可凭借该列表通过媒体实体对象访问混搭中的媒体。
* 
目前仅支持 HTTP 和 HTTPS 协议。通过任何其他协议向外部媒体发出的请求始终会被拒绝
Solution Central 设置 
设置
默认值
说明
SolutionCentralHost
sc.thingworx.com
Solution Central 主机名。
SolutionCentralPort
443
Solution Central 端口详细信息。
* 
如果 SolutionCentralPort 具有默认值,请不要进行设置。
KeyStorePath
/ThingworxPlatform/sc-keystore
密钥库的路径。
KeyStorePass
密钥库的密码。
* 
要加密密码,请将 KeyStorePass 设置为 encrypt.sc.password
ThingWorx Flow 设置 
仅当在 ThingWorx Foundation 上安装了 ThingWorx Flow 时,这些属性才适用。这些值必须同时在 ThingWorx Flow 和 RabbitMQ 配置文件中进行定义,且只能在两个应用程序之间进行更改,而不得在任何其他位置进行编辑。
设置
默认值
说明
EnableOrchestration
true
指示是否在 ThingWorx Foundation 中启用 ThingWorx Flow。
QueueHost
localhost
RabbitMQ 主机名
QueuePort
5672
RabbitMQ 端口
QueueName
256mb
RabbitMQ 队列名称
QueueUsername
flowuser
RabbitMQ 队列用户名
QueuePassword
encrypt.queue.password
RabbitMQ 队列密码
* 
如果 ThingWorx Flow 与 ThingWorx Foundation 安装在同一台计算机上,则系统会自动对密码进行加密。
如果 ThingWorx Foundation 与 ThingWorx Flow 安装在不同的计算机上,则需要加密此密码
QueueVHost
orchestration
RabbitMQ VHost 名称
TurnOffScopesApprovalPopup
false
将值设置为 true 可在登录过程中停止获取授权批准窗口。
扩展包导入策略设置 
默认情况下,所有用户的扩展导入均处于禁用状态。使用以下设置配置扩展导入功能。有关详细信息,请参阅导入扩展
设置
说明
默认值
示例
importEnabled
表示可导入 (=true) 或不可导入 (=false) 扩展的顶级控件。
false
"importEnabled": false - 即使将其他 ExtensionPackageImportPolicy 设置均设置为 true,也无法导入扩展。
"importEnabled": true - 将扩展导入传递给下一组 allow<Content>Resources 设置 (请参阅以下行)。
* 
allow<Content>Resources 设置为 false,则将导入空扩展 (无实体、可扩展实体或资源)。由于这可能不是一个有用的配置,因此,若将 importEnabled 设置为 true,则至少还应将另一个 allow<Content>Resources 设置设置为 true。
allowJarResources
允许导入具有 Jar 资源的扩展。
false
"allowJarResources": true - 允许导入将其内容清单中的 jar 文件声明为 jar 资源的扩展。
"allowJarResources": false - 不允许导入将其内容清单中的 jar 文件声明为 jar 资源的扩展。
allowJavascriptResources
允许导入具有 JavaScript 资源的扩展。
false
"allowJavascriptResources": true - 允许导入将其内容清单中 JS 类型的 JavaScript 用户界面文件资源声明为 JavaScript 资源的扩展。
"allowJavascriptResources": false - 不允许导入将其内容清单中 JS 类型的 JavaScript 用户界面文件资源声明为 JavaScript 资源的扩展。
allowCSSResources
允许导入具有 CSS 资源的扩展。
false
"allowCSSResources": true - 允许导入包含 CSS 用户界面文件资源的扩展。
"allowCSSResources": false - 不允许导入包含 CSS 用户界面文件资源的扩展。
allowJSONResources
允许导入具有 JSON 资源的扩展 (例如,本地化文件)。
false
"allowJSONResources": true - 允许导入包含 JSON 用户界面文件资源的扩展。
"allowJSONResources": false - 不允许导入包含 JSON 用户界面文件资源的扩展。
allowWebAppResources
允许导入具有 Web 资源的扩展。
false
"allowWebAppResources": true - 允许导入包含 WebApp 用户界面文件资源的扩展。
"allowWebAppResources": false - 不允许导入包含 WebApp 用户界面文件资源的扩展。
allowEntities
允许导入具有不可扩展实体的扩展。不可扩展实体的示例包括:
应用程序密钥
身份验证器
仪表板
数据分析定义
数据形状
GenericContentEntity 及其衍生子类,如状态定义、样式定义、样式主题
本地化表
日志
混搭
媒体实体
菜单
ModeledServiceProviderEntity 及其子类,如通知内容
网络
通知定义
组织
持久化方案提供工具
PersistenceProviderPackage 及其衍生子类
项目
事物形态
事物模板
用户
词汇及其衍生子类,如 DataTagVocabulary、ModelTagVocabulary
false
"allowEntities": true - 允许导入在其内容清单中声明不可扩展实体的扩展。
"allowEntities": false - 不允许导入在其内容清单中声明不可扩展实体的扩展。
allowExtensibleEntities
允许导入具有不可扩展实体的扩展。可扩展实体的示例包括:
DirectoryService 及其衍生子类
ExtensionPackage
资源及其衍生子类,其中包含用作资源的自定义函数/服务,此类资源类似于 InfoTableFunctions、EntityServices 和 EncryptionServices 等 OOTB 资源。
* 
OOTB 子系统不属于扩展的一部分,因此不受影响。
ScriptFunctionLibrary 及其衍生子类。
子系统及其衍生子类。
* 
OOTB 子系统不属于扩展的一部分,因此不受影响。
事物包
小组件
false
"allowExtensibleEntities": true - 允许导入在其清单中声明可扩展实体的扩展。
"allowExtensibleEntities": false - 不允许导入在其清单中声明可扩展实体的扩展。
haCompatibilityImportLevel
在群集模式下运行 ThingWorx 时,您可以将扩展的导入限制为仅导入那些 haCompatibility 标志在扩展元数据中设置为 true 的扩展。默认设置为 WARN,即表示允许导入,但会在应用程序日志中生成一条警告消息。您可以将此设置更改为 DENY;在这种情况下,导入将失败,并会在应用程序日志中生成一条错误消息。
WARN
"haCompatibilityImportLevel": "WARN" - 扩展导入成功,并为未设置 "haCompatible" : "TRUE" 的扩展生成警告。
"haCompatibilityImportLevel": "DENY" - 仅会导入设置了 "haCompatible" : "TRUE" 的扩展。其他所有扩展的导入将失败,并生成错误消息。
群集模式设置 
在群集模式下运行 ThingWorx 时的特定设置。如果以上 EnableClusteredMode 设置为 false,则忽略所有设置。
设置
默认值
说明
PlatformId
群集中每个节点的唯一标识符。此 ID 将在聚合日志中显示。它必须是字母数字且少于 32 个字符。应符合 "^[a-zA-Z0-9]{1,32}$" 模式。
CoordinatorHosts
用于协调 ThingWorx 领导选举的 Apache ZooKeeper 服务器的逗号分隔列表。字符串模式为 IP:端口。(例如,"127.0.0.1:2181, 127.0.0.2:2181")。
ZKNamespace
ThingWorx
用于在 ZooKeeper 中跟踪群集信息的根节点路径。使用同一 ZooKeeper 运行多个群集时需要此项。ZooKeeper 命名限制适用;请参阅 http://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#ch_zkDataModel
ModelSyncPollInterval
100
群集中服务器之间模型同步的频率。值以毫秒为单位。
ModelSyncWaitPeriod
3000
当通过 Websocket 进行通信时,流量将在服务器之间进行循环传送。如果通过 Websocket 对模型进行更改,则下一个请求将等待指定时间 (以毫秒为单位),以使模型在其所在的服务器上同步。如果在超时之前未发生同步,则请求将失败,并显示超时错误。
ModelSyncTimeout
120000
每次重试所需等待的时间 (以毫秒为单位)。
CoordinatorMaxRetries
3
如果与协调器通信失败,它将在失败前重试 n 次。
CoordinatorSessionTimeout
90000
ThingWorx 在没有收到用于协调 ThingWorx 领导的 Apache ZooKeeper 服务的“心跳”的情况下等待的时间 (以毫秒为单位)。
CoordinatorConnectionTimeout
10000
与协调器建立连接之前将等待的时间 (以毫秒为单位)。
MetricsCacheFrequency
60000
将按服务器跟踪指标并针对群集级指标聚合这些指标。此值是群集指标的更新频率 (以毫秒为单位)。
管理员用户设置 
设置
默认值
说明
InitialPassword
不适用
首次登录到 ThingWorx 所需的初始管理员密码。可在用户管理子系统中配置最小长度 (最少 10 个字符,默认值为 14 个字符)。有关详细信息,请参阅。
内容类型设置 
设置
默认值
说明
supportedMediaEntityContentTypes
"image/svg+xml","image/png","image/gif","image/bmp","image/jpeg","application/pdf","image/vnd.microsoft.icon"
可动态链接到媒体实体的有效 MIME 内容类型的逗号分隔列表。可以添加的其他类型。
* 
如果内容类型来自其他服务器 (媒体实体类型不受支持),则该内容将作为文件在客户端机器上下载,而不通过媒体实体返回。
许可连接设置 
设置
默认值
说明
username
不适用
PTC 支持站点用户名
password
不适用
PTC 支持站点密码
timeout (以秒为单位)
60
超时期限后,应用程序日志中记录以下错误:
License Server could not process request
useProxy
false
启用代理设置以获得许可。如果为 true,则使用代理设置连接到许可服务器。
proxyHost
代理主机的名称。
proxyPort
代理主机的端口号。
proxyScheme
http
httphttps
proxyUsername
如果代理服务器连接需要身份验证,则此设置为用于身份验证的用户名。
proxyPassword
如果代理服务器连接需要身份验证,则此设置为用于身份验证的密码。
* 
有关对此值进行加密的信息,请参阅加密密码
proxyUseNTLM
false
用于使用 NTLM 协议的选项。
proxyWorkstation
网络上用户计算机的名称 (如果需要 NTLM 身份验证)。
proxyDomain
用户域的名称 (如果需要 NTLM 身份验证)。
指标用户设置 
设置
默认值
说明
InitialPassword
在系统启动期间创建 MetricsUser,且 Prometheus 服务器将用其从 ThingWorx 实例下载指标信息。此设置对于所有 MSAI 部署是必需的,但对于所有其他类型的部署是可选的。
持久化方案提供工具设置 
对于以下列出的所有数据库,应遵循值流处理器设置和流处理器设置的以下指导原则:
StreamProcessorSettings.numberOfProcessingThreads + ValueStreamProcessorSettings.numberOfProcessingThreads < 50% of DB connection pool
And
ValueStreamProcessorSettings.numberOfProcessingThreads >= StreamProcessorSettings.numberOfProcessingThreads
H2PersistenceProviderPackage
设置
默认值
说明
连接信息
acquireIncrement
5
确定 ThingWorx 在池耗尽时将尝试一次性获取的连接个数。
acquireRetryAttempts
30
定义 ThingWorx 在放弃之前将尝试从数据库获取新连接的次数。
acquireRetryDelay
1000
ThingWorx 在每次获取尝试之间等待的时间 (以毫秒为单位)。
checkoutTimeout
1000000
当池耗尽时,调用 getConnection() 的客户端等待检入或获取连接的毫秒数。
Network Timeout
900000
线程等待数据库响应所需的时间 (以毫秒为单位)。
如果在此配置时间内未得到响应,则平台将关闭基础连接并释放等待响应的线程。
idleConnectionTestPeriod
6
测试连接的时间段 (以秒为单位),以便空闲连接不会从外部进程 (如防火墙等) 中关闭。如果此数字大于 0,ThingWorx 将在每 x 秒钟内测试所有空闲、合用但未检出的连接。
* 
如果您遇到“未连接至模型提供商”错误,请查看此设置。与防火墙默认值比较。降低默认值将缓解断开连接问题。
initialPoolSize
10
启动时在池中创建并维护的数据库连接的初始数量。应介于 minPoolSizemaxPoolSize 之间。
maxConnectionAge
0
秒,有效存在时间。超过 maxConnectionAge 的连接将被销毁并从池中清除。
maxIdleTime
0
连接被放弃之前,连接池中存在但未使用的连接秒数零表示空闲连接从不过期。
maxIdleTimeExcessConnections
36000
在将超过 minPoolSize 的连接剔除之前,该连接可在池中保持空闲状态的秒数。适用于希望大大减少打开连接数量的应用程序,如果在猛增之后负载级别减少并且不再需要获取连接,则将池缩回至 minPoolSize。如果设置 maxIdleTime,则 maxIdleTimeExcessConnections 应为更小的值才能产生效果。将其设置为零意味着不强制执行,并且超出的连接不会被闲置。
maxPoolSize
100
连接池在任何给定时间内保持的最大连接数。
maxStatements
0
ThingWorx 全局 PreparedStatement 缓存的大小。
maxStatementsPerConnection
50
每个连接的 ThingWorx 全局 PreparedStatement 缓存的大小。
minPoolSize
5
连接池在任何给定时间内保持的最小连接数。
numHelperThreads
6
生成的 helper 线程数目。通常,速度较慢的 JDBC 操作将由未持有竞争锁的 helper 线程执行。将这些操作分散到多个线程中,可以同时执行多个操作,从而显著提高性能。
password
不适用
数据库密码。
username
twadmin
数据库用户名。
tableLockTimeout
10000
客户端等待数据库表解锁的毫秒数。
testConnectionOnCheckout
false
如果为 true,则会在每个连接检出时执行操作以验证连接是否有效。
unreturnedConnectionTimeout
0
放弃无响应连接之前等待其响应的秒数。如果进行此设置,当应用程序检出但在指定时间内未能检入连接时,池将放弃连接。这使得偶尔发生连接泄漏的应用程序能够继续使用,而非最终耗尽连接池。零表示无超时,并且应用程序会关闭其连接。
StreamProcessorSettings
maximumBlockSize
2500
可在单个块中处理的最大流写入次数。
maximumQueueSize
250000
要排队的流条目的最大数量 (之后将被拒绝)。
maximumWaitTime
10000
清空流缓冲区之前的最长等待时间 (以毫秒为单位)。
numberOfProcessingThreads
5
处理属性时使用的线程数。
scanRate
5
检查缓冲区状况的速率 (以毫秒为单位)。
sizeThreshold
1000
清空流缓冲区之前可累积的最大项数。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
ValueStreamProcessorSettings
maximumBlockSize
2500
可在单个块中处理的最大流写入次数。
maximumQueueSize
250000
要排队的流条目的最大数量 (之后将被拒绝)。
maximumWaitTime
10000
清空流缓冲区之前的最长等待时间 (以毫秒为单位)。
numberOfProcessingThreads
5
处理属性时使用的线程数。
scanRate
5
检查缓冲区状况的速率 (以毫秒为单位)。
sizeThreshold
1000
清空流缓冲区之前可累积的最大项数。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
PersistentPropertyProcessorSettings
maximumBlockSize
2500
可在单个块中处理的最大属性写入次数。
maximumWaitTime
1000
清空属性缓冲区之前的最长等待时间 (以毫秒为单位)。
maximumQueueSize
100000
要排队的属性条目的最大数量 (之后将被拒绝)。
numberOfProcessingThreads
20
处理属性时使用的线程数。
scanRate
25
检查缓冲区状况的速率 (以毫秒为单位)。
sizeThreshold
1000
清空属性缓冲区之前可累积的最大项数。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
PostgresPersistenceProviderPackage
设置
默认值
说明
ConnectionInformation
acquireIncrement
5
确定平台在池耗尽时将尝试一次性获取的连接个数。
acquireRetryAttempts
3
定义 ThingWorx 在放弃之前将尝试从数据库获取新连接的次数。
acquireRetryDelay
10000
ThingWorx 在每次获取尝试之间等待的时间 (以毫秒为单位)。
checkoutTimeout
10000000
当池耗尽时,调用 getConnection() 的客户端等待检入或获取连接的毫秒数。
Query Timeout
600000
查询在取消前等待完成所需的时间 (以毫秒为单位)。
Network Timeout
900000
线程等待数据库响应所需的时间 (以毫秒为单位)。
如果在此配置时间内未得到响应,则平台将关闭基础连接并释放等待响应的线程。
driverClass
org.postgresql.Driver
预期提供连接的 JDBC 驱动类的完全限定类名。
fetchSize
5000
要批量提取的行数,而不是缓存客户端的所有行。
idleConnectionTestPeriod
60
如果该数字大于 0,ThingWorx 将每 x 秒钟测试一次所有空闲、合用但未检出的连接。
initialPoolSize
5
启动时在池中创建并维护的数据库连接的初始数量。应介于 minPoolSizemaxPoolSize 之间。
jdbcUrl
jdbc:postgresql://localhost:5432/thingworx
用于连接到 PostgreSQL 的 JDBC URL。
* 
如果默认架构名称已 (由 public) 更改为其他名称,则必须添加 <databasename>?currentSchema=<name of schema>。例如,如果架构名称为 mySchema,则应为: jdbc:postgresql://<DBServer>:<DBPort>/<databasename>?currentSchema=mySchema
* 
如果您正在配置 HA 解决方案,则其中应反映 pgPool 进程正在运行的服务器 IP。将端口更改为 pgPool 所提供的端口。
maxConnectionAge
0
秒,有效存在时间。早于 maxConnectionAge 的连接将被破坏并从池中清除。
maxIdleTime
0
连接被放弃之前,连接池中存在但未使用的连接秒数零表示空闲连接从不过期。
maxIdleTimeExcessConnections
300
在将超过 minPoolSize 的连接剔除之前,该连接可在池中保持空闲状态的秒数。适用于希望大大减少打开连接数量的应用程序,如果在猛增之后负载级别减少并且不再需要获取连接,则将池缩回至 minPoolSize。如果设置 maxIdleTime,则 maxIdleTimeExcessConnections 应为更小的值才能产生效果。将其设置为零意味着不强制执行,并且超出的连接不会被闲置。
maxPoolSize
100
连接池在任何给定时间内保持的最大连接数。
maxStatements
100
ThingWorx 的全局 PreparedStatement 缓存的大小。
minPoolSize
5
连接池在任何给定时间内保持的最小连接数。
numHelperThreads
8
生成的 helper 线程数目。通常,速度较慢的 JDBC 操作将由未持有竞争锁的 helper 线程执行。将这些操作分散到多个线程中,可以同时执行多个操作,从而显著提高性能。
password
<unique password>
用于登录到数据库的密码。
testConnectionOnCheckout
false
如果为 true,则会在每个连接检出时执行操作以验证连接是否有效。
unreturnedConnectionTimeout
0
放弃无响应连接之前等待其响应的秒数。如果进行此设置,当应用程序检出但在指定时间内未能检入连接时,池将放弃连接。这使得偶尔发生连接泄漏的应用程序能够继续使用,而非最终耗尽连接池。零表示无超时,并且应用程序会关闭其连接。
username
twadmin
具有修改表格权限的用户。这是在 ThingWorx 服务器数据库中创建的用户。
* 
要更改 PostgreSQL 密码:请更改此用户的密码,并同时更改 platform-settings.json 文件中未加密的密码设置或 /ThingworxStorage/keystore.jks 密钥库中的加密值。
流处理器设置
maximumBlockSize
2500
可在单个块中处理的最大流写入次数。
maximumQueueSize
250000
要排队的流条目的最大数量 (之后将被拒绝)。
maximumWaitTime
10000
清空流缓冲区之前系统将等待的毫秒数。
numberOfProcessingThreads
5
处理线程数目。
scanRate
5
检查指定速率值 (以毫秒为单位) 的缓冲区状态
sizeThreshold
1000
清空流缓冲区之前可累积的项的最大数量。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
值流处理器设置
maximumBlockSize
2500
可在单个块中处理的最大值流写入次数。
maximumQueueSize
500000
要排队的值流条目的最大数量 (之后将被拒绝)。
maximumWaitTime
10000
清空值流缓冲区之前系统等待的毫秒数。
numberofProcessingThreads
5
处理线程数目。
scanRate
5
清空流缓冲区之前的速率 (以毫秒为单位)。
sizeThreshold
1000
清空值流缓冲区之前可累积的项的最大数量。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
PersistentPropertyProcessorSettings
maximumBlockSize
2500
可在单个块中处理的最大属性写入次数。
maximumWaitTime
1000
清空属性缓冲区之前的最长等待时间 (以毫秒为单位)。
maximumQueueSize
100000
要排队的属性条目的最大数量 (之后将被拒绝)。
numberOfProcessingThreads
20
处理属性时使用的线程数。
scanRate
25
检查缓冲区状况的速率 (以毫秒为单位)。
sizeThreshold
1000
清空属性缓冲区之前可累积的最大项数。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
MssqlPersistenceProviderPackage
设置
默认值
说明
ConnectionInformation
acquireIncrement
5
确定 ThingWorx 在池耗尽时将尝试一次性获取的连接个数。
acquireRetryAttempts
3
定义 ThingWorx 在放弃之前将尝试从数据库获取新连接的次数。
acquireRetryDelay
10000
ThingWorx 在每次获取尝试之间等待的时间 (以毫秒为单位)。
checkoutTimeout
1000000
当池耗尽时,调用 getConnection() 的客户端等待检入或获取连接的毫秒数。
driverClass
com.microsoft.sqlserver.jdbc.SQLServerDriver
需要提供连接的 JDBC 驱动类的完全限定类名称。
fetchSize
5000
要批量提取的行数,而不是缓存客户端的所有行。
idleConnectionTestPeriod
60
测试连接的时间段 (以秒为单位),以便空闲连接不会从外部进程 (如防火墙等) 中关闭。如果此数字大于 0,ThingWorx 将在每 x 秒钟内测试所有空闲、合用但未检出的连接。
* 
如果您遇到“未连接至模型提供商”错误,请查看此设置。与防火墙默认值比较。降低默认值将缓解断开连接问题。
initialPoolSize
5
启动时在池中创建并维护的数据库连接的初始数量。应介于 minPoolSizemaxPoolSize 之间。
jdbcUrl
jdbc:sqlserver://localhost:1433;databaseName=thingworx;applicationName=Thingworx;
用于连接到 MSSQL 的 jdbc url。
maxConnectionAge
0
秒,有效存在时间。超过 maxConnectionAge 的连接将被销毁并从池中清除。
maxIdleTime
0
连接被放弃之前,连接池中存在但未使用的连接秒数零表示空闲连接从不过期。
maxIdleTimeExcessConnections
300
在将超过 minPoolSize 的连接剔除之前,该连接可在池中保持空闲状态的秒数。适用于希望大大减少打开连接数量的应用程序,如果在猛增之后负载级别减少并且不再需要获取连接,则将池缩回至 minPoolSize。如果设置 maxIdleTime,则 maxIdleTimeExcessConnections 应为更小的值才能产生效果。将其设置为零意味着不强制执行,并且超出的连接不会被闲置。
maxPoolSize
100
连接池在任何给定时间内保持的最大连接数。
maxStatements
100
ThingWorx 全局 PreparedStatement 缓存的大小。
minPoolSize
5
连接池在任何给定时间内保持的最小连接数。
numHelperThreads
8
生成的 helper 线程数目。通常,速度较慢的 JDBC 操作将由未持有竞争锁的 helper 线程执行。将这些操作分散到多个线程中,可以同时执行多个操作,从而显著提高性能。
password
<unique password>
登录到数据库的密码。
testConnectionOnCheckout
false
如果为 true,则会在每个连接检出时执行操作以验证连接是否有效。
unreturnedConnectionTimeout
0
放弃无响应连接之前等待其响应的秒数。如果进行此设置,当应用程序检出但在指定时间内未能检入连接时,池将放弃连接。这使得偶尔发生连接泄漏的应用程序能够继续使用,而非最终耗尽连接池。零表示无超时,并且应用程序会关闭其连接。
username
msadmin
这是拥有 TWSCHEMA 架构的用户 ID,用于以 JDBC 连接字符串的形式对 MSSQL 进行身份验证。
Query Timeout
600000
查询在取消前等待完成所需的时间 (以毫秒为单位)。
Network Timeout
900000
线程等待数据库响应所需的时间 (以毫秒为单位)。
如果在此配置时间内未得到响应,则平台将关闭基础连接并释放等待响应的线程。
流处理器设置
maximumBlockSize
2500
可在单个块中处理的最大流写入次数。
maximumQueueSize
250000
要排队的流条目的最大数量 (之后将被拒绝)。
maximumWaitTime
10000
清空流缓冲区之前系统将等待的毫秒数。
numberOfProcessingThreads
5
处理线程数目。
scanRate
5
检查指定速率值 (以毫秒为单位) 的缓冲区状态
sizeThreshold
1000
清空流缓冲区之前可累积的项的最大数量。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
值流处理器设置
maximumBlockSize
2500
可在单个块中处理的最大值流写入次数。
maximumWaitTime
10000
清空值流缓冲区之前系统等待的毫秒数。
maximumQueueSize
500000
要排队的值流条目的最大数量 (之后将被拒绝)。
numberofProcessingThreads
5
处理线程数目。
scanRate
5
清空流缓冲区之前的速率 (以毫秒为单位)。
sizeThreshold
1000
清空值流缓冲区之前可累积的项的最大数量。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
PersistentPropertyProcessorSettings
maximumBlockSize
2500
可在单个块中处理的最大属性写入次数。
maximumWaitTime
1000
清空属性缓冲区之前的最长等待时间 (以毫秒为单位)。
maximumQueueSize
100000
要排队的属性条目的最大数量 (之后将被拒绝)。
numberOfProcessingThreads
20
处理属性时使用的线程数。
scanRate
25
检查缓冲区状况的速率 (以毫秒为单位)。
sizeThreshold
1000
清空属性缓冲区之前可累积的最大项数。
Producer Timeout
3000
此设置适用于流条目处理器,且当前仅对持久化属性处理器有效。
如果队列已满且无空间接纳新条目,则此为创建者等待向队列中添加条目所需的最长时间 (以毫秒为单位)。此等待时间结束后,若队列仍处于满溢状态且无可用空间,则条目将无法添加至队列。
缓存设置 
只有在群集模式下运行 ThingWorx Platform 时,才需要缓存设置。
* 
如果您正在运行单一服务器模式,则从配置中排除缓存设置。如果在单一服务器模式下包含这些设置,它们将使用 Apache Ignite 运行分布式缓存模式,此时的性能要比运行默认本地内存缓存时低。
设置
默认值
说明
provider-type
[用于在单一服务器模式下运行的缓存提供工具。]
在群集模式下,应始终将值设置为 com.thingworx.cache.ignite.IgniteCacheProvider
instance-name
设置缓存的本地实例名称。
client-mode
true
确定嵌入式 Ignite 将作为客户端 (默认) 还是作为服务器运行。在服务器模式下,它参与存储数据,且会使用更多内存。
address-resolver
type
static
确定将如何发现其他 Ignite 节点。建议的设置为 zookeeper
connection
对于 zookeeperaddress-resolver type,用于协调 ThingWorx 主导节点选择的 Apache ZooKeeper 服务器的逗号分隔列表。字符串模式为 IP:port (例如,127.0.0.1:2181, 127.0.0.2:2181)。
endpoints
对于 staticaddress-resolver type,是正在运行的 Ignite 的静态地址数组。
将 Audited Event 部分添加至 platform-settings.json 
重新启动 ThingWorx Platform 后,所有事物都会触发 ThingStart 事件。审计所有这些事件会增加平台的启动时间。为避免出现这种情况,默认将禁用 ThingStart 事件。如果仍想要审计此操作,可以在 platform-settings.json 文件中启用和禁用事件。
platform-settings.json 文件不包含 Audit 部分。要启用或禁用类别和消息,需要向文件添加 JSON 结构。对于要进行消息审计的 ThingWorx Platform 实例,您必须是有权查找和编辑 platform-settins.json 文件以及添加相应配置的管理员。
* 
Audit 部分必须作为 PlatformSettingsConfig 的 JSON 条目的同级节点添加。它可以位于 PlatformSettingsConfig 节点之前或之后,但必须处于相同的节点级别。
以下是位于 platform-settings.json 文件中 PlatformSettingsConfig 节点之后的 Audit 结构示例:

"PlatformSettingsConfig:: {
"BasicSettings":( . . .
}
}
"Audit": {
"Disabled": [{
"CategoryKey": "audit.AuditCategory.Collaboration",
"MessageKeys": ["ALL"]
}, {
"CategoryKey": "audit.AuditCategory.Authentication",
"MessageKeys": [
"com.thingworx.things.security.SecurityMonitorThing.LoginSucceeded.Audit",
"com.thingworx.things.security.SecurityMonitorThing.ApplicationKeyFailed.Audit"
]
}
],
"Enabled": [{
"CategoryKey": "audit.AuditCategory.RemoteAccess",
"MessageKeys": ["ALL"]
}, {
"CategoryKey": "audit.AuditCategory.Authentication",
"MessageKeys": [
"thingworx.things.security.SecurityMonitorThing.LoginFailed.Audit" ]
], {
"CategoryKey": "audit.AuditCategory.ThingGroupMemberships",
"MessageKeys": [
"com.thingworx.thinggroups.ThingGroup.AddedThingAsChildMember",
"com.thingworx.thinggroups.ThingGroup.DeletedThingAsChildMember",
"com.thingworx.thinggroups.ThingGroup.AddedThingGroupAsChildMember",
"com.thingworx.thinggroups.ThingGroup.DeletedThingGroupAsChildMember",
"com.thingworx.thinggroups.ThingGroup.DeletedAllChildMembers"
]
}
]
}
在此示例中,将禁用 COLLABORATION 类别及其事件/消息的 ["ALL"]。对于 AUTHENTICATION 类别,将禁用两个事件/消息 LoginSucceededApplicationKeyFailed。将启用其事件/消息的 REMOTE_ACCESS["ALL"]。对于 AUTHENTICATION 类别,将启用 LoginFailed 事件/消息。对于 THINGGROUPMEMBERSHIPs,将启用所有审计消息。这些消息会单独列出,而不会使用 ["ALL"]。您可能需要选取这种方法来输入审计消息,以便在运行平台实例一段时间后,可以确定是否需要它们全部。
audit.AuditCategory.ThingGroupMemberships 类别会提供有关事物组成员资格更改的审计消息。默认情况下,系统会禁用此类别的审计消息,因为并非所有配置/部署都需要此类审计消息,且系统管理员也不希望承担由这些更改带来的计算和持久化影响。如果您的配置/部署需要事物组成员资格更改的审计消息,则可以启用此类审计消息,如上面的示例所示。可以启用或禁用每个审计消息的设置,而无需启用或禁用其他审计消息。例如,您可能只需审计某些成员资格更改。事物组成员资格的审计消息会列在此帮助中心 ThingWorx 审计消息主题的表 122 表格中。
* 
以下两种消息类型的审计消息始终处于启用状态,且不需要显式启用。当启用或禁用事物组的可见性权限委派功能时,会显示如下审计消息:

com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationEnabled
com.thingworx.thinggroups.ThingGroup.VisibilityPermissionDelegationDisabled
要启用或禁用任何类别和审计消息,可复制上面所示的结构,然后将相应的密钥添加到 "Disabled" 和/或 "Enabled" 组中。有关分步过程,请参阅启用和禁用审计事件。要查找类别和事件消息的相应键,请参阅本帮助中心主题 ThingWorx 审计消息中的表 表 122
这对您有帮助吗?