2009-04-02 3 views
0

나는 AS400의 모든 것을 삽입/업데이트하는 과정을 내 .net에서 호출하고 몇 가지 SQL2005 테이블을 업데이트해야하는 문제가있다. db는 앞으로 나아갑니다. 내가 사용중인 드라이버에는 분산 트랜잭션이 없으므로 DB2 용 IBM iSeries 드라이버를 사용하여 분산 트랜잭션에 참여할 COM +/.NET 구성 요소를 작성할 수 있는지 궁금합니다. Pls는 저에게 아무거나가 이것 같이 무엇이든을하기 전에 또는 어떤 포인터든지 중대하게 평가 될 것이라는 점을 알면 저에게 알려줍니다..NET에서 DB2로 분산 트랜잭션

답변

5

어떤 드라이버를 사용하십니까?

IBM의 DB2 Connect는 Windows DTC가 관리하는 분산 트랜잭션을 지원합니다.

Microsoft 호스트 통합 서버에 패키지 된 Microsoft의 DB2 드라이버도 트랜잭션을 수행합니다.

나는 당신에게서 두 가지 다른 것을 듣고 있습니다. SQL과 DB2에 걸친 트랜잭션을 수행하려고합니다. 또한 분산 트랜잭션에 참여하는 구성 요소를 빌드하려고합니다. 이들은 함께 할 수 있지만 전자는 후자를 요구하지 않습니다.

TransactionOptions options = new TransactionOptions(); 
    options.IsolationLevel = IsolationLevel.Serializable; 
    options.Timeout = TransactionManager.DefaultTimeout; 
    using(var scope = new TransactionScope(TransactionScopeOption.Required, 
          options, 
          EnterpriseServicesInteropOption.Full)) 
    { 
     TransactionalWorkinDb2(); 
     TransactionalWorkinSql(); 
     scope.Complete(); 
    } 

이 결과는 DB2와 SQL에 걸쳐 분산 트랜잭션 수 있지만 그것은에 참여하는 구성 요소가 아닙니다 : .NET 2.0에서 System.Transactions를 클래스를 사용

, 당신은이 작업을 수행 할 수 있습니다 분산 트랜잭션, 내가 무슨 뜻인지 안다면.

또 다른 대안은 을 수행하는 구성 요소를 정의하고 해당 구성 요소를 트랜잭션으로 표시하는 EnterpriseServices/COM + 모델을 사용하는 것입니다. 이것도 작동하지만 .NET에서 분산 트랜잭션을 수행 할 필요는 없습니다.

관련 문제