는 다음 코드를 고려해보십시오트랜잭션 NTFS Process.Start를에 (TXF)는()
try
{
using(TransactionScope)
{
Process.Start("SQLInstaller.EXE");
throw new Exception();
Commit();
}
}
catch(Exception ex)
{
//Do something here
}
은 SQLInstaller.exe에 의한 변경은이 시나리오에서 롤백 할 것인가? 좀 더 구체적으로, Process.Start()를 통해 시작된 외부 프로세스의 변경 사항은 TxF에 의해 처리됩니까?
감사합니다.
'Using (TransactionScope) '란 무엇입니까? –
@Darin : TxF에서 사용중인 실제 Transaction 개체의 가상 코드입니다. http://msdn.microsoft.com/en-us/magazine/cc163388.aspx#S6 – Ian
@Darin : System.Transactions 네임 스페이스의 클래스입니다. TransactionScope가 활성화되어있는 동안 트랜잭션을 지원하는 Microsoft에서 제공하는 객체는 자동으로 "현재"범위 내 트랜잭션에 참여합니다 (필요한 경우 분산 트랜잭션으로 승격됩니다). 일부 타사 구성 요소도이를 지원할 것이며 자신이 선택한 경우 자동으로 개체를 등록 할 수 있습니다. 'TransactionScope'을 처리 할 때'Complete()'메소드가 호출되지 않으면 모든 참여 트랜잭션이 자동으로 롤백됩니다. – Toby