리파지토리 서버의 DBMS를 MSSQL Server로 설치 후 ER/Studio에서 리파지토리로 모델을 올릴 때

간혹 아래와 같이 "##tmp[테이블명] table could not initialize bulk insert" 문제가 발생할 수 있습니다.

 

 

10:26:45.031  - Start Check In Diagram process...

10:26:45.031  - Begin DM1 To SRTF Translation

10:26:45.062  - Finish DM1 To SRTF Translation

10:26:45.062  - GET LATEST request sent to Repository. Waiting for reply ... 

10:26:45.764  - An error was encountered during the operation. See detail(s) below.

 

Detail(s) : 

Error: The ##tmp[테이블명] table could not initialize bulk insert.

 

ErrorCode: 208 Severity: 2 LineNumber: 0 ErrorPosition: 0 Description: [Microsoft][ODBC SQL Server Driver][SQL Server]개체 이름 '##tmpGAttribute5'() 잘못되었습니다.(42S02) 

 

00:00:00.764  - Total time for the whole process.

 

문제의 원인:

리파지토리로 데이터모델을 올릴 때, 프로시저를 이용하여 temp 테이블이 생성됩니다.

프로시저에서 사용하는 레지스트리 정보와 리파지토리 DB에서 사용하는 레지스티리 정보가 일치하지 않아 생기는 문제입니다.

 

해결 방법:

1. 리파지토리 서비스 3개(Event, Database, Communication)를 모두 중지합니다.

2. 리파지토리 DB에서 'create_temp_tables' 저장 프로시저를 찾습니다.

3. 해당 프로시저에서 사용하고 있는 테이블 명에 포함되어 있는 숫자를 확인합니다.

4. 위에서 확인한 숫자와 리파지토리 서버PC의 레지스트리의 TmpTableSuffix 숫자를 비교합니다.

(regedit에서 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Embarcadero\Repository\Database TmpTableSuffix)

5. 두 개의 숫자가 다르면, TmpTableSuffix의 값을 프로시저에서 사용하는 값(숫자)로 변경합니다.

6. 세 개의 리파지토리 서비스를 재 시작합니다.