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 ตาราง.
ดับเบิลคลิกที่งานไหลข้อมูลขณะนี้คุณได้รับข้อมูลการไหลของโปรแกรมแก้ไขงาน. ลากมา OLEDB บนหน้าจอและ Flat File ปลายทางและเชื่อมโยงเหล่านี้พร้อมกับลูกศรสีเขียว. ใส่สองงานโดยตรงชื่อมีความหมายเช่น OLEDBSRC Sysdtslog90 และ FFD ErrorLogETL เพื่อให้คนอื่นอย่างชัดเจนสิ่งที่เกิดขึ้นในรหัสโดยไม่ noses. งานไหลของข้อมูลลักษณะเช่นนี้:
ตอนนี้เราจำเป็นต้องกำหนดแหล่ง 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 "
ตอนนี้เราเขียนข้อมูลผลลัพธ์ในข้อความไฟล์ที่เรากำลังจะ mail. ดับเบิลคลิก Flat File ปลายทางก่อนสร้างและกำหนดค่าที่ต้องการเป็น. ทำให้การเชื่อมต่อนี้ยังเป็นผู้จัดการด้วยเช่นแฟ้มข้อความที่คั่นด้วย, สิ่งที่คุณค้นหาที่ง่ายที่สุด.
งานไหลข้อมูลเสร็จตอนนี้. มี 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 สร้างก่อนหน้านี้และเข้าสู่ระบบมี.
เราพร้อมนี้. ทดสอบว่าทำงานโดยผิดพลาดบางในแพคเกจเพื่อสร้างและเรียกใช้. สำหรับความคิดเห็นหรือคำถามฝากข้อความ!
ขึ้นไปด้านบน
