Invoke Transactions ใช้เพื่อเรียกใช้ Cluster Command อย่างน้อย 1 รายการใน Target Node ซึ่งคล้ายกับการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ที่ส่งไปยังคำสั่งที่กำหนดไว้ในคลัสเตอร์
Invoke Transactions รองรับ Timed และ Untimed Transactions ในลักษณะเดียวกับ Write Transactions โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับ Timed Transactions ในส่วน Timed and Untimed Actions
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
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 ไม่รองรับการใช้ไวลด์การ์ด