본 게시판은 제품관련 노하우 공유 및 자유로운 질의응답을 할 수 있는 게시판입니다.
만약 제품 구매 고객께서 제품설치, 등록, 제품 오류 등의 문의사항이 있으신 경우,
좌측 메뉴에서 설치/등록/버그 Q&A를 이용하시기 바랍니다.
ER/Studio 데이터모델을 리파지토리에 올릴 때 "개체 이름 '##tmp______'이(가) 잘못되었습니다' 에러가 발생합니다.
2015.09.04 13:23
본 게시판 사용시 당부 사항
* 이 게시판은 누구나 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
ER/Studio 리파지토리 서버의 DBMS를 MSSQL Server로 설치했습니다.
그리고 ER/Studio DA를 통해 데이터모델을 작성 후 모델을 리파지토리에 올리려고 합니다.
올리는 도중에 아래의 내용과 같이 "Error: The ##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.
|
ER/Studio DA에서 모델을 리파지토리에 올릴 때(check-in), 프로시저를 사용하여 temp 테이블을 생성합니다.
테이블을 생성 시 사용하는 레지스트리 정보와 리파지토리 데이터베이스에서 사용하는 레지스트리 정보가 일치하지 않아서 생기는 문제입니다.
해결 방법으로는:
1. 리파지토리와 관련된 세 개의 서비스(event, database, communication)를 모두 중지합니다.
2. 리파지토리 데이터베이스의 저장 프로시저 중 'create_temp_tables'라는 프로시저를 찾습니다.
3. 해당 프로시저에서 사용하는 테이블들의 이름 맨 끝에 사용되고 있는 숫자를 확인합니다.
4. 위에서 확인한 숫자와 리파지토리 서버 pc의 레지스트리의 TmpTableSuffix 숫자를 비교합니다.
(regedit에서 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Embarcadero\Repository\Database의 TmpTableSuffix)
5. 두 개의 숫자가 다르다면, TmpTableSuffix 숫자를 프로시저에서 사용하는 숫자로 변경합니다.
6. 세 개의 리파지토리 서비스를 재 시작합니다.