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

Traductions disponibles Traductions disponibles
Numéro d'article: 833045 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

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=1
      BEGIN
      SET @Counting = @Counting + 1
      
      EXEC @return = master.dbo.xp_sendmail 
      @recipients = @EmailAddTO,
      @message = @EmailText ,
      @subject = @EmailSubject
      
      /* CHECK value, break if SUCCESS */
      IF @return = 0
      BEGIN
      PRINT 'EMAIL SENT'
      BREAK
      END
      ELSE
      BEGIN
      /* Try 5 times */
      IF @Counting = 5
      BREAK 
      PRINT 'EMAIL FAILED, WAIT 10 SECONDS, TRY AGAIN'
      /* 000 hours, 00 minutes, and 10 seconds */
      WAITFOR DELAY '000:00:10'
      END
      END
      END
      GO

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

Propriétés

Numéro d'article: 833045 - Dernière mise à jour: vendredi 2 novembre 2007 - Version: 4.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • 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
Mots-clés : 
kbmt kbhotfixserver kbqfe kbregistry kbsqlserv2000presp4fix kbfix kbbug kbemail kbdll kbprb kberrmsg kbsqlservmail KB833045 KbMtfr
Traduction automatique
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
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com