8.4로 업그레이드후 cci_execute 실패 에러

by 천상하늘 posted Sep 23, 2011

안녕하세요 이번에 큐브리드를 8.2에서 8.4로 업그레이드를 했습니다.

마이그레이션과 다른 부분은 다 잘 작동을 하는데.

 

쿼리를 cci로 실행을 할때.

 

cci_execute에러가.

 query(update table_a set column_b = 0 where column_c = 'test' and column_d <> 0), Error(-72), ErrorMsg(Your transaction (index 8, test@myskysy|29822) has been unilaterally aborted by the system.

라고 발생합니다.

 

8.2에서는 같은 코드로 발생을 하지 않았는데 8.4에서 발생을 했고.

cubrid.conf 파일의 설정 내용은 똑같이 맞췄습니다.

 

코드상에서.

int iRes = cci_execute(iRequestHandle, 0, 0, &error);

if(iRes < 0)
    return false;

 

의 코드를 아래와 같이 수정해서 cci_execute를 다시 한번 실행해볼경우는 정상적으로 처리가 됩니다.

 

int iRes = cci_execute(iRequestHandle, 0, 0, &error);

if(iRes < 0)
{

    iRes = cci_execute(iRequestHandle, 0, 0, &error);
    if(iRes < 0)

         return false;

}

 

unilaterally관련 에러가 deadlock관련이 있다고 글이 찾아지는데 혹시 cci로 쿼리를 할때 lock이 걸린경우.

일정시간기다려본 다음에 fail을 내거나 하는 옵션이 있는지 궁금합니다.


Articles