2014-01-14 3 views
0

내가 는 기본적으로 "반복 읽기"를했다 : 나는 하나의 트랜잭션 ::거래!`

거래 소품에 세 개의 삽입 할이 코드를하지만 난 다른 모든 시도했다 수준 (세계적으로, 지역 범위에 대한 세션 범위에) 아직

하지만 항상 세 번째 삽입에 박히 코드 .. 각각 그 사실을 필요에 따라 ::

insert into client(1); 

insert into service (id,clientID) values (1,1); 

insert into relTble (ParentServiceID,ChildServiceID) values (4,1); 

와 코드 그 삽입은 cla 내부에서 일어난다. 새로운 연결이지만 "Pconnect (..)"와의 "sally"연결; 결국 같은 세션에있게 될 것입니다. mysql_error는 다음과 같이 말합니다 :: "잠금 대기 시간 초과, 트랜잭션 재시작 시도". 하지만 서버에서 동일한 쿼리를 시도했을 때 트랜잭션에서 완벽하게 작동했습니다. pconnect에 대해 알고 있으면 잠시 후 새 세션이 열리도록하시기 바랍니다. 또는 .. 제발 말해줘!

답변

0

pconnect는 mysql 연결 풀링을 지원합니다. 따라서 데이터베이스에 둘 이상의 연결이있는 경우 개별 요청이 동일한 연결을 다시 사용한다는 보장은 없습니다. 이것은 시행되어야합니다. 그렇지 않으면 세 가지 다른 트랜잭션이 생깁니다.

+0

어떻게 동일한 연결을 사용하도록 강요합니까?! –