การแก้ไข: xp_sendmail การขยายกระบวนงานที่เก็บไว้ไม่ทำงานเสร็จสมบูรณ์ ใน SQL Server 2000 SP2 หรือในภายหลัง

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:833045
บทความนี้ถูกเก็บถาวรแล้วเนื้อหาของบทความจึงถูกนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก
อาการ
เมื่อคุณพยายามส่งข้อความอีเมล โดยใช้การxp_sendmailขยายกระบวนงานที่เก็บไว้บนคอมพิวเตอร์ที่รัน Microsoft SQL Server 2000 Service Pack 2 (SP2) หรือใหม่ กว่าxp_sendmailขยายกระบวนงานที่เก็บไว้อาจไม่ทำงานเสร็จสมบูรณ์ คุณอาจได้รับข้อความแจ้งความผิดพลาดต่อไปนี้::
เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 18025 ระดับ 16 สถานะ 1 บรรทัด 0
xp_sendmail: ล้มเหลว ด้วยข้อผิดพลาดจดหมาย 0x80040115
หมายเหตุ:เกิดปัญหานี้โดยปกติเมื่อมีสองเงื่อนไขต่อไปนี้:
  • ไม่มีการสูญเสียการเชื่อมต่อเครือข่ายระหว่างคอมพิวเตอร์ที่รัน Microsoft SQL Server 2000 และคอมพิวเตอร์ที่รัน Microsoft Exchange Server
  • มีการเริ่มระบบใหม่หลังจากการดำเนินการแรกของเซิร์ฟเวอร์ Exchangexp_sendmailขยายกระบวนงานที่เก็บไว้บนอินสแตนซ์ของ SQL Server ที่มีข้อผิดพลาดเกิดขึ้น
การแก้ไข

ข้อมูล Service Pack

เมื่อต้องการแก้ไขปัญหานี้ ขอรับ service pack ล่าสุดสำหรับ Microsoft SQL Server 2000 สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
290211วิธีการขอรับ service pack ล่าสุดของ SQL Server 2000

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนรุ่นภาษาอังกฤษนี้มีแอตทริบิวต์แฟ้ม (หรือแอตทริบิวต์แฟ้มหลังจากนี้) ซึ่งแสดงในตารางต่อไปนี้ วันที่และเวลาของแฟ้มเหล่านี้จะปรากฏในรูปแบบเวลามาตรฐานสากล (UTC) เมื่อคุณดูข้อมูลแฟ้ม ข้อมูลจะถูกแปลงเป็นเวลาท้องถิ่น เมื่อต้องการค้นหาความแตกต่างระหว่างเวลา UTC กับเวลาท้องถิ่น ใช้โซนเวลาแท็บในเครื่องมือ'วันและเวลา'ใน'แผงควบคุม'
   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    
หมายเหตุ:เนื่องจากการอ้างอิงแฟ้ม โปรแกรมแก้ไขด่วนหรือคุณลักษณะที่ประกอบด้วยแฟ้มเหล่านี้ครั้งล่าสุดอาจประกอบด้วยแฟ้มเพิ่มเติม

สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "การใช้งาน" ก่อนมีแก้ไขปัญหานี้ใน Microsoft SQL Server 2000 Service Pack 4
การหลีกเลี่ยงปัญหา
เมื่อต้องการแก้ไขปัญหานี้ ตรวจสอบการเชื่อมต่อเครือข่าย และจากนั้น ส่งอีเม คุณสามารถตั้งค่าตัวเลือกการลองส่งใหม่สำหรับการxp_sendmailขยายกระบวนงานที่เก็บไว้ โดยการกำหนดค่ารายการรีจิสทรี หรือ โดยการเพิ่มตรรกะการลองส่งใหม่รหัสโปรแกรมประยุกต์ของคุณ เมื่อต้องการทำเช่นนี้ ให้ใช้วิธีการใดวิธีการหนึ่งต่อไปนี้:
  • วิธีที่ 1: การกำหนดค่าตัวเลือกการลองส่งใหม่สำหรับการxp_sendmailกระบวนงานที่เก็บไว้แบบขยาย

    โดยค่าเริ่มต้น หลังจากที่คุณติดตั้งโปรแกรมแก้ไขด่วนนี้ เมื่อนั้นxp_sendmailพบส่วนขยายกระบวนงานที่เก็บไว้hresult = 0x80040115กระบวนการxp_sendmailกระบวนงานที่เก็บไว้แบบขยายพยายามส่งอีเมอีกครั้งหลังจากนั้น sleeps สำหรับมิลลิวินาที 1000 อย่างไรก็ตาม คุณสามารถกำหนดหมายเลขของการลองใหม่หลายครั้งและช่วงเวลารอคอยสำหรับแต่ละลองส่งใหม่

    สิ่งสำคัญนี้ส่วน วิธี หรืองานประกอบด้วยขั้นตอนที่บอกวิธีการแก้ไขรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีไม่ถูกต้อง ดังนั้น โปรดตรวจสอบให้แน่ใจว่าคุณได้ทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการป้องกันเพิ่มเติม ให้สำรองรีจิสทรีก่อนทำการปรับเปลี่ยน เพื่อที่คุณจะสามารถคืนค่ารีจิสทรีได้หากมีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูลและคืนค่ารีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
    322756วิธีการสำรองข้อมูลและคืนค่ารีจิสทรีใน Windows
    1. เมื่อต้องการกำหนดหมายเลขของการลองใหม่ เพิ่มNumberOfTimesToRetryOnNetworkErrorค่ากับรีจิสทรีคีย์ต่อไปนี้ dword และตั้งค่าแล้ว:
      • สำหรับกรณีที่เป็นค่าเริ่มต้นของ SQL Server 2000 ใช้ HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer ในรีจิสตรีคีย์
      • สำหรับอินสแตนซ์ที่มีชื่อของ SQL Server 2000 ใช้ HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Server\ SQLชื่ออินสแตนซ์\MSSQLServer รีจิสตรีคีย์
    2. การตั้งค่าช่วงเวลารอคอยสำหรับการxp_sendmailตัวเลือกการลองใหม่อีกครั้ง เพิ่มWaitIntervalForRetryOnNetworkErrorค่ากับรีจิสทรีคีย์ต่อไปนี้ dword และตั้งค่าแล้ว:
      • สำหรับกรณีที่เป็นค่าเริ่มต้นของ SQL Server 2000 ใช้คีย์รีจิสทรี HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer
      • สำหรับอินสแตนซ์ที่มีชื่อของ SQL Server 2000 ใช้ Server\ ของ SQL HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoftชื่ออินสแตนซ์\MSSQLServer รีจิสตรีคีย์
  • วิธีที่ 2: เพิ่มตรรกะรหัสแอพลิเคชันของการลองใหม่อีกครั้ง

    โดยให้ทำตามขั้นตอนต่อไปนี้:
    1. ตรวจสอบการเชื่อมต่อเครือข่ายสำหรับคอมพิวเตอร์ที่มีการกำหนดค่าเป็นเซิร์ฟเวอร์จดหมาย
    2. ตรวจสอบให้แน่ใจว่า การ์ดเชื่อมต่อเครือข่ายและโปรแกรมควบคุมที่สอดคล้องกันทำงานอย่างถูกต้อง
    3. ใช้ตรรกะเหมาะสมในสคริปต์ Transact SQL ที่คุณใช้เพื่อส่งข้อความอีเมล์ โดยใช้การxp_sendmailขยายกระบวนงานที่เก็บไว้เพื่อให้สามารถถูกส่งข้อความอีเมล์ใหม่หลังจากเกิดความล้มเหลว เมื่อต้องการทำเช่นนั้น คุณสามารถใช้สคริปต์ Transact SQL ที่คล้ายกับข้อความต่อไปนี้:
      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
ข้อมูลเพิ่มเติม
เมื่อคุณส่งข้อความอีเมล โดยใช้การxp_sendmailขยายกระบวนงานที่เก็บไว้ การxp_sendmailขยายกระบวนงานที่เก็บไว้ทำให้การเรียก MAPI API จำนวนมาก อย่างไรก็ตาม ตัวเลือกการลองส่งใหม่ในโปรแกรมแก้ไขด่วนนี้เท่านั้นเพิ่มสำหรับโทรเดียวที่ทำให้เกิดความล้มเหลว ด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้:
hresult = 0x80040115
ข้อมูลอ้างอิง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำศัพท์ของการปรับปรุงซอฟต์แวร์ ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความใน Microsoft Knowledge Base::
824684คำอธิบายของคำศัพท์มาตรฐานที่ใช้เพื่ออธิบายปรับปรุงซอฟต์แวร์ของ Microsoft
หากต้องการทราบข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base::
263556วิธีการกำหนดค่าจดหมาย SQL
315886ปัญหาทั่วไปของ SQL จดหมาย
820220ข้อผิดพลาด 0x80070005 หรือ 0x80040005 เกิดขึ้นเมื่อคุณส่งอีเมล์ โดยใช้ xp_sendmail ที่ขยายกระบวนงานที่เก็บไว้

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 833045 - การตรวจสอบครั้งสุดท้าย: 12/08/2015 05:37:23 - ฉบับแก้ไข: 2.0

Microsoft SQL Server 2000 Personal Edition Service Pack 3

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbregistry kbsqlserv2000presp4fix kbfix kbbug kbemail kbdll kbprb kberrmsg kbsqlservmail kbmt KB833045 KbMtth
คำติชม