The Open Anzo Project

Semantic Application Middleware

Ticket #107 (closed defect: fixed)

Opened 1 year ago

Last modified 1 year ago

Anzo datasetServices with multiple subscriptions to a single queue dropping notifications

Reported by: jpbetz Assigned to: jpbetz
Priority: major Milestone: 3.0 milestone1
Component: openanzo Version: 3.0
Keywords: stability Cc: mroy

Description (Last modified by jpbetz)

Matt explained this issue to me. It is the cause of failures to testNotification1.

ActiveMQ does not guarantee message order to a datasetService (client) receiving messages off a queue if that datasetService has multiple subscriptions to that queue. What this means for us is that, for notification transactions, we currently cannot be sure all the commands (adds, removes, acl changes, etc..) are received before the end transaction message is received.

Matt has proposed a solution where we simply limit each datasetService to one subscription per queue. Since ActiveMQ *does* guarantee order when there is only a single subscription everything will then arrive in order and nothing will get dropped on account of message order.

The mechanics for limiting a datasetService to a single subscription per queue is a bit involved.

  1. Extend NotificationRegistrationServiceListener to register/unregister selector-trackers as part of the registration/unregistration process.
  2. Modify ServerToClientUpdatePublisher to be able to select quad patterns so it can perform the selector-tracker filtering the datasetService registered for.

Change History

11/12/07 17:04:30 changed by jpbetz

  • status changed from new to assigned.

11/12/07 18:53:26 changed by jpbetz

  • description changed.

11/13/07 15:32:11 changed by jpbetz

(In [795]) re #107 reviewer: mroy

disable TestUpdate?.testNotification1 pending fix to #107.

11/13/07 23:28:31 changed by jpbetz

  • description changed.

11/16/07 14:43:15 changed by jpbetz

(In [820]) re #107 reviewer: mroy

Use only a single consumer for notification.

11/16/07 14:43:27 changed by jpbetz

(In [821]) re #107 reviewer: mroy

Use only a single consumer for notification.

11/16/07 14:43:41 changed by jpbetz

(In [822]) re #107 reviewer: mroy

Use only a single consumer for notification.

11/16/07 14:43:47 changed by jpbetz

(In [823]) re #107 reviewer: mroy

Use only a single consumer for notification.

11/16/07 14:43:58 changed by jpbetz

(In [824]) re #107 reviewer: mroy

Use only a single consumer for notification.

11/16/07 15:29:04 changed by jpbetz

Scaling this can be done by adding multiple ServerToClientUpdatePublishers?. The "session data" for the clients, namely their authentication and selector tracker data, will need to be shared among all of the ServerToClientUpdatePublishers?.

01/28/08 01:50:23 changed by jpbetz

  • status changed from assigned to closed.
  • resolution set to fixed.
Copyright © 2007 - 2008 OpenAnzo.org