Class SubscriptionCommandSender


  • public class SubscriptionCommandSender
    extends Object
    Send commands via the subscription endpoint. The commands are send as single messages (instead of request-response). To ensure that a command is received, each command has an ACK command which is send by the receiver.
    +---------------------------------------------------------------------------------------------------------------------------------------+
    |                                                       Message Partition                                                               |
    |                                                                                                                                       |
    +-----------^----------------+---------------------------+----------------------^-------------------------^------------------+----------+
                |                |                           |                      |                         |                  |
        +-------+------+  +------+--------+       +----------+---------+  +---------+---------+       +-------+-------+  +-------+--------+
        | Open Message |  | Open Workflow |       | Correlate Workflow |  | Correlate Message |       | Close Message |  | Close Workflow |
        | Subscription |  | Instance Sub  |       | Instance Sub       |  | Subscription      |       | Subscription  |  | Instance Sub   |
        +-------+------+  +------+--------+       +----------+---------+  +---------+---------+       +-------+-------+  +-------+--------+
                |                |                           |                      |                         |                  |
     +----------+----------------v---------------------------v----------------------+-------------------------+------------------v----------+
     |                                                                                                                                      |
     |                                                   Workflow Instance Partition                                                        |
     +--------------------------------------------------------------------------------------------------------------------------------------+
     
    • Constructor Detail

      • SubscriptionCommandSender

        public SubscriptionCommandSender​(int senderPartition,
                                         PartitionCommandSender partitionCommandSender)
    • Method Detail

      • openMessageSubscription

        public boolean openMessageSubscription​(int subscriptionPartitionId,
                                               long workflowInstanceKey,
                                               long elementInstanceKey,
                                               org.agrona.DirectBuffer bpmnProcessId,
                                               org.agrona.DirectBuffer messageName,
                                               org.agrona.DirectBuffer correlationKey,
                                               boolean closeOnCorrelate)
      • openWorkflowInstanceSubscription

        public boolean openWorkflowInstanceSubscription​(long workflowInstanceKey,
                                                        long elementInstanceKey,
                                                        org.agrona.DirectBuffer messageName,
                                                        boolean closeOnCorrelate)
      • correlateWorkflowInstanceSubscription

        public boolean correlateWorkflowInstanceSubscription​(long workflowInstanceKey,
                                                             long elementInstanceKey,
                                                             org.agrona.DirectBuffer bpmnProcessId,
                                                             org.agrona.DirectBuffer messageName,
                                                             long messageKey,
                                                             org.agrona.DirectBuffer variables,
                                                             org.agrona.DirectBuffer correlationKey)
      • correlateMessageSubscription

        public boolean correlateMessageSubscription​(int subscriptionPartitionId,
                                                    long workflowInstanceKey,
                                                    long elementInstanceKey,
                                                    org.agrona.DirectBuffer bpmnProcessId,
                                                    org.agrona.DirectBuffer messageName)
      • closeMessageSubscription

        public boolean closeMessageSubscription​(int subscriptionPartitionId,
                                                long workflowInstanceKey,
                                                long elementInstanceKey,
                                                org.agrona.DirectBuffer messageName)
      • closeWorkflowInstanceSubscription

        public boolean closeWorkflowInstanceSubscription​(long workflowInstanceKey,
                                                         long elementInstanceKey,
                                                         org.agrona.DirectBuffer messageName)
      • rejectCorrelateMessageSubscription

        public boolean rejectCorrelateMessageSubscription​(long workflowInstanceKey,
                                                          org.agrona.DirectBuffer bpmnProcessId,
                                                          long messageKey,
                                                          org.agrona.DirectBuffer messageName,
                                                          org.agrona.DirectBuffer correlationKey)