2010-01-29 12 views
1

Bonjour Im en utilisant SQL Server avec transaction distribuée sur Oracles locaux liés serveurs, comme suit:Script d'une transaction distribuée sur SQL

GO 
BEGIN DISTRIBUTED TRANSACTION; 
    SET XACT_ABORT off; 
    GO 

    SELECT MAX(DEPTNO)+1, 
    FROM [WSF08_CONTA_ORADATA_II]..[SCOTT].DEPT 

    SET XACT_ABORT on; 
    GO 

COMMIT TRANSACTION; 

Alors, quand je lance ce script je reçois la suit des erreurs et gel SQL Server , arrête et déconnecte moi.

Msg 7399, niveau 16, état 1, ligne 3
Le fournisseur OLE DB "OraOLEDB.Oracle" pour le serveur lié "WSF08_CONTA_ORADATA_II" a signalé une erreur. Le fournisseur a signalé une défaillance catastrophique inattendue.
Msg 7303, Niveau 16, État 1, Ligne 3 Impossible d'initialiser l'objet de source de données du fournisseur OLE DB "OraOLEDB.Oracle" pour le serveur lié "WSF08_CONTA_ORADATA_II".

Je fais quelque chose de mal? PD: Je peux faire CRUDS sur l'Oracle via SSMS sans l'expression "BEGIN DISTRIBUTED TRANSACTION;" sur la requête .. POURQUOI? .. Im en utilisant SQL Server 2000 comme FrontSide Server et Oracle 10g sur BackEnd Server, Quand J'utilisais 9i Je n'ai jamais eu de problèmes comme celui-ci

+0

oui, je peux faire SELECT et insérer sans out "BEGIN DISTRIBUTED TRANSACTION;" option –

Répondre

2

Pour inscrire SQL Server et Oracle dans une transaction distribuée, MSDTC doit activer les transactions XA. Voir Supporting XA Transactions:

Lorsque le DTC agit en tant que gestionnaire de transactions compatible XA- , Oracle, IBM DB/2, Sybase, Informix, et d'autres gestionnaires de ressources conformes XA- peut participer à des transactions les contrôles DTC .

Questions connexes