Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Given that a Subscription Create Event has been received by the NCMP and that NCMP is going to forward that subscription to multiple DMI Plugins.

  1. The NCMP with create a new thread will create a new thread which will wait 30 seconds.
  2. The NCMP will add an entry to a hazelcast Map<String,Set<String>> with the clientID and subscriptionName combined as a key and the DMI Plugin names which the subscription has been forwarded to
  3. Every time a DMI responds to NCMP, NCMP persists the response. The Map entry is for the subscription is then checked
    1. if the subscription entry still exists in the Map, the NCMP removes the DMI Plugin name from the Set of the relevant Map entry.
      1. if the Set is now empty, NCMP removes the Map entry and compiles & send a full outcome response
    2. if the subscription entry does not exists in the Map, the NCMP compiles & sends a partial outcome response
  4. If the Wait thread completes the 30s countdown,
    1. if the map entry for the subscription exists in the map the thread removes the map entry from the Map. It then sends a partial outcome response
    2. if the map entry for the subscription does not exist in the map, the thread does nothing