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

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 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=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

ข้อมูลเพิ่มเติม

เมื่อคุณส่งข้อความอีเมล โดยใช้การ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 ที่ขยายกระบวนงานที่เก็บไว้

คุณสมบัติ

หมายเลขบทความ (Article ID): 833045 - รีวิวครั้งสุดท้าย: 18 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft SQL Server 2000 Personal Edition Service Pack 3
Keywords: 
kbhotfixserver kbqfe kbregistry kbsqlserv2000presp4fix kbfix kbbug kbemail kbdll kbprb kberrmsg kbsqlservmail kbmt KB833045 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:833045

ให้ข้อเสนอแนะ

 

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