Distribuzione dei building block tramite Solution Central
In questo scenario, il database e ThingWorx vengono installati nel sistema dell'utente, che distribuisce i building block nella propria istanza di ThingWorx utilizzando Solution Central.
Completare la procedura descritta nelle sezioni seguenti:
Prerequisiti
Prima di distribuire i building block, completare i prerequisiti riportati di seguito.
Esaminare i requisiti di sistema dei building block, incluse le versioni di ThingWorx compatibili. Per ulteriori informazioni, vedere Requisiti di sistema.
Esaminare i requisiti di sistema di ThingWorx per una versione compatibile di ThingWorx. Per ulteriori informazioni, vedere Requisiti di sistema in ThingWorx Help Center.
Installare una versione compatibile di ThingWorx. Per ulteriori informazioni, vedere Installazione di ThingWorx.
Configurare ThingWorx per attivare l'importazione delle estensioni. Per ulteriori informazioni, vedere Importazione di estensioni in ThingWorx Help Center.
Accertarsi che il fuso orario del server ThingWorx sia impostato su UTC. Per ulteriori informazioni, vedere Installare Java, Apache Tomcat e ThingWorx in ThingWorx Help Center.
Applicare la licenza. Per ulteriori informazioni, vedere Licenze per ThingWorx Platform in ThingWorx Help Center.
Ottenere l'accesso a Solution Central. Oltre a essere utilizzato per la distribuzione dei building block, Solution Central è lo strumento consigliato per spostare la distribuzione e le personalizzazioni tra gli ambienti ThingWorx, ad esempio da un ambiente di test a un ambiente di produzione. Per ulteriori informazioni, vedere ThingWorx Solution Central Help Center.
Se si installa il database in Linux, installare lo strumento sqlcmd.
Installare Microsoft SQL Server Management Studio. Per ulteriori informazioni, vedere https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15.
Aggiornamento dell'impostazione di timeout dello script
Per aggiornare l'impostazione di timeout dello script, un amministratore di ThingWorx deve attenersi alla procedura descritta di seguito.
1. Sul server ThingWorx, passare alla cartella ThingWorxPlatform.
2. Aprire il file platform-settings.json in un editor di testo.
3. Individuare e aggiornare l'impostazione ScriptTimeout a 1200.
4. Salvare e chiudere il file platform-settings.json.
5. Riavviare il server ThingWorx.
* 
Se il log script contiene un messaggio simile al seguente, ripetere i passi precedenti per aumentare ulteriormente l'impostazione di ScriptTimeout:
[message: Execution of Script terminated after : 1200 seconds. Timeout configured for 1200 seconds.]
Per ulteriori informazioni, vedere Dettagli di configurazione di platform-settings.json in ThingWorx Help Center.
Aggiornare le impostazioni del timeout di sessione
Per default, il timeout delle sessioni utente inattive è 30 minuti.
Per modificare l'impostazione di timeout della sessione, un amministratore di ThingWorx deve attenersi alla procedura descritta di seguito.
1. In ThingWorx, passare a Sistemi > Sottosistemi.
2. Aprire UserManagementSubsystem in modalità di modifica.
3. In Configurazione, modificare l'impostazione Timeout sessioni inattive (min).
4. Fare clic su Salva.
5. Riavviare il server ThingWorx.
Installare il driver JDBC per MS SQL
Se l'istanza di ThingWorx è configurata con PostgreSQL come provider di persistenza, attenersi alla procedura riportata di seguito per installare il driver JDBC per MS SQL. Se l'istanza di ThingWorx è configurata con MS SQL come provider di persistenza, passare alla sezione successiva.
1. Scaricare la versione compatibile con JRE11 di Microsoft JDBC Driver 7.4.1 for SQL Server dal seguente link: 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. Copiare il file JAR JDBC nella directory lib di installazione di Tomcat (<HOME_TOMCAT>/lib).
3. Riavviare il server Tomcat per caricare il driver JDBC in modo da renderlo disponibile per ThingWorx.
Creare il database dei building block e l'utente del database
Attenersi alla procedura descritta di seguito.
1. Creare l'accesso e la password dell'utente del database dei building block nel database master. Attenersi alle indicazioni sulla complessità della password per il database.
Per Windows, utilizzando il comando Transact-SQL nell'editor di query di Microsoft SQL Server Management Studio:
CREATE LOGIN <bbadmin> WITH PASSWORD = '<password>';
Nel comando precedente, sostituire <bbadmin> e <password> con l'accesso e la password dell'utente del database dei building block.
In ambiente Linux:
1. Aprire il prompt dei comandi nel client Linux.
2. Utilizzare i seguenti comandi per creare l'accesso su 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
Nei comandi precedenti, sostituire <database-server-name> con il nome del server di database, <sql-administrator-username> e <sql-administrator-password> con il nome utente e la password di amministratore SQL, <bbadmin> e <bbadmin-password> con l'accesso e la password dell'utente del database dei building block.
2. Creare il database di Microsoft SQL Server (MSSQL) che sarà utilizzato dai building block.
Per Windows, utilizzando i comandi Transact-SQL nell'editor di query di Microsoft SQL Server Management Studio:
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;
Nei comandi precedenti, sostituire <bbdb> con il nome del database.
In ambiente Linux:
1. Aprire il prompt dei comandi nel client Linux.
2. Utilizzare i seguenti comandi per creare il database SQL Server, sostituendo le variabili con il nome del server di database e il nome utente e la password di amministratore 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"
Nel comando precedente, sostituire <database-server-name> con il nome del server di database, <sql-administrator-username> e <sql-administrator-password> con il nome utente e la password di amministratore SQL e <bbdb> con il nome del database.
3. Creare un utente del database per l'accesso creato al passo 1. Utilizzare lo stesso nome per l'utente del database utilizzato per l'accesso.
Per Windows, utilizzando il comando Transact-SQL nell'editor di query di SQL Server Management Studio aperto per il database creato al passo 2:
CREATE USER <bbadmin> FOR LOGIN <bbadmin>;
ALTER ROLE [db_owner] ADD MEMBER <bbadmin>;
Nel comando precedente, sostituire <bbadmin> con il nome per l'accesso creato al passo 1.
In ambiente Linux:
1. Aprire il prompt dei comandi nel client Linux.
2. Utilizzare i seguenti comandi per creare un utente del database per il database dei building block, sostituendo le variabili con il nome del server di database e il nome utente e la password di amministratore 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>"
Nei comandi precedenti, sostituire <database-server-name> con il nome del server di database, <sql-administrator-username> e <sql-administrator-password> con il nome utente e la password di amministratore SQL, <bbdb> con il nome del database e <bbadmin> con il nome per l'accesso creato al passo 1.
Distribuire i building block tramite Solution Central
* 
Se si distribuiscono building block in un sistema ThingWorx HA, è consigliabile ridurre il cluster a una singola istanza, installare le estensioni e quindi ampliare di nuovo il cluster. In tal modo le prestazioni miglioreranno e si eviteranno eventuali problemi di coerenza in quanto le nuove estensioni saranno caricate da ogni server all'avvio. Per ulteriori informazioni, vedere Gestione delle estensioni di ThingWorx in ThingWorx a disponibilità elevata in ThingWorx Help Center.
Per distribuire i building block nella propria istanza di ThingWorx tramite Solution Central, un amministratore di ThingWorx deve attenersi alla procedura descritta di seguito.
1. Accertarsi che la licenza sia installata in ThingWorx Composer. Per ulteriori informazioni, vedere questo articolo del supporto tecnico nella knowledge base di PTC.
2. Impostare Solution Central. Per ulteriori informazioni, vedere Getting Started with Using Solution Central in Solution Central Help Center.
3. Registrare l'istanza di ThingWorx in Solution Central. Per ulteriori informazioni, vedere Registering Your ThingWorx Instance in Solution Central Help Center.
4. In ThingWorx Composer, passare a Gestione > Solution Central > Soluzioni PTC.
5. Selezionare la casella di controllo per i building block da distribuire. Sono disponibili i seguenti insiemi di building block:
Building block di produzione
6. Fare clic su Distribuisci con un clic. Viene visualizzata una finestra in cui sono elencate tutte le estensioni da distribuire.
7. Fare clic su Distribuisci tutto.
Le estensioni vengono scaricate e installate. L'operazione può richiedere alcuni minuti. Viene inviata una notifica al termine del processo.
Per ulteriori informazioni, vedere ThingWorx Solution Central Help Center.
Eseguire il servizio InitializeSolution
Eseguire il servizio InitializeSolution per configurare l'oggetto database per la connessione al database dei building block, creare le tabelle di database e registrare gli oggetti manager per i building block.
Per eseguire il servizio, un amministratore di ThingWorx deve attenersi alla procedura descritta di seguito.
1. In ThingWorx Composer, passare all'oggetto PTC.Base.Manager.
2. Ottenere i parametri di configurazione.
a. In Servizi, individuare ed eseguire il servizio GetSolutionDeploymentConfigurationParameters. L'output del servizio è un JSON contenente i parametri di configurazione necessari per il servizio InitializeSolution, basato dinamicamente sull'insieme di building block presenti. Il JSON di output del servizio è simile al seguente:
{
"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. Copiare il JSON restituito nell'output del servizio e incollarlo in un editor di testo.
c. Modificare il JSON, sostituendo il contenuto tra le parentesi graffe per ciascun parametro di configurazione con il valore specifico del sito.
databaseUser - Nome di accesso dell'utente del database con diritti di amministrazione del sistema.
twxAdminUserName - Nome dell'utente amministratore di ThingWorx.
twxAdminPassword - Password per l'utente amministratore di ThingWorx.
databasePassword - Password di accesso dell'utente del database con diritti di amministrazione del sistema.
databaseJDBCString - Stringa di connessione JDBC per il database dei building block.
twxURL - URL dell'istanza di ThingWorx.
databaseThing - Oggetto database di default (PTC.DBConnection.MSSQLDatabase).
Il seguente è un esempio di JSON modificato:
{
"databaseUser": "<bbadmin>",
"twxAdminUserName": "Administrator",
"twxAdminPassword": "<twxadminpassword>",
"databasePassword": "<password>",
"databaseJDBCString": "jdbc:sqlserver://<databaseHost>:<databasePort>;databaseName=<bbdatabaseName>",
"twxURL": "http://<host>:<port>/Thingworx",
"databaseThing": "PTC.DBConnection.MSSQLDatabase"
}
Il seguente è un esempio di JSON modificato con valori effettivi:
{
"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. In Servizi, individuare ed eseguire il servizio InitializeSolution utilizzando il JSON modificato al passo 2.c come parametro di input deploymentConfig per il servizio.
Al termine del servizio, l'output visualizza una infotable che elenca i building block distribuiti e il relativo stato di configurazione: Configured, Not Configured o Error. Se sono presenti building block in stato Error o Not Configured, completare i passi di risoluzione dei problemi riportati di seguito.
a. Accertarsi che le credenziali del database specificate nel JSON siano valide, quindi eseguire il servizio InitializeSolution.
b. Se sono ancora presenti building block in stato Error o Not Configured nell'output del servizio, esaminare i log degli errori di script e applicazione ThingWorx e risolvere gli eventuali errori trovati. Eseguire quindi il servizio InitializeSolution.
c. Se sono ancora presenti building block in stato Error o Not Configured nell'output del servizio, aggiornare il JSON in modo da includere quanto segue ed eseguire il servizio InitializeSolution:
"overrideComponentDeploymentState": true
Eseguire il servizio UpdateDBSchema
Eseguire il servizio UpdateDBSchema per applicare i vincoli necessari alle tabelle di database.
Per eseguire il servizio, un amministratore di ThingWorx deve attenersi alla procedura descritta di seguito.
1. In ThingWorx Composer, passare all'oggetto PTC.DBConnection.Manager.
2. In Servizi, individuare ed eseguire il servizio UpdateDBSchema.
Al termine del servizio, nel riquadro di output del servizio viene visualizzata una infotable contenente gli aggiornamenti del database.
È stato utile?