Error Reporting ใช้ SSIS. Event Handlers


หน้าแรก SQL Server Error Reporting ใช้ SSIS. Event Handlers

เมื่อเกิดความผิดพลาดเกิดขึ้นใน ETL และแพคเกจ Data Warehouse Manager ที่คุณต้องการทราบว่าเมื่ออะไรผิดไป. หากคุณใช้ดำเนินกิจกรรมเป็นเชื้อเพลิงเช่น e-mail แจ้งว่าเกิดข้อผิดพลาดแต่ที่มันไปผิดคือไม่ทราบ. 

บทความนี้จะแสดงว่าคุณสามารถกำหนดค่าดำเนินงานในแพคเกจหลักของคุณซึ่งเมล์รายงานรายละเอียดข้อผิดพลาดจากจุดเริ่มต้นของการทำงานสุดท้าย. ฉันจะจากที่นี่ว่ามีแพคเกจหลักที่สาย subpackages และที่เข้าใช้. เข้าเป็นจำเป็นต้องตรวจสอบเมื่อเริ่มทำงานสุดท้าย. 

ขั้นที่ 1: การกำหนดค่า Event ดำเนินการ 
ก่อนที่จะทำคือการสร้างดำเนินการกรณีที่รันผ่านจำนวนขั้นตอนเมื่อสิ่งผิดไป. คลิกที่แท็บ "Event Handlers" และเลือกระดับที่ดำเนินการกรณีที่ไปปิด. ในตัวอย่างนี้, ขอบเขตของการดำเนินการกรณีที่แพคเกจทั้งหมด. ดำเนินการกรณีคุณสามารถกำหนดค่างานบุคคล. เลือกช่องแบบเลื่อนลงที่สองเลือก "OnTaskFailed. เพื่อให้แน่ใจว่าผู้ดำเนินกิจกรรมนี้เรียกว่าเมื่อ package failed. 

แล้วลากงานต่อไปนี้ในการแสดงผล: งานไหลข้อมูลส่งงานไปรษณีย์และงานระบบแฟ้ม. Vervindt พวกเขาเพื่อพร้อม contraint สำคัญ (ลูกศรสีเขียว). 

ขั้นที่ 2: Data Flow Task-กำหนดค่า 
แล้วในงานไหลข้อมูลเพื่อสร้าง dataset เพื่อให้เราออกไปพร้อมกับข้อมูลเกี่ยวกับข้อความแสดงข้อผิดพลาด. นี้จะมีประโยชน์เพื่อให้สามารถตรวจสอบข้อผิดพลาดที่เกิดขึ้นจริง. โดยปกติความผิดพลาดทั้งหมดที่บันทึกไว้ใน sysdtslog90 ตาราง. 

artikelen/ssis/SSIS_Errorlog_Email_01.JPG


ดับเบิลคลิกที่งานไหลข้อมูลขณะนี้คุณได้รับข้อมูลการไหลของโปรแกรมแก้ไขงาน. ลากมา OLEDB บนหน้าจอและ Flat File ปลายทางและเชื่อมโยงเหล่านี้พร้อมกับลูกศรสีเขียว. ใส่สองงานโดยตรงชื่อมีความหมายเช่น OLEDBSRC Sysdtslog90 และ FFD ErrorLogETL เพื่อให้คนอื่นอย่างชัดเจนสิ่งที่เกิดขึ้นในรหัสโดยไม่ noses. งานไหลของข้อมูลลักษณะเช่นนี้: 

artikelen/ssis/SSIS_Errorlog_Email_02.JPG


ตอนนี้เราจำเป็นต้องกำหนดแหล่ง OLEDB แสดงเฉพาะข้อความผิดพลาดที่เรียกว่ามี arisen ระหว่างทำงานสุดท้าย. เพราะเวลาเริ่มต้นและจุดสิ้นสุดของ SSIS แพคเกจเพื่อให้มีบันทึกเวลาเริ่มต้นของชุดหลัก. สิ่งที่เราต้องการทราบคือ 
-> ขอรายชื่อของข้อผิดพลาดทั้งหมดที่มี arisen ระหว่างทำงานสุดท้าย. 

แรกคือเราต้องการทราบเมื่อมีการทำงานที่ผ่านมาเริ่มต้น. นี้สามารถพบได้โดยการค้นหาครั้งสุดท้ายที่เหตุการณ์ "Start Package" ขึ้นสำหรับแพ็คเกจหลัก. แล้วเราจะดูว่าข้อผิดพลาดที่เกิดขึ้นหลังจากวันนี้. คำถามต่อไปนี้คือการใช้นี้. ทั้งหมดคุณต้องการคือการเปลี่ยนชื่อของแพคเกจ. 

-------------------------------------- 
Row_number เลือก () ผ่าน (สั่งโดย StartTime เรียง) เป็น FoutNr, 
แหล่งตามแหล่งกำเนิด 
starttime เวลาเริ่ม 
[ข้อความ] AS Error 
AS S จาก sysdtslog90 
ที่ starttime> = (เลือก TOP 1 
เวลาเริ่มต้น 
จาก sysdtslog90 
แหล่งที่ = 'VUL_HIER_JE_PACKAGENAAM_IN' 
และ Event = "Start Package ' 
ORDER desc โดย starttime 

และกรณี []% ความผิดพลาดเช่น '%' 
-------------------------------------- 
ป้อนคำข้างต้นในการกำหนด oledbsource ของคุณและเลือก OLE DB Connection Manager เชื่อมต่อกับฐานข้อมูลที่ตาราง sysdtslog90 เพื่อค้นหาและเลือก Data Access Mode เพื่อสั่ง SQL " 


artikelen/ssis/SSIS_Errorlog_Email_03.JPG


ตอนนี้เราเขียนข้อมูลผลลัพธ์ในข้อความไฟล์ที่เรากำลังจะ mail. ดับเบิลคลิก Flat File ปลายทางก่อนสร้างและกำหนดค่าที่ต้องการเป็น. ทำให้การเชื่อมต่อนี้ยังเป็นผู้จัดการด้วยเช่นแฟ้มข้อความที่คั่นด้วย, สิ่งที่คุณค้นหาที่ง่ายที่สุด. 

artikelen/ssis/SSIS_Errorlog_Email_04.JPG


งานไหลข้อมูลเสร็จตอนนี้. มี dataset เก็บกับข้อความแสดงข้อผิดพลาดนั้นและพวกเขาจะเขียนอย่างประณีตในแฟ้มข้อความ. 

สิ่งที่เราต้องทำคือ e-mail ที่จะส่งไปยังผู้ดูแล. 

ขั้นที่ 3: ตั้งค่า E-mail Task 
กลับไปยังแท็บการดำเนินกิจกรรมของคุณและคลิกสองครั้งบนส่ง Mail Task. การตั้งค่าการกำหนดค่าทั้งหมดตามต้องการเพื่อ: SMTP Server (การสร้างครั้งแรก) จาก, การเรื่องแหล่ง Message. ในเอกสารแนบที่คุณเลือกข้อความไฟล์สร้างก่อนหน้านี้ในช่วงงานไหลข้อมูล. เส้นทางนี้จะต้องตรงกับเช่น: d: SQL Log ErrorLogETL.txt 

อาจเป็นที่เขาให้เตือนเนื่องจากไฟล์ข้อความไม่มียัง. ระหว่างการใช้งานของไฟล์แพคเกจจะถูกสร้างขึ้นโดยอัตโนมัติเพื่อให้คุณสามารถละเว้นข้อผิดพลาดนี้. ยังทราบว่ามาตรฐานที่นี่ในบล็อก port25 McAfee VirusScan. นี้สามารถปิด. 

ขั้นที่ 4: Logfiles สะอาด 
มันจึงดีเพื่อวาง logfile สร้างกลับไปที่ชัดเจน. ดับเบิลคลิก Task File System. แล้วเลือกที่จะปฏิบัติการ: ลบไฟล์. สำหรับการเชื่อมต่อมา, เลือก Connection File Flat สร้างก่อนหน้านี้และเข้าสู่ระบบมี. 

artikelen/ssis/SSIS_Errorlog_Email_05.JPG


เราพร้อมนี้. ทดสอบว่าทำงานโดยผิดพลาดบางในแพคเกจเพื่อสร้างและเรียกใช้. สำหรับความคิดเห็นหรือคำถามฝากข้อความ!


ขึ้นไปด้านบน