เรียกใช้ธุรกรรม

Invoke Transactions ใช้เพื่อเรียกใช้คำสั่งคลัสเตอร์อย่างน้อย 1 รายการในโหนดเป้าหมาย ซึ่งคล้ายกับการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ที่ทำกับคำสั่งที่กำหนดไว้ในคลัสเตอร์

ในลักษณะที่คล้ายกับธุรกรรมการเขียน ธุรกรรมการเรียกใช้จะรองรับธุรกรรมแบบกำหนดเวลาและแบบไม่กำหนดเวลา โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับธุรกรรมที่กำหนดเวลาในส่วนการดำเนินการที่กำหนดเวลาและไม่ได้กำหนดเวลา

เรียกใช้ธุรกรรมแบบไม่จำกัดเวลา

ลำดับการดำเนินการของธุรกรรมการเรียกใช้แบบไม่กำหนดเวลา
รูปที่ 1: ธุรกรรมการเรียกใช้แบบไม่กำหนดเวลา

เรียกใช้การดำเนินการตามคำขอ

ทิศทาง: ผู้เริ่ม -> เป้าหมาย

ในการดำเนินการนี้ ผู้เริ่มต้นจะให้ข้อมูลต่อไปนี้แก่เป้าหมาย ซึ่งคล้ายกับการดำเนินการตามคำขออ่านและการดำเนินการตามคำขอเขียน

  • คำขอเรียกใช้: รายการเส้นทางไปยังคำสั่งคลัสเตอร์ รวมถึงอาร์กิวเมนต์ที่ไม่บังคับสำหรับคำสั่งที่ชื่อว่าฟิลด์คำสั่ง
  • คำขอแบบกำหนดเวลา: แฟล็กที่ระบุว่าการดำเนินการนี้เป็นส่วนหนึ่งของธุรกรรมการเรียกใช้แบบกำหนดเวลาหรือไม่
  • ระงับการตอบกลับ: แฟล็กที่ระบุว่าควรระงับการดำเนินการเรียกใช้การตอบกลับหรือไม่
  • รหัสการโต้ตอบ: จำนวนเต็มที่ใช้สำหรับการจับคู่การดำเนินการเรียกใช้คำขอกับการดำเนินการเรียกใช้การตอบกลับ

เรียกใช้การดำเนินการตอบกลับ

ทิศทาง: เป้าหมาย -> ผู้เริ่มต้น

หลังจากที่ Target ได้รับ Invoke Request Action แล้ว ระบบจะสรุปธุรกรรมด้วย Invoke Response Action ที่มีข้อมูลต่อไปนี้

  • Invoke Responses: รายการการตอบกลับคำสั่งหรือสถานะสำหรับคำขอเรียกใช้ทุกรายการที่ส่ง
  • รหัสการโต้ตอบ: จำนวนเต็มที่ใช้สำหรับการจับคู่การดำเนินการตอบกลับการเรียกใช้กับการดำเนินการคำขอการเรียกใช้

ข้อจำกัดการเรียกใช้แบบไม่จำกัดเวลา

การดำเนินการ Invoke Request อาจเป็น Groupcast แต่ในกรณีนี้ต้องตั้งค่าแฟล็ก Suppress Response เหตุผลก็คือ หากไม่ทำเช่นนั้น เครือข่ายอาจถูกครอบงำด้วยการตอบกลับพร้อมกันจากสมาชิกทุกคนในกลุ่ม

หากต้องการเปิดใช้ลักษณะการทำงานนี้ เส้นทางที่ใช้ในรายการคำขอเรียกใช้สามารถมีกลุ่มได้ และอาจมีไวลด์การ์ดได้ด้วย แต่ต้องอยู่ในช่องปลายทางเท่านั้น นอกจากนี้ หากการดำเนินการเป็นการแคสต์แบบกลุ่ม ธุรกรรมนี้จะสิ้นสุดลงโดยไม่มีการตอบกลับ

ธุรกรรมการเรียกใช้ที่กำหนดเวลาไว้

ธุรกรรมการเรียกใช้แบบกำหนดเวลาจะเริ่มต้นด้วยการดำเนินการคำขอแบบกำหนดเวลาเช่นเดียวกับธุรกรรมการเขียนแบบกำหนดเวลา

ลำดับการดำเนินการของธุรกรรมการเรียกใช้แบบกำหนดเวลา
รูปที่ 2: ธุรกรรมการเรียกใช้แบบกำหนดเวลา

การดำเนินการตามคำขอแบบกำหนดเวลา

ทิศทาง: ผู้เริ่ม -> เป้าหมาย

ผู้เริ่มต้นจะเริ่มธุรกรรมโดยส่งการดำเนินการนี้ซึ่งประกอบด้วยข้อมูลต่อไปนี้

  • Timeout: จำนวนมิลลิวินาทีที่ธุรกรรมนี้อาจยังคงเปิดอยู่ ในช่วงเวลานี้ การดำเนินการถัดไปที่ส่งโดยผู้เริ่มต้นจะถือว่าถูกต้อง

เมื่อได้รับการดำเนินการตามคำขอแบบกำหนดเวลาแล้ว เป้าหมายต้องรับทราบการดำเนินการตามคำขอแบบกำหนดเวลาด้วยการดำเนินการตอบกลับสถานะ เมื่อผู้เริ่มต้นได้รับการดำเนินการตอบกลับสถานะที่รายงานว่าไม่มีข้อผิดพลาด ผู้เริ่มต้นจะส่งการดำเนินการเรียกใช้คำขอ

เรียกใช้การดำเนินการตามคำขอ

เหมือนกับเรียกใช้การดำเนินการตามคำขอที่อธิบายไว้ก่อนหน้านี้

เรียกใช้การดำเนินการตอบกลับ

เหมือนกับการดำเนินการเรียกใช้การตอบกลับที่อธิบายไว้ก่อนหน้านี้

ข้อจำกัดการเรียกใช้ตามเวลา

คุณสามารถเรียกใช้คำสั่งเรียกใช้ทั้งหมดในการโต้ตอบแบบกำหนดเวลาได้ การดำเนินการคำขอแบบกำหนดเวลา การดำเนินการคำขอเรียกใช้ และการดำเนินการตอบกลับการเรียกใช้เป็นแบบ Unicast เท่านั้น จึงไม่สามารถใช้เป็น Groupcast ในธุรกรรมการเรียกใช้แบบกำหนดเวลาได้

การดำเนินการเรียกใช้คำขอรองรับการใช้เส้นทางกับกลุ่ม รวมถึงไวลด์การ์ด แต่การดำเนินการเรียกใช้การตอบกลับไม่รองรับการใช้ไวลด์การ์ด