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

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

Invoke Transactions รองรับ Timed และ Untimed Transactions ในลักษณะเดียวกับ Write Transactions โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับ Timed Transactions ในส่วน Timed and Untimed Actions

Untimed Invoke Transaction

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

Invoke Request Action

ทิศทาง: Initiator -> Target

ใน Action นี้ Initiator จะให้ข้อมูลต่อไปนี้แก่ Target ซึ่งคล้ายกับ Read Request Action และ Write Request Action

  • Invoke Requests: รายการเส้นทาง ไปยัง Cluster Command รวมถึงอาร์กิวเมนต์ที่ไม่บังคับสำหรับคำสั่ง ซึ่งมีชื่อว่า Command Fields
  • Timed Request: แฟล็กที่ระบุว่า Action นี้เป็นส่วนหนึ่งของ Timed Invoke Transaction หรือไม่
  • Suppress Response: แฟล็กที่ระบุว่าควรระงับ Invoke Response Action หรือไม่
  • Interaction ID: จำนวนเต็มที่ใช้เพื่อจับคู่ Invoke Request Action กับ Invoke Response Action

Invoke Response Action

ทิศทาง: Target -> Initiator

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

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

ข้อจำกัดของ Untimed Invoke

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

หากต้องการเปิดใช้ลักษณะการทำงานนี้ เส้นทางที่ใช้ในรายการ Invoke Requests อาจมีกลุ่ม หรืออาจมีไวลด์การ์ด แต่ไวลด์การ์ดจะใช้ได้เฉพาะในช่อง Endpoint เท่านั้น นอกจากนี้ หาก Action เป็น groupcast ธุรกรรมนี้จะสิ้นสุดลงโดยไม่มีการตอบกลับ

Timed Invoke Transactions

Timed Invoke Transactions จะเริ่มต้นด้วย Timed Request Action เช่นเดียวกับ Timed Write Transactions

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

Timed Request Action

ทิศทาง: Initiator -> Target

Initiator จะเริ่มธุรกรรมโดยส่ง Action นี้ที่มีข้อมูลต่อไปนี้

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

เมื่อได้รับ Timed Request Action แล้ว Target ต้องรับทราบ Timed Request Action ด้วย Status Response Action เมื่อ Initiator ได้รับ Status Response Action ที่รายงานว่าไม่มีข้อผิดพลาด Initiator จะส่ง Invoke Request Action

Invoke Request Action

เหมือนกับ Invoke Request Action ที่อธิบายไว้ก่อนหน้านี้

Invoke Response Action

เหมือนกับ Invoke Response Action ที่อธิบายไว้ก่อนหน้านี้

ข้อจำกัดของ Timed Invoke

คำสั่งเรียกใช้ทั้งหมดอาจเรียกใช้ในการโต้ตอบแบบกำหนดเวลา Timed Request Action, Invoke Request Action และ Invoke Response Action เป็นแบบ Unicast-เท่านั้น จึงใช้เป็น groupcast ใน Timed Invoke Transactions ไม่ได้

Invoke Request Action รองรับการใช้เส้นทางที่มีกลุ่ม รวมถึงไวลด์การ์ด แต่ Invoke Response Action ไม่รองรับการใช้ไวลด์การ์ด