안녕하세요 이번에 큐브리드를 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을 내거나 하는 옵션이 있는지 궁금합니다.
안녕하세요.
큐브리드를 사용해 주셔서 감사합니다. 문의하신 내용에 대하여 빠른 시일 내에 확인하여 알려드리도록 노력하겠습니다.