CORRECTIF : la procédure stockée étendue de xp_sendmail ne s'exécute pas correctement dans SQL Server 2000 SP2 ou version ultérieure

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 833045
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Symptômes
Lorsque vous essayez d'envoyer un message électronique à l'aide la xp_sendmail procédure stockée étendue sur un ordinateur qui exécute Microsoft SQL Server 2000 Service Pack 2 (SP2) ou version ultérieure, xp_sendmail procédure stockée étendue peut exécuter pas correctement. Vous pouvez recevoir le message d'erreur suivantes :
Serveur: Msg 18025, Niveau 16, État 1, ligne 0
xp_sendmail: a échoué avec l'erreur messagerie 0x80040115
note Ce problème se produit généralement lorsque les deux conditions suivantes sont vraie :
  • Il est une perte de connectivité réseau entre l'ordinateur qui exécute Microsoft SQL Server 2000 et l'ordinateur qui exécutent Microsoft Exchange Server.
  • Le serveur Exchange est redémarré après que la première exécution de la xp_sendmail étendue procédure stockée sur instance de SQL Server où l'erreur s'est produite.
Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft SQL Server 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
290211 Comment obtenir le dernier pack de service SQL Server 2000

Informations sur le correctif

La version anglaise de ce correctif dispose les attributs de fichier (ou attributs de fichier version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'outil Date et heure du Panneau de configuration.
   Date         Time   Version             Size   File name   ---------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe         28-Oct-2003  04:21  2000.80.873.0     315,968  Custtask.dll        30-Jan-2004  16:29  2000.80.911.0      33,340  Dbmslpcn.dll        25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   12-Sep-2003  03:26  2000.80.859.0   1,905,216  Dtspkg.dll          26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll         23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll          24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   30-Jan-2004  16:29  2000.80.911.0      90,692  Msgprox.dll         01-Apr-2003  02:07                      1,873  Odsole.sql   30-Jan-2004  16:29  2000.80.911.0      62,024  Odsole70.dll        30-Jan-2004  16:29  2000.80.911.0      25,144  Opends60.dll        07-May-2003  18:47                    132,096  Opends60.pdb   30-Jan-2004  16:28  2000.80.911.0      57,904  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  18:17                    550,780  Procsyst.sql   12-Sep-2003  00:37                     12,305  Qfe469315.sql   22-May-2003  22:57                     19,195  Qfe469571.sql   30-Jan-2004  01:16                  1,090,380  Replmerg.sql   30-Jan-2004  16:29  2000.80.911.0     221,768  Replprov.dll        30-Jan-2004  16:29  2000.80.911.0     307,784  Replrec.dll         29-Jan-2004  23:24  2000.80.911.0     159,813  Replres.rll   06-Sep-2003  00:00                  1,087,150  Replsys.sql   13-Aug-2003  16:28                    986,603  Repltran.sql   30-Jan-2004  16:29  2000.80.911.0     287,304  Rinitcom.dll        30-Jan-2004  16:29  2000.80.911.0      57,916  Semnt.dll           29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll          31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   02-Jan-2004  19:42  2000.80.904.0      53,832  Snapshot.exe        09-Dec-2003  20:07                    117,834  Sp3_serv_uni.sql   05-Feb-2004  00:46  2000.80.913.0      28,672  Sqlagent.dll        05-Feb-2004  00:47  2000.80.913.0     311,872  Sqlagent.exe        19-Feb-2004  18:02  2000.80.916.0     168,001  Sqlakw32.dll        30-Jan-2004  16:29  2000.80.911.0   4,215,360  Sqldmo.dll          07-Apr-2003  17:44                     25,172  Sqldumper.exe       29-Jan-2004  23:17  2000.80.911.0      28,672  Sqlevn70.rll   05-Mar-2004  17:13  2000.80.922.0     180,792  Sqlmap70.dll        03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll          02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll   22-Oct-2003  00:08  2000.80.871.0     401,984  Sqlqry.dll          30-Jan-2004  16:29  2000.80.911.0      57,920  Sqlrepss.dll        09-Mar-2004  19:54  2000.80.922.0   7,614,545  Sqlservr.exe        09-Mar-2004  19:57                 12,788,736  Sqlservr.pdb   30-Jan-2004  16:29  2000.80.911.0     590,396  Sqlsort.dll         30-Jan-2004  16:29  2000.80.911.0      45,644  Sqlvdi.dll          30-Jan-2004  16:29  2000.80.911.0     106,588  Sqsrvres.dll        30-Jan-2004  16:29  2000.80.911.0      33,340  Ssmslpcn.dll        30-Jan-2004  16:29  2000.80.911.0      82,492  Ssnetlib.dll        30-Jan-2004  16:29  2000.80.911.0      25,148  Ssnmpn70.dll        28-Oct-2003  04:21  2000.80.873.0     123,456  Stardds.dll         30-Jan-2004  16:29  2000.80.911.0     158,240  Svrnetcn.dll        30-Jan-2004  16:29  2000.80.911.0      76,416  Svrnetcn.exe        30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll             30-Apr-2003  23:52                    132,096  Ums.pdb   30-Jan-2004  16:29  2000.80.911.0      98,872  Xpweb70.dll    
note En raison des dépendances de fichiers, la fonctionnalité qui contient ces fichiers ou correctif plus récent peut également contenir des fichiers supplémentaires.

Statut
Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans Microsoft SQL Server 2000 Service Pack 4.
Contournement
Pour contourner ce problème, vérifiez la connectivité réseau, puis renvoyez le message. Vous pouvez configurer l'option tentatives de xp_sendmail procédure stockée étendue en configurer les entrées de Registre ou en ajoutant logique de nouvelle tentative à votre code d'application. Pour cela, appliquez l'une des méthodes suivantes :
  • Méthode 1: configurer l'option tentatives de xp_sendmail procédure stockée étendue

    Par défaut, après avoir installé ce correctif, si la xp_sendmail étendue rencontre une procédure stockée HRESULT = 0x80040115 , xp_sendmail procédure stockée étendue essaie d'envoyer le courrier à nouveau une fois qu'il est en veille de 1 000 millisecondes. Toutefois, vous pouvez configurer le nombre de tentatives et l'intervalle d'attente pour chaque nouvelle tentative.

    important Cette section, la méthode ou la tâche, contient des étapes qui vous indiquent comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si modification incorrecte du Registre. Par conséquent, assurez-vous que ces étapes avec soin. Pour la protection supplémentaire, sauvegarder le Registre avant de le modifier. Ensuite, vous pouvez restaurer le Registre si un problème se produit. Pour plus d'informations sur la façon sauvegarder et restaurer le Registre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
    322756 Comment faire pour sauvegarder et restaurer le Registre dans Windows
    1. Pour configurer le nombre de tentatives, ajoutez la valeur DWORD NumberOfTimesToRetryOnNetworkError à la clé de Registre suivante et ensuite définir la valeur :
      • Pour une instance par défaut de SQL Server 2000, utilisez la HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer clé de Registre.
      • Pour une instance nommée de SQL Server 2000, utilisez la HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft clé de Registre \MSSQLServer Server\ SQL Instance Name.
    2. Pour configurer l'intervalle d'attente pour l'option de nouvelle tentative de xp_sendmail , ajoutez la valeur DWORD WaitIntervalForRetryOnNetworkError à la clé de Registre suivante et ensuite définir la valeur :
      • Pour une instance par défaut de SQL Server 2000, utilisez la clé de Registre HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer.
      • Pour une instance nommée de SQL Server 2000, utilisez la clé de Registre \MSSQLServer de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ Instance Name.
  • Méthode 2: ajouter réessayer logique pour votre code d'application

    Pour ce faire, procédez comme suit :
    1. Vérifiez la connectivité réseau pour l'ordinateur qui est configuré comme serveur de messagerie.
    2. Assurez-vous que la carte réseau et le pilote correspondant fonctionne correctement.
    3. Utiliser une logique approprié dans le script Transact-SQL que vous utilisez pour envoyer les messages électroniques en utilisant la xp_sendmail procédure stockée étendue afin qu'envoyée à du message électronique peut être nouveau après l'échec. Pour cela, vous pouvez utiliser un script Transact-SQL qui est semblable au suivant :
      DECLARE@EmailAddTO varchar(30),@EmailSubject varchar(130),@EmailText varchar(255),@return int,@Counting int BEGIN/* SET value */SET @return = 0 SET @Counting = 0 SET @EmailSubject = 'TEST EMAIL' SET @EmailText = 'This is a test email'SET @EmailAddTO = '<RecipientAddress>' /* LOOP. If e-mail is sent, break loop; ELSE WAIT 10 seconds, and then RETRY. */WHILE 1=1BEGINSET @Counting = @Counting + 1EXEC @return = master.dbo.xp_sendmail @recipients = @EmailAddTO,@message = @EmailText ,@subject = @EmailSubject/* CHECK value, break if SUCCESS */IF @return = 0BEGINPRINT 'EMAIL SENT'BREAKENDELSEBEGIN/* Try 5 times */IF @Counting = 5BREAK PRINT 'EMAIL FAILED, WAIT 10 SECONDS, TRY AGAIN'/* 000 hours, 00 minutes, and 10 seconds */WAITFOR DELAY '000:00:10'ENDENDENDGO
Plus d'informations
Lorsque vous envoyez un message électronique à l'aide la xp_sendmail procédure stockée étendue, la xp_sendmail étendue utilise une procédure stockée plusieurs appels à l'API de MAPI. Toutefois, l'option de nouvelle tentative dans ce correctif est ajoutée uniquement pour un appel unique qui ont provoqué l'échec avec la message d'erreur suivantes :
HRESULT = 0X80040115
Références
Pour plus d'informations sur la terminologie mise à jour logicielles, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
263556 Comment faire pour configurer SQL Mail
315886 Problèmes de SQL Mail
820220 Erreur 0 x 80070005 ou 0x80040005 se produit lorsque vous envoyez courrier électronique à l'aide la xp_sendmail procédure stockée étendue

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 833045 - Dernière mise à jour : 12/08/2015 05:37:17 - Révision : 4.3

Microsoft SQL Server 2000 Desktop Engine (MSDE) SP2, Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3, Microsoft SQL Server 2000 Service Pack 2, Microsoft SQL Server 2000 Service Pack 3, Microsoft SQL Server 2000 Service Pack 2, Microsoft SQL Server 2000 Service Pack 3, Microsoft SQL Server 2000 Service Pack 2, Microsoft SQL Server 2000 Personal Edition Service Pack 3, Microsoft SQL Server 2000 Service Pack 2, Microsoft SQL Server 2000 Service Pack 3

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbregistry kbsqlserv2000presp4fix kbfix kbbug kbemail kbdll kbprb kberrmsg kbsqlservmail KB833045 KbMtfr
Commentaires