> 어디선가 이미 Transaction 을 열고 실행중인 것 아닌가요. 하나의 transaction 내에서 다중 transacti
> on 을 지원하지 못합니다. (현재 PostgreSQL 의 제한점입니다)
> 앞에서 부터 차근차근 실행해 보시기 바랍니다.
> 만약 새로운 transaction 을 무조건 시작해야 한다면 BEGIN 앞에 COMMIT 를 넣어 주시기 바랍니다.
>
> > c 소스중에 db 연관부분 입니다.
> >
> > #include <ecpglib.h>
> > #include <string.h>
> > #include <stdlib.h>
> >
> > EXEC SQL INCLUDE sqlca;
> > EXEC SQL define NAME_SIZE 20;
> >
> > EXEC SQL BEGIN DECLARE SECTION;
> > varchar name[NAME_SIZE+1];
> > EXEC SQL END DECLARE SECTION;
> >
> > EXEC SQL CONNECT TO 'test';
> > EXEC SQL BEGIN TRANSACTION;
> > EXEC SQL INSERT INTO KO(name) VALUES(:name);
> > EXEC SQL COMMIT;
> > EXEC SQL DISCONNECT;
> >
> > 위 구문을 for 문으로 돌려서 insert를 시켰더니 다음과 같은 내용이 출력됩니다.
> > 어떤 이유에서 인지 답변좀 해주세요..
> >
> > NOTICE: BEGIN: already a transaction in progress
> >
그런가요! 제가 지금 두개의 서버 프로세스에서 1초에 3번정도 DB insert 작업을
하거든요. 앞단에 COMMIT;을 넣어도 같은 메시지가 나오네요.. ㅠ_ㅠ
해결 방법이 없는건가요. 아주 중요한 문제거든요.. 근데 이상하게도 DB 에는 내용이 들어가 있으니 허허..해결방법이라던지 아님 다른 조언좀 해쥐세요..
|