IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

MSSQL -> MySQL erreur avec trigger (transaction distribuée)


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Python
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Python
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut MSSQL -> MySQL erreur avec trigger (transaction distribuée)
    Bonjour à tous je post ici mon premier message sur ce forum pour solliciter votre aide!

    Alors tout dabord je précise que je suis étudiant et que c'est dans le cadre de mon stage que je rencontre ce problème !

    La configuration :

    Je travail sur une base de donnée assez conséquente qui se trouve sur Microsoft server SQL qui elle même se trouve sur un serveur(virtuel) windows, et une base de donnée créée par moi même en mysql sur un autre serveur(virtuel) sous centOS (distribution redhat linux). La communication entre les deux serveurs se fait via un parefeu nommé fw2 qui sécurise tout les serveurs de l'entreprise et pour des raisons évidentes de sécurité cette communication est limité que dans un sens : le server sql peut interroger récupérer et envoyer des données à la base mysql mais le mysql ne peut en aucun cas communiquer avec le server sql, j'ai juste fait un serveur liée sur microsoft server sql !

    Je pense que j'ai à peu près tout dit sur l'infrastructure.

    Le problème:

    J'ai réussi à copier certaines colonnes d'une table T1 (qui se trouve sur sql server) dans une table T2 sur mysql, j'arrive aussi à faire fonctionne des INSERT OPENQUERY mais une fois que je met cela dans un TRIGGER je me retrouve avec se message d'erreur:

    L'opération n'a pas pu être effectuée, car le fournisseur OLE DB "MSDASQL" du serveur lié "BASE MYSQL" n'a pas réussi à démarrer une transaction distribuée.
    J'ai donc fait des recherches sur le sujet pendant 2 jours et essayé toutes les solutions possibles rien n'y fait toujours le même message..

    -> J'ai essayé toutes les manipulations possible avec msdtc
    Donc Je ne vois pas comment faire..

    On ma parlé de procédures stockées mais je n'y connais absolument rien (faut savoir que j'ai revu tout sur le sql de base en arrivant pour mon stage il y a 2 semaines)

    Si vous pouviez m'aider je vous en serez reconnaissant et si vous avez besoin d'infos complémentaires pas de soucis

    au passage mon TRIGGER:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TRIGGER trigg_testt 
    ON dbo.CommandeTransportb
    AFTER INSERT
    AS
    BEGIN
    INSERT OPENQUERY (EXTRANETSIB, 'SELECT var_test FROM test.test')
    VALUES (4)
    END
    cordialement clymB,

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    pour msdtc il faut que les pc répondent à leur nom windows, un ping permet de le tester
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre régulier
    Homme Profil pro
    Python
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Python
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Salut merci de t'intéresser à mon cas !

    Je ping le nom directement? (j'ai jamais fait donc si tu pouvais m'éclairer )

    merci !

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    si la machine s'appelle monserveur01 il faut depuis l'autre faire ping monserveur01
    et réceiproquement

    j'ai déjà eut un cas où sur un domaine les noms échouaient au dns de windows, et ca faisait planter msdtc (noms ajoutés au fichier hosts de windows comme résolution)

    après il faut vérifier qu'msdtc est compatible avec mysql, et qu'il est bien paramétré
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre régulier
    Homme Profil pro
    Python
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Python
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Du serveur windows à centOS cela fonctionne dans l'autre sens non car comme je l'ai expliqué pour éviter des attaques à partir du serveur mysql on a bloqué les communications dans se sens !

    Mais étant donné que je fais uniquement un insert de windows à linux ca devrait pas poser de problème ..

    Je vérifie ce soir quand plus personnes n'utilisera le serveur sql ! et te dis quoi demain ! (on va éviter de redémarrer un service qui m'est inconnu et faire perdre de l'argent à l'entreprise ^^')

    merci bien de ton aide !

  6. #6
    Membre régulier
    Homme Profil pro
    Python
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Python
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Par défaut
    Bonjour,

    J'ai reconfiguré le msdtc du server windows, mais je ne comprend rien à l'équivalent sous centOS(linux) .. XA c'est ca?

    j'avais pas vu le message en noir au dessus de mon message d'erreur:

    Le fournisseur OLE DB "MSDASQL" du serveur lié "MonserveurMYSQL" a retourné le message "[MySQL][ODBC 5.1 Driver]Optional feature not supported".
    Je pense que je vais poster ca sur la partie MySQL si vous pouvez m'aider n'hésitez pas !

    je vous remercie
    cordialement clymB,

Discussions similaires

  1. message d'erreur avec mysql
    Par ulysse031 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 07/02/2007, 19h23
  2. [MySQL] Erreur dans une requête avec jointures
    Par bobic dans le forum Langage SQL
    Réponses: 17
    Dernier message: 03/08/2006, 13h04
  3. [MySQL] erreur #1064 avec une requete
    Par oceane751 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/02/2006, 22h31
  4. [MySQL] erreur avec sous-requête
    Par Piou2fois dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/02/2006, 13h44
  5. [MySQL] Erreur SQL 1064 : Requête imbriquée avec jointure !
    Par patchankito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/01/2006, 10h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo