Hi!
I am struggling a lot with OOTB Docker images which PTC provides for Thingworx 8.4 & PostgreSQL setup.
What I am trying to do is to run Docker containers on my Ubuntu 18.04 Virtual Machine.
Everything seems to be installed correctly, but it fails to start with this error log:
platform_1 | 2019-08-14 07:29:28.639+0000 [L: INFO] [O: c.t.p.p.PostgresDatasource] [I: ] [U: SuperUser] [S: ] [T: main] Reading configuration from configTableCol platform_1 | 2019-08-14 07:29:28.997+0000 [L: INFO] [O: c.t.s.ThingWorxServer] [I: ] [U: SuperUser] [S: ] [T: main] Managers...INITIALIZED platform_1 | 2019-08-14 07:29:29.000+0000 [L: INFO] [O: c.t.s.ThingWorxServer] [I: ] [U: SuperUser] [S: ] [T: main] Database initialization started... postgresql_1 | ERROR: relation "system_version" does not exist at character 128 postgresql_1 | STATEMENT: SELECT server_name, server_code, model_schema_version, data_schema_version, major_version, minor_version, revision, build FROM system_version order by pid desc limit 1 postgresql_1 | ERROR: current transaction is aborted, commands ignored until end of transaction block postgresql_1 | STATEMENT: platform_1 | 2019-08-14 07:29:29.276+0000 [L: ERROR] [O: c.t.p.p.PostgresModelExceptionTranslator] [I: ] [U: SuperUser] [S: ] [T: main] [message: ERROR: relation "system_version" does not exist platform_1 | Position: 128]
docker-compose-postgres.yml:
version: '2.2'
services:
postgresql:
image: thingworx/postgres-db:latest
ports:
- "5432"
healthcheck:
test: pg_isready -U postgres
interval: 15s
environment:
- "TWX_DATABASE_USERNAME=twadmin"
- "TWX_DATABASE_SCHEMA=thingworx"
- "TWX_DATABASE_PASSWORD=password"
#volumes:
#- "/home/devadmin/twx/ThingworxPostgresqlStorage:/home/ThingworxPostgresqlStorage"
#- "/home/devadmin/twx/postgres-data:/var/lib/postgresql/data"
platform:
image: thingworx/platform-postgres:latest
healthcheck:
test: curl -s -w '%{http_code}' -U 'bad:creds' localhost:8080/Thingworx/Subsystems/PlatformSubsystem | grep -w 401
interval: 15s
depends_on:
postgresql:
condition: service_healthy
ports:
- "8080:8080"
- "8443:8443"
environment:
- "INITIAL_HEAP=2"
- "MAX_HEAP=4"
- "DATABASE_HOST=postgresql"
- "DATABASE_PORT=5432"
# NOTE: Set TWX_DATABASE_USERNAME, TWX_DATABASE_PASSWORD TWX_DATABASE_SCHEMA for
# the thingworx database setup that will either be created by the docker image,
# or connected to if it already exists.
- "TWX_DATABASE_USERNAME=twadmin"
- "TWX_DATABASE_SCHEMA=thingworx"
- "TWX_DATABASE_PASSWORD=password"
# NOTE: The following must be set for the Platform to start. This will be
# the initial Administrator password.
- "THINGWORX_INITIAL_ADMIN_PASSWORD=Administrator123!@#"
#volumes:
#- "/home/devadmin/twx/ThingworxPlatform:/ThingworxPlatform"
#- "/home/devadmin/twx/ThingworxStorage:/ThingworxStorage"
#- "/home/devadmin/twx/ThingworxBackupStorage:/ThingworxBackupStorage"
#- "/home/devadmin/twx/tomcat-logs:/opt/apache-tomcat/logs"
Build.env file:
# Required
JAVA_VERSION=8u201
TOMCAT_VERSION=9.0.17
PLATFORM_VERSION=8.4.4
TEMPLATE_PROCESSOR_VERSION=12.1.0.12
PLATFORM_SETTINGS_FILE=platform-settings.json
# If you wish to build the test DB images for dev/testing for PostgreSQL and
# MSSQL set BUILD_TEST_DBS to true. Otherwise, set to false to disable.
BUILD_TEST_DBS=true
# H2 Builds Only
PLATFORM_H2_VERSION=${PLATFORM_VERSION}
PLATFORM_H2_ARCHIVE=Thingworx-Platform-H2-${PLATFORM_H2_VERSION}.zip
# PostgreSQL Builds Only
PLATFORM_POSTGRES_VERSION=${PLATFORM_VERSION}
PLATFORM_POSTGRES_ARCHIVE=Thingworx-Platform-Postgres-${PLATFORM_POSTGRES_VERSION}.zip
# MSSQL Builds Only - Required Credentials for Build Process
# The Following must be set for MSSQL builds due to how the test DB is created,
# if you have enabled building the test DBs with BUILD_TEST_DBS. The settings
# chosen here must match the variables passed into the ThingWorx Platform on startup
MSSQL_DB_TWX_DATABASE_PASSWORD=
MSSQL_DB_TWX_DATABASE_USERNAME=
MSSQL_DB_TWX_DATABASE_SCHEMA=
MSSQL_DB_SA_PASSWORD=
# MSSQL Builds Only
PLATFORM_MSSQL_VERSION=${PLATFORM_VERSION}
PLATFORM_MSSQL_ARCHIVE=Thingworx-Platform-Mssql-${PLATFORM_MSSQL_VERSION}.zip
SQLDRIVER_VERSION=6.0.8112.200
# AzureSQL Builds Only
PLATFORM_AZURESQL_VERSION=${PLATFORM_VERSION}
PLATFORM_AZURESQL_ARCHIVE=Thingworx-Platform-Azuresql-${PLATFORM_AZURESQL_VERSION}.zip
AZURESQL_SQLDRIVER_VERSION=6.0.8112.200
# Optional to configure. If the Files do not match the pattern, they may need
# to be manually modified.
TOMCAT_ARCHIVE=tomcat-${TOMCAT_VERSION}.tar.gz
JAVA_ARCHIVE=jdk-${JAVA_VERSION}-linux-x64.tar.gz
SQLDRIVER_ARCHIVE=sqljdbc_${SQLDRIVER_VERSION}_enu.tar.gz
AZURESQL_SQLDRIVER_ARCHIVE=sqljdbc_${AZURESQL_SQLDRIVER_VERSION}_enu.tar.gz
TEMPLATE_PROCESSOR_ARCHIVE=template-processor-${TEMPLATE_PROCESSOR_VERSION}-application.tar.gz
platform-settings.json file:
{
"PlatformSettingsConfig": {
"AdministratorUserSettings": {
"InitialPassword": "trUf6yuz2?_Gub"
},
"ExtensionPackageImportPolicy":
{
"importEnabled": true,
"allowJarResources": true,
"allowJavascriptResources": true,
"allowCSSResources": true,
"allowJSONResources": true,
"allowWebAppResources": true,
"allowEntities": true,
"allowExtensibleEntities": true
},
"ContentTypeSettings": {
"supportedMediaEntityContentTypes" : ["image/svg+xml", "image/png", "image/gif", "image/bmp", "image/jpeg", "application/pdf", "image/vnd.microsoft.icon"]
}
},
"PersistenceProviderPackageConfigs": {
"PostgresPersistenceProviderPackage": {
"ConnectionInformation": {
"acquireIncrement": 5,
"acquireRetryAttempts": 3,
"acquireRetryDelay": 10000,
"checkoutTimeout": 1000000,
"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
},
"DataTableProcessorSettings": {
"maximumBlockSize": 2500,
"maximumQueueSize": 250000,
"maximumWaitTime": 10000,
"numberOfProcessingThreads": 1,
"scanRate": 5,
"sizeThreshold": 1
},
"ValueStreamProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 10000,
"maximumQueueSize": 500000,
"numberOfProcessingThreads": 5,
"scanRate": 5,
"sizeThreshold": 1000
},
"PersistentPropertyProcessorSettings": {
"maximumBlockSize": 2500,
"maximumWaitTime": 1000,
"maximumQueueSize": 100000,
"numberOfProcessingThreads": 20,
"scanRate": 25,
"sizeThreshold": 1000
}
}
}
}
Solved! Go to Solution.
Actually I found a solution.
According to the doc those variables:
- "TWX_DATABASE_USERNAME=twadmin"
- "TWX_DATABASE_SCHEMA=thingworx
NEED TO BE THE SAME. I changed it for thingworx everywhere and it is working like a charm.
I have no idea why there are 2 variables exposed, but only one value can be assign to both in one time.
Nevertheless that resolved my issue.
Actually I found a solution.
According to the doc those variables:
- "TWX_DATABASE_USERNAME=twadmin"
- "TWX_DATABASE_SCHEMA=thingworx
NEED TO BE THE SAME. I changed it for thingworx everywhere and it is working like a charm.
I have no idea why there are 2 variables exposed, but only one value can be assign to both in one time.
Nevertheless that resolved my issue.
