Oprava: Xp_sendmail rozšířené uložené procedury nespustí úspěšně SQL Server 2000 SP2 nebo novější

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:833045
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Příznaky
Při pokusu o odeslání e-mailové zprávy pomocí xp_sendmail rozšířené uložené procedury v počítači se systémem Microsoft SQL Server 2000 Service Pack 2 (SP2) nebo novější, xp_sendmail rozšířené uložené procedury nemusí spustit úspěšně. Může se zobrazit následující chybová zpráva:
Server: Zpráva 18025, úroveň 16 stav 1, řádek 0
xp_sendmail: došlo k chybě pošty 0x80040115
Poznámka: Tento problém obvykle nastane, když jsou splněny následující dvě podmínky:
  • Je ztráta připojení k síti mezi počítači se systémem 2000 Microsoft SQL Server a počítač spustit Microsoft Exchange Server.
  • Exchange server je restartován po prvním spuštění xp_sendmail rozšířené uložené procedury instance serveru SQL, kde došlo k chybě.
Řešení

Informace o aktualizaci Service Pack

Tento problém vyřešíte získat nejnovější aktualizaci service pack pro 2000 Microsoft SQL Server. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
290211Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

Informace o opravě hotfix

Anglická verze této opravy hotfix má následující (nebo pozdější) atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   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    
Poznámka: Vzhledem k závislostem souborů může nejnovější oprava hotfix nebo funkce, která obsahuje tyto soubory také obsahovat další soubory.

Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt. Tento problém byl poprvé opraven v Microsoft SQL Server 2000 Service Pack 4.
Jak potíže obejít
Tento problém vyřešit, ověřte připojení k síti a znovu odešlete e-mailu. Můžete nastavit možnost opakování xp_sendmail rozšířené uložené procedury nakonfigurováním položky registru nebo přidáním logiky opakování kód aplikace. Použijte některou z následujících metod:
  • Metoda 1: Konfigurace možnost opakování xp_sendmail rozšířené uložené procedury

    Ve výchozím nastavení po instalaci této opravy, pokud xp_sendmail rozšířené uložené procedury setká HRESULT = 0x80040115, xp_sendmail rozšířené uložené procedury se pokusí znovu odeslat pošty po režimu spánku pro 1000 milisekund. Můžete však nakonfigurovat počet opakování a interval čekání pro každé opakování.

    Důležité: Tento oddíl, metoda nebo úkol obsahuje kroky, které sdělit, jak upravit registr. Po nesprávné úpravě registru však mohou nastat závažné problémy. Postupujte proto pečlivě podle uvedených kroků. Pro zvýšení bezpečnosti registr zálohujte jestě před jeho úpravami. Potom můžete v případě potíží registr obnovit. Další informace o zálohování a obnovení registru naleznete následujícím článku znalostní v databáze Microsoft Knowledge Base:
    322756Zálohování a obnovení registru v systému Windows
    1. Konfigurovat počet opakování, přidejte hodnotu DWORD NumberOfTimesToRetryOnNetworkError následující klíč registru a nastavte hodnotu:
      • Výchozí instance SQL Server 2000, použijte HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer klíč registru.
      • Pojmenovaná instance SQL Server 2000, použijte HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft klíč registru Instance Name SQL Server\ \MSSQLServer.
    2. Konfigurovat interval čekání možnost opakování xp_sendmail přidat hodnotu DWORD WaitIntervalForRetryOnNetworkError následující klíč registru a nastavte hodnotu:
      • Výchozí instance SQL Server 2000 pomocí klíče registru HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer.
      • Pojmenovaná instance SQL Server 2000 pomocí klíče registru \MSSQLServer HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\ Instance Name.
  • Metoda 2: Přidání opakovat logiku kódu aplikace

    Použijte uvedený postup:
    1. Ověřte připojení k síti pro počítač je nakonfigurován jako poštovní server.
    2. Ujistěte se, že síťový adaptér a odpovídající ovladač pracují správně.
    3. Použití příslušné logiky ve skriptu Transact-SQL, použít k odeslání e-mailové zprávy pomocí xp_sendmail rozšířené uložené procedury tak, aby znovu e-mailové zprávy může být odeslán po dojde k selhání. Chcete-li to provést, můžete použít skript Transact-SQL, který je podobný následující:
      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
Další informace
Při odeslání e-mailové zprávy pomocí xp_sendmail rozšířené uložené procedury xp_sendmail rozšířené uložené procedury provádí mnoho volání MAPI API. Možnost opakování v této opravě hotfix je však přidán pouze pro jedno volání, který způsobil chybu s následující chybová zpráva:
HRESULT = 0X80040115
Odkazy
Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
263556Jak konfigurovat SQL mail
315886Běžné problémy SQL mail
820220Odeslat e-mail pomocí rozšířené uložené procedury xp_sendmail dojde k chybě 0x80070005 nebo 0x80040005

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 833045 - Poslední kontrola: 12/08/2015 05:37:14 - Revize: 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 KbMtcs
Váš názor