Pergunta

Eu tenho um problema onde, em que tenho a chamada para o DB2 AS400 para chamar uma série de procedimentos insert / update armazenado do meu .net e atualizar algumas tabelas SQL2005 se tudo no db AS400 avança bem. O motorista que estou usando não ter distribuído transações Então eu queria saber se você pode usar qualquer um dos IBMs iSeries Drivers para DB2 para criar uma COM + /. NET componente que iria participar de uma transação distribuída. Pls deixe-me saber se alguém lá fora, tem feito nada como isso antes ou qualquer ponteiros seria muito apreciada.

Foi útil?

Solução

Qual piloto você está usando?

DB2 Connect da IBM suporta operações geridas pelo Windows DTC distribuído.

O driver DB2 da Microsoft, que é embalado em Microsoft Host Integration Server, também faz transações.

Eu estou ouvindo duas coisas diferentes de você. Você quer fazer uma transação que se estende SQL e DB2. e também você quer construir um componente que participa de uma transação distribuída. Estes podem ser feitos juntos, mas o primeiro não exigem o último.

Usando as classes System.Transactions no .NET 2.0, você pode fazer isso:

  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();
  }

O resultado será uma transação distribuída que abrange DB2 e SQL, mas não é um componente que participa de uma transação distribuída, se você ver o que quero dizer.

A outra alternativa é usar os EnterpriseServices / COM + modelo de definição de um componente que faz algo , e marcação esse componente como transacional. Isso funciona também, mas não é obrigado a fazer transações distribuídas em .NET.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top