SqlBulkCopy TransactionScopeRequired를 설정하는 WCF Sercive 내에서 사용될 때의 타임 아웃.

c# msmq sqlbulkcopy transactionscope wcf

문제

상황 : TransactionScopeRequired 작업을 사용하는 WCF 서비스. WCF 서비스는 SqlBulkCopy를 사용하여 많은 행을 db에 삽입하는 프로세스를 실행합니다.

TransactionScopeRequired 동작없이 사용하면 SqlBulkCopy는 문제없이 레코드를 삽입하지만이 동작을 true로 설정하면 적은 양의 레코드도 삽입 할 수 없습니다.

추가 정보 - WCF 서비스는 MSMQ 끝점을 사용합니다.

수락 된 답변

알았어. .. 내가 위의 것을 게시했을 때 늦었다. .. :)

추가 분석 (나는이 글을 쓰는 것을 부끄럽게 생각합니다!)이 문제는 Task Processing Library를 사용하는 서비스 구현으로 인한 것입니다. 예를 들어 TransactionScope 내에서 DB 호출을 처리하는 여러 프로세스가있었습니다. 예를 들어,

- 첫 번째 프로세스는 DB에 대한 작업을 수행합니다. 이 작업은 트랜잭션을 트랜잭션 스코프 트랜잭션에 추가하고 db 잠금을 발생시킵니다.

- 두 번째 프로세스가 생성되어 동일한 테이블에 쓰려고 시도합니다. 트랜잭션은 원래 트랜잭션 범위의 일부가 아니므로 수행 할 수 없습니다.

해결책 - 더 똑똑한 거래 관리를 제공하기 위해 일부 재 설계가 요구됩니다!



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.