리파지토리 서버의 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. 세 개의 리파지토리 서비스를 재 시작합니다.