빌딩 블록 시작하기 > 빌딩 블록 배포 > 고객 소유 시스템 또는 클라우드에 빌딩 블록 배포 > PTC 소프트웨어 다운로드 페이지를 사용하여 빌딩 블록 배포
PTC 소프트웨어 다운로드 페이지를 사용하여 빌딩 블록 배포
이 시나리오에서는 데이터베이스와 ThingWorx를 시스템에 설치하고 PTC 소프트웨어 다운로드 페이지에서 빌딩 블록을 다운로드한 다음 확장 패키지를 ThingWorx로 가져와서 빌딩 블록을 ThingWorx 인스턴스에 배포합니다.
다음 단원의 단계를 완료하십시오.
사전 요구 사항
빌딩 블록을 배포하기 전에 다음 사전 요구 사항을 완료하십시오.
호환되는 ThingWorx 버전을 포함하여 빌딩 블록 시스템 요구사항을 검토합니다. 자세한 내용은 시스템 요구사항를 참조하십시오.
ThingWorx의 호환되는 버전에 대한 ThingWorx 시스템 요구사항을 검토합니다. 자세한 내용은 ThingWorx 도움말 센터의 시스템 요구사항을 참조하십시오.
호환되는 ThingWorx 버전을 설치합니다. 자세한 내용은 ThingWorx 설치를 참조하십시오.
라이선스를 적용합니다. 자세한 내용은 ThingWorx 도움말 센터의 ThingWorx Platform용 라이선스를 참조하십시오.
ThingWorx에서 확장 가져오기를 활성화하도록 구성합니다. 자세한 내용은 ThingWorx 도움말 센터의 확장 프로그램 가져오기를 참조하십시오.
ThingWorx 서버 표준 시간대가 UTC로 설정되어 있는지 확인합니다. 자세한 정보는 ThingWorx 도움말 센터의 Java, Apache Tomcat 및 ThingWorx 설치를 참조하십시오.
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. BasicSettings 섹션에서 ScriptTimeout 설정을 찾아 12000으로 업데이트합니다.
옵션이 아직 없는 경우 다음과 같이 BasicSettings 섹션에 추가합니다. "ScriptTimeout": 12000
4. platform-settings.json 파일을 저장한 후 닫습니다.
5. ThingWorx 서버를 다시 시작합니다.
* 
스크립트 로그에 다음과 유사한 메시지가 나타나면 위의 단계를 반복하여 ScriptTimeout 설정을 늘립니다.
[message: Execution of Script terminated after : 12000 seconds. Timeout configured for 12000 seconds.]
자세한 내용은 ThingWorx 도움말 센터의 platform-settings.json 구성 세부 정보를 참조하십시오.
세션 제한 시간 설정 업데이트
기본적으로 유휴 사용자 세션은 30분 후에 시간 초과됩니다. 시스템 요구 사항에 맞게 이 설정을 변경할 수 있습니다.
세션 시간 초과 설정을 변경하려면 ThingWorx 관리자는 다음 단계를 완료해야 합니다.
1. ThingWorx에서 시스템 > 하위 시스템으로 이동합니다.
2. 편집 모드에서 UserManagementSubsystem을 엽니다.
3. 구성 아래에서 유휴 세션 제한 시간(분) 설정을 변경합니다.
4. 저장을 클릭합니다.
5. ThingWorx 서버를 다시 시작합니다.
자세한 정보는 ThingWorx 도움말 센터의 사용자 관리 하위 시스템을 참조하십시오.
MS SQL JDBC 드라이버 설치
ThingWorx 인스턴스가 PostgreSQL을 지속성 공급자로 하여 구성된 경우, MS SQL JDBC 드라이버를 설치하려면 다음 단계를 완료하십시오. ThingWorx 인스턴스가 MS SQL을 지속성 공급자로 하여 구성된 경우, 다음 섹션으로 건너뛰십시오.
1. https://docs.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server-support-matrix?view=sql-server-ver15#sql-version-compatibility 링크에서 Microsoft JDBC Driver 7.4.1 for SQL Server의 JRE11 호환 버전을 다운로드합니다.
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 서버에 로그인을 생성하려면 다음 명령 사용:
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-administrator-username><sql-administrator-password>를 SQL 관리자 사용자 이름 및 암호로 바꾸며, <bbadmin><bbadmin-password>를 빌딩 블록 데이터베이스 사용자의 로그인 및 암호로 바꿉니다.
2. 빌딩 블록에서 사용할 MSSQL(Microsoft SQL Server) 데이터베이스를 작성합니다.
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-administrator-username><sql-administrator-password>를 SQL 관리자 사용자 이름 및 암호로, <bbdb>를 데이터베이스 이름으로 바꿉니다.
3. 1단계에서 생성한 로그인에 대한 데이터베이스 사용자를 생성합니다. 로그인에 사용한 것과 동일한 이름을 데이터베이스 사용자에 사용합니다.
Windows의 경우, 2단계에서 작성한 데이터베이스에 대해 열린 SQL Server Management Studio의 쿼리 편집기에서 Transact-SQL 명령 사용:
CREATE USER <bbadmin> FOR LOGIN <bbadmin>;
ALTER ROLE [db_owner] ADD MEMBER <bbadmin>;
위 명령에서 <bbadmin>을 1단계에서 생성한 로그인 이름으로 바꿉니다.
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-administrator-username><sql-administrator-password>를 SQL 관리자 이름 및 암호로, <bbdb>를 데이터베이스 이름으로, <bbadmin>을 1단계에서 생성한 로그인 이름으로 바꿉니다.
소프트웨어 다운로드 페이지를 사용하여 빌딩 블록 다운로드
다음 단계를 완료하십시오.
1. https://support.ptc.com/appserver/auth/it/esd/index.jsp URL에서 PTC 소프트웨어 다운로드 페이지로 이동합니다.
2. ThingWorx Foundation을 선택합니다.
3. ThingWorx Foundation > Release 9.3 > ThingWorx Manufacturing Common 1.2 > 최근 제조코드 폴더를 확장합니다.
4. MFG-Common-1-2 확장 패키지 ZIP 파일을 다운로드합니다.
빌딩 블록 가져오기
빌딩 블록을 가져오려면 ThingWorx 관리자가 다음 단계를 완료해야 합니다.
1. ThingWorx Composer라이선스가 설치되어 있는지 확인합니다. 자세한 내용은 PTC 기술 자료의 기술 지원 문서를 참조하십시오.
2. ThingWorx Composer에서 가져오기/내보내기 > 가져오기로 이동합니다.
3. 가져오기 창의 가져오기 옵션 목록에서 확장을 선택합니다.
4. 파일 이름에서 찾아보기를 클릭합니다. 이전 섹션에서 다운로드한 확장 패키지 ZIP 파일로 이동하여 선택합니다.
5. 가져오기를 클릭합니다. 가져오기가 완료되면 닫기를 클릭합니다.
6. 가져오기가 완료된 후 관리 > 설치된 확장으로 이동하여 빌딩 블록 확장을 확인합니다.
InitializeSolution 서비스 실행
InitializeSolution 서비스를 실행하여 데이터베이스 사물이 빌딩 블록 데이터베이스에 연결되도록 구성하고 데이터베이스 테이블을 작성하며 빌딩 블록에 대한 관리자 사물을 등록합니다.
서비스를 실행하려면 ThingWorx 관리자는 다음 단계를 완료해야 합니다.
1. ThingWorx Composer에서 PTC.Base.Manager 사물로 이동합니다.
2. 다음 구성 매개 변수를 가져옵니다.
a. 서비스에서 GetSolutionDeploymentConfigurationParameters 서비스를 찾아 실행합니다. 서비스 출력은 존재하는 빌딩 블록 세트에 동적으로 기반하여 InitializeSolution 서비스에 필요한 구성 매개변수를 포함하는 JSON입니다. 서비스 출력 JSON은 다음과 유사합니다.
{
"databaseUser": {
"types": [
"STRING"
],
"description": "Name of the database user used for DPM database Thing",
"optional": false
},
"overrideComponentDeploymentState": {
"types": [
"BOOLEAN"
],
"description": "If true, the current component deployment state is ignored and the DeployComponent service will be rerun.",
"optional": true
},
"databasePassword": {
"types": [
"STRING"
],
"description": "Password of the database user used for DPM database Thing",
"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.SQLThingDatabase)",
"optional": true
}
}
b. 서비스 출력에 반환된 JSON을 복사하고 텍스트 편집기에 붙여넣습니다.
c. JSON을 편집하여 각 구성 매개 변수의 중괄호 사이에 있는 콘텐츠를 사이트에 특정한 값으로 바꿉니다.
databaseUser - 시스템 관리 권한이 있는 데이터베이스 사용자의 로그인 이름입니다.
databasePassword - 시스템 관리 권한이 있는 데이터베이스 사용자의 로그인 암호입니다.
databaseJDBCString - 빌딩 블록 데이터베이스에 대한 JDBC 연결 문자열입니다.
databaseThing - 기본 데이터베이스 사물(PTC.DBConnection.SQLThingDatabase)입니다.
다음은 편집된 JSON의 예입니다.
{
"databaseUser": "<bbadmin>",
"databasePassword": "<password>",
"databaseJDBCString": "jdbc:sqlserver://<databaseHost>:<databasePort>;databaseName=<bbdatabaseName>",
"databaseThing": "PTC.DBConnection.SQLThingDatabase"
}
다음은 실제 값을 사용하여 편집한 JSON의 예입니다.
{
"databaseUser": "BBadmin",
"databasePassword": "945DaTaBase!39525",
"databaseJDBCString": "jdbc:sqlserver://localhost:1433;databaseName=dpmdb",
"databaseThing": "PTC.DBConnection.SQLThingDatabase"
}
3. 서비스에서 InitializeSolution 서비스를 찾아 실행합니다. 이때 2.c단계에서 편집한 JSON을 서비스에 대한 deploymentConfig 입력 매개 변수로 사용합니다.
서비스가 완료되면 배포된 빌딩 블록과 해당 구성 상태(Configured, Not Configured 또는 Error)를 나열하는 인포테이블이 출력에 표시됩니다. 빌딩 블록에 Error 또는 Not Configured 상태가 있는 경우 다음 문제 해결 단계를 완료하십시오.
a. InitializeSolution 서비스를 실행하기 전에 JSON에 지정된 데이터베이스 자격 증명이 유효한지 확인합니다.
b. 서비스 출력에 여전히 Error 또는 Not Configured 상태가 있는 빌딩 블록이 있는 경우 ThingWorx 응용 프로그램 및 스크립트 오류 로그를 검토하고 발견된 모든 오류를 처리합니다. 그런 다음 InitializeSolution 서비스를 실행합니다.
c. 서비스 출력에 여전히 Error 또는 Not Configured 상태가 있는 빌딩 블록이 있는 경우
"overrideComponentDeploymentState": true
를 포함하도록 JSON을 업데이트하고 InitializeSolution 서비스를 실행합니다.
도움이 되셨나요?