การประมวลผลแบบอะซิงโครนัสของธุรกรรมแบบต่อเรียง
ธุรกรรมบางอย่างสามารถกำหนดค่าให้เรียงซ้อนในเรกคอร์ดที่เกี่ยวข้องทั้งหมด ซึ่งหมายความว่าการเปลี่ยนแปลงในเรกคอร์ดหลักจะถูกทำธุรกรรมเมื่อ (เรียงซ้อนลง) เรกคอร์ดรองทั้งหมด ความสัมพันธ์ที่เกี่ยวข้องได้รับการกำหนดค่าที่ระดับตาราง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความสัมพันธ์ การเรียงซ้อน โปรดดู กำหนดค่าพฤติกรรมการเรียงซ้อนความสัมพันธ์ของตาราง
โหมดซิงโครนัสเทียบกับโหมดอะซิงโครนัส
โดยค่าเริ่มต้น การดำเนินการแบบเรียงซ้อนจะดำเนินการเป็นธุรกรรมแบบซิงโครนัส สำหรับธุรกรรมเรียงซ้อนแบบซิงโครนัส ระบบจะระบุเรกคอร์ดที่ได้รับผลกระทบทั้งหมด เนื่องจากมีการประมวลผลเรกคอร์ด เรกคอร์ดเหล่านั้นจะถูกล็อคโดยระบบ เมื่อการเปลี่ยนแปลงทั้งหมดเสร็จสมบูรณ์ เรกคอร์ดจะถูกปลดล็อคและการทำธุรกรรมจะเสร็จสมบูรณ์
ธุรกรรมแบบซิงโครนัสที่มีเรกคอร์ดจำนวนมากสามารถทำให้เกิดปัญหาประสิทธิภาพการทำงานสำหรับสภาพแวดล้อมเมื่อธุรกรรมที่ดำเนินการเป็นเวลานานล้มเหลวเนื่องจากเซิร์ฟเวอร์หมดเวลา เรกคอร์ดถูกล็อกเพื่อป้องกันงานอื่นและธุรกรรมผู้ใช้ที่ทำงานบนเรกคอร์ดเดียวกันจากการดำเนินการ นอกจากนี้ ธุรกรรมที่ใช้เวลานานอาจส่งผลให้เกิดการค้างของธุรกรรมที่รอดำเนินการและการร้องขอที่ลดประสิทธิภาพของระบบและอาจทำให้เกิดการหยุดทำงาน
หากสภาพแวดล้อมกำลังประสบกับการหมดเวลาหรือประสิทธิภาพลดลงในขณะที่การดำเนินการซิงโครนัสแบบเรียงซ้อนกำลังดำเนินการอยู่ สภาพแวดล้อมของคุณอาจได้รับประโยชน์จากการเปิดใช้งานโหมดอะซิงโครนัส ความแตกต่างหลักระหว่างโหมดได้ถูกอธิบายไว้ในตารางต่อไปนี้
โหมดซิงโครนัส | โหมดอะซิงโครนัส |
---|---|
ไม่มีงานอื่นใดที่สามารถดำเนินการกับเรกคอร์ดที่เลือกทั้งหมด (โดยตรงหรือแบบเรียงซ้อน) จนกว่าการดำเนินการเรียงซ้อนจะเสร็จสมบูรณ์ | สำหรับการกำหนด ลบ และผสาน การเปลี่ยนแปลงที่เกี่ยวข้องจะถูกแบ่งเป็นชุด โดยล็อกเฉพาะเรกคอร์ดที่ประมวลผลภายในชุดงาน สิ่งนี้อนุญาตให้งานอื่นดำเนินการระหว่างการดำเนินการเปลี่ยนแปลงเต็มแบบเรียงซ้อน |
เมื่องานเสร็จสมบูร ณ์ข้อมูลทั้งหมดจะแสดงค่าที่ต้องการใหม่ | เมื่อเรียกใช้งาน แต่ละชุดงานที่เสร็จแล้วแสดงค่าที่ต้องการ ซึ่งหมายความว่าจะมีเวลาเมื่อข้อมูลบางอย่างแสดงค่าที่ต้องการและบางส่วนแสดงค่าดั้งเดิมจนกว่าการดำเนินการเต็มรูปแบบจะเสร็จสมบูรณ์ สิ่งนี้จะเรียกว่า “ความถูกต้องตรงกันในที่สุด“ |
หากเรกคอร์ดเดียวล้มเหลว ข้อมูลทั้งหมดจะถูกย้อนกลับไปเป็นค่าดั้งเดิม การย้อนกลับต้องการการแก้ไขเรกคอร์ดที่เสร็จสมบูรณ์ใหม่ทั้งหมด ซึ่งจะใช้เวลาเพิ่มเติม | หากงานเดียวล้มเหลว มันจะลองใหม่หลายครั้งเพื่อให้งานสำเร็จ หากงานไม่สำเร็จความล้มเหลวจะถูกบันทึกในพื้นที่ งานในระบบ ขอให้สังเกตว่าเรกคอร์ดที่เสร็จสมบูรณ์แล้วจะรักษาค่าใหม่ |
หากหนึ่งในเรกคอร์ดในรายการเรียงซ้อนมีค่าที่แตกต่างจากค่าที่คาดไว้ งานจะล้มเหลวและย้อนกลับ ตัวอย่างเช่น สมมติว่าเรกคอร์ดเริ่มต้นเป็นของ เจ้าของ 1 และการดำเนินการเรียงซ้อนต้องการเปลี่ยนเป็น เจ้าของ 2 หากหนึ่งในเรกคอร์ดที่เกี่ยวข้องดาวน์สตรีมได้เปลี่ยนเป็น เจ้าของ 3 หรือถูกลบก่อนการล็อคเกิดขึ้น งานทั้งหมดจะย้อนกลับ | สำหรับการกำหนด การดำเนินการจะทำงานในโหมดเขียนทับการเปลี่ยนค่าปัจจุบันไปเป็นค่าใหม่โดยยึดตามความสัมพันธ์แบบหลัก-รอง ไม่มีงานที่ล้มเหลวเนื่องจากค่าเดิมไม่ตรงกัน สำหรับการลบ หากเรกคอร์ดที่คาดว่าเป็นส่วนหนึ่งของชุดหายไป เรกคอร์ดทั้งหมดจนถึงจุดล้มเหลวจะถือว่าเสร็จสมบูรณ์ ผู้ใช้หรือผู้ดูแลระบบสามารถเรียกใช้งานที่ล้มเหลวได้อีกครั้ง ซึ่งคำนวณงานใหม่เพื่อดำเนินการต่อโดยไม่มีเรกคอร์ดหายไป สำหรับการผสาน หากมีปัญหาเกี่ยวกับเรกคอร์ดที่ขาดหายไป งานจะถูกลองใหม่และดำเนินการโดยไม่มีเรกคอร์ดที่ขาดหายไป |
โหมดอะซิงโครนัส
เมื่อธุรกรรมแบบเรียงซ้อนตรงตามเกณฑ์สำหรับระเบียนที่รวมอยู่ ระเบียนจะได้รับการประมวลผลแบบอะซิงโครนัส
Operation | Threshold |
---|---|
กำหนด | 1,000 เรกคอร์ด. |
Delete | 5,000 เรกคอร์ด. |
การรวมเข้าด้วยกัน | 1,000 เรกคอร์ด. |
การติดตามกระบวนการการดำเนินการแบบอะซิงโครนัส
ผู้ดูแลระบบสามารถตรวจสอบการประมวลผลของการดำเนินการแบบอะซิงโครนัสในพื้นที่ การตั้งค่า
ลงชื่อเข้าใช้ใน ศูนย์จัดการ Power Platform
เลือก สภาพแวดล้อม ในพื้นที่นำทาง จากนั้นเลือกสภาพแวดล้อมที่คุณต้องการ
เลือก การตั้งค่า ขยาย การตรวจสอบและบันทึก แล้วเลือก งานระบบ
การดำเนินการแบบเรียงซ้อนจะปรากฏขึ้นในมุมมอง System Job
ในการดูการดำเนินการเฉพาะแบบเรียงซ้อน ในตัวเลือก มุมมอง เลือก การดำเนินการแบบเรียงซ้อน
การดำเนินการแบบเรียงซ้อนมีสถานะใดสถานะหนึ่งต่อไปนี้:
- เสร็จสมบูรณ์: แบตช์ทั้งหมดของธุรกรรมแบบเรียงซ้อนได้รับการเสร็จสมบูรณ์แล้ว
- กำลังดำเนินการ: การเปลี่ยนแปลงแบบเรียงซ้อนกำลังดำเนินการอยู่
- ล้มเหลว: หลังจากลองใหม่หลายครั้ง การเปลี่ยนแปลงแบบเรียงซ้อนบางส่วนก็ล้มเหลว
หมายเหตุ
มันเป็นไปไม่ได้ที่จะยกเลิกงานเรียงซ้อนแบบอะซิงโครนัส คุณต้องรอให้เสร็จสมบูรณ์โดยระบุสถานะ เสร็จ หรือ ล้มเหลว
การเปิดการดำเนินการเรียงซ้อนแสดง:
มีการลองใหม่เกิดขึ้นกี่ครั้งสำหรับธุรกรรมนั้นๆ
วันที่และเวลาที่สร้างและเสร็จสิ้น
ใครเป็นคนสร้างงาน
ข้อความใดๆ ที่เกี่ยวข้องกับงาน เช่นเหตุผลความล้มเหลว หรือข้อยกเว้น
ธุรกรรมแบบเรียงซ้อนใดที่สามารถประมวลผลแบบอะซิงโครนัสได้
ธุรกรรมแบบเรียงซ้อนของกำหนด ลบ และผสานสามารถประมวลผลแบบอะซิงโครนัสได้
หมายเหตุ
ธุรกรรมอื่นๆ เช่น ใช้ร่วมกัน/ยกเลิกการใช้งานร่วมกัน มุมมองค่าสะสม และทดแทนอยู่ระหว่างการตรวจสอบสำหรับการประมวลผลแบบอะซิงโครนัส
การแก้ไขปัญหาเกี่ยวกับการดำเนินการเรียงซ้อนแบบอะซิงโครนัส
เมื่องานเรียงซ้อนแบบซิงโครนัสล้มเหลว งานเหล่านั้นจะหยุดและย้อนกลับการเปลี่ยนแปลงทั้งหมดเพื่อไม่ให้เรกคอร์ดใดรวมการเปลี่ยนแปลงที่ร้องขอ นี่อาจเป็นกระบวนการที่ใช้เวลานานเนื่องจากการย้อนกลับอาจใช้เวลานานตราบเท่าที่ความพยายามเดิมและการลองดำเนินการใหม่จะเริ่มต้นอีกครั้งจากเรกคอร์ดแรก
การดำเนินการแบบอะซิงโครนัสจะลองใหม่หลายครั้งหากเกิดความล้มเหลว ในกรณีส่วนใหญ่ การลองงานซ้ำจะทำให้เกิดความสำเร็จและงานสามารถดำเนินต่อไปจนเสร็จได้ ในบางกรณีที่เกิดขึ้นไม่บ่อย การลองซ้ำจะไม่สามารถแก้ปัญหาได้ ในกรณีนี้งานอะซิงโครนัสจะหยุดชั่วคราว และผู้ดูแลระบบและผู้ใช้สามารถแก้ไขปัญหาและเริ่มงานต่อจากจุดที่หยุดชั่วคราวได้
สาเหตุทั่วไปของความล้มเหลวในการดำเนินการเรียงซ้อน
สาเหตุทั่วไปของความล้มเหลวในการประมวลผลการดำเนินการเรียงซ้อน ได้แก่:
- ข้อยกเว้นของปลั๊กอิน
- ข้อยกเว้นด้านความปลอดภัย
ข้อยกเว้นของปลั๊กอิน
ปลั๊กอินจะถูกเพิ่มเข้าไปในการประมวลผลการดำเนินการแบบเรียงซ้อนเพื่อดำเนินการเฉพาะเมื่อมีการเปลี่ยนแปลงในเรกคอร์ด เช่น การส่งอีเมลหรือทริกเกอร์การอัปเดตอื่นในเรกคอร์ดอื่น สิ่งเหล่านี้อาจจัดเตรียมโดยบุคคลที่สามหรือพัฒนาขึ้นเอง หากปลั๊กอินสร้างข้อยกเว้น การดำเนินการเรียงซ้อนจะล้มเหลว ขึ้นอยู่กับเหตุผลของข้อยกเว้น การลองใหม่อาจช่วยแก้ปัญหาได้ หากงานเรียงซ้อนแบบอะซิงโครนัสหยุดชั่วคราวเนื่องจากความล้มเหลว ให้ตรวจสอบความถูกต้องของปลั๊กอินทั้งหมดที่เกี่ยวข้องกับการดำเนินการเพื่อให้แน่ใจว่าไม่มีการสร้างข้อยกเว้น เมื่อแก้ไขแล้วสามารถกลับมาทำงานต่อได้
ข้อยกเว้นด้านความปลอดภัย
ข้อยกเว้นด้านความปลอดภัยเกิดขึ้นเมื่อผู้ใช้ที่ทำการดำเนินการเรียงซ้อนมีสิทธิ์ไม่เพียงพอที่จะทำการเปลี่ยนแปลงกับเรกคอร์ดตั้งแต่หนึ่งเรกคอร์ดขึ้นไป หรือผู้ใช้ถูกปิดใช้งานหรือลบออกจากระบบ
หากผู้ใช้ยังคงอยู่ในระบบ ให้ตรวจสอบว่าพวกเขามีสิทธิ์ที่จำเป็นในการแก้ไขเรกคอร์ด และพวกเขามีสิทธิ์ในการดำเนินการตามที่ระบุ หลังจากแก้ไขได้แล้ว ให้กลับมาทำงานต่อ
หากผู้ใช้ถูกปิดใช้งานหรือลบออกจากระบบ การเปิดใช้งานอีกครั้งหรือการเพิ่มผู้ใช้ใหม่จะช่วยแก้ปัญหาและสามารถดำเนินการกับงานต่อได้ อย่างไรก็ตาม หากผู้ใช้ต้องถูกลบหรือปิดใช้งานหรือไม่ควรมีสิทธิ์ในการดำเนินการหรือเรกคอร์ด งานควรถูกยกเลิกและเริ่มต้นใหม่โดยบุคคลที่มีสิทธิ์ที่เหมาะสม
สำหรับปัญหาอื่นๆ เกี่ยวกับงานที่ล้มเหลว โปรดติดต่อฝ่ายสนับสนุนของ Microsoft ข้อมูลเพิ่มเติม: ภาพรวมของการสนับสนุน
การแก้ไขปัญหาการลบไฟล์ระหว่างการผสานแบบเรียงซ้อน
หากคุณประสบความล้มเหลวในการดำเนินการรวมแบบเรียงซ้อนเนื่องจากไฟล์ถูกลบในระหว่างการรันงาน คุณสามารถข้ามการตรวจสอบหลักได้ วิธีนี้ช่วยให้การผสานของคุณดำเนินต่อไปได้แม้ว่าจะมีคนลบเรกคอร์ดออกจากชุดในขณะที่งานกำลังทำงานอยู่เบื้องหลัง เมื่อคุณเลือกที่จะรวมเรกคอร์ดที่ด้านล่างของหน้าต่างผสาน ให้ล้างตัวเลือก การตรวจสอบหลักถูกเปิดใช้งานโดยค่าเริ่มต้น ยกเลิกการเลือกเพื่อละเว้นการตรวจสอบหลัก
ผสานตัวอย่างเรกคอร์ด
ลองนึกภาพว่าคุณมีบัญชีที่มีความสัมพันธ์ในการติดต่อ ซึ่งมีความสัมพันธ์กับคำสั่งซื้อ คุณต้องการรวมเรกคอร์ดบัญชีสองรายการ
หากงานทำงานสำเร็จ การผสานจะกำหนดผู้ติดต่อที่เกี่ยวข้องและคำสั่งซื้อทั้งหมดไปยังบัญชีเป้าหมาย
หากในระหว่างกระบวนการผสานเรกคอร์ด ผู้ใช้รายอื่นลบเรกคอร์ดผู้ติดต่อที่เกี่ยวข้อง แต่ยังคงมีเรกคอร์ดคำสั่งที่เกี่ยวข้องกับเรกคอร์ดผู้ติดต่อ งานผสานจะล้มเหลวเนื่องจากเรกคอร์ดหลักไปย่อยหายไป หากคุณเลือกที่จะข้ามการตรวจสอบหลักในระหว่างการรวมเรกคอร์ด คำสั่งซื้อที่มีเรกคอร์ดการติดต่อที่ขาดหายไปจะถูกรวมเข้าในเรกคอร์ดบัญชีเป้าหมาย อย่างไรก็ตามจะไม่มีการกำหนดเรกคอร์ดผู้ติดต่อที่เกี่ยวข้องให้กับบัญชีเป้าหมายและงานจะเสร็จสมบูรณ์
ผสานทำให้เกิดการล็อกที่ป้องกันการเปลี่ยนแปลงการเข้าถึงอื่นๆ
การดำเนินการรวมที่เกี่ยวข้องให้สิทธิ์การเข้าถึงตารางรองแก่เจ้าของใหม่ ในการทำเช่นนี้ การดำเนินการ Cascade Merge จะเข้าถึงและทำการเปลี่ยนแปลงกับ Principal Object Table ซึ่งต้องมีการล็อก ถ้าการดำเนินการผสานมีหลายเรกคอร์ด (ขึ้นอยู่กับความสัมพันธ์แบบเรียงซ้อน) การล็อกนี้อาจอยู่ในตำแหน่งที่เพิ่มขึ้นเป็นระยะเวลานาน ซึ่งอาจส่งผลให้เกิดข้อผิดพลาดหากการดำเนินการพยายามให้หรือเพิกถอน การเข้าถึงของเรกคอร์ดที่ไม่เกี่ยวข้องในขณะที่การผสานกำลังทำงาน ในกรณีนี้ ให้ลองดำเนินการผสานในช่วงนอกเวลาทำการเพื่อให้การบล็อกลดลง