Instance resurrection PreviousNext
Data Distribution Service (DDS) Forum > DDS Technical Forum >
Message/Author
Next message John Hawkins  posted on Tuesday, December 11, 2007 - 02:31 pm
Hi,

I'm trying to understand when instance updates can be seen post disposal.

I think that I read that an instance can only be resurrected when the writer that disposed it sends an update (in EXCLUSIVE mode)

I was just wondering
a) is this correct - and is this the only time it can be resurrected?

b) What happens if this writer dies and can't get back to the network but the back-up owner wants to resurrect the instance?

many thanks,
john.
Next message Reinier Torenbeek  posted on Wednesday, December 12, 2007 - 02:45 am
Hi John,

Your statement is not completely correct. In case of EXCLUSIVE ownership, an instance can be resurrected by the dataWriter that is the owner of the instance.
So I think your questions can be answered by explaining how ownership of an instance is managed.
The spec states:
The owner is always set to be the highest-strength
DataWriter object among the
ones currently “active” (as determined by
the LIVELINESS QoS).

So for any instance, the active dataWriter with the highest strength in the system that is active for an instance is the owner and can resurrect any instance. A writer is 'active for an instance' if it has registered that instance, either explicitly with the register_instance() method or implicitly by writing data
Ownership can be transferred from one writer to another by the following events:

* A new writer with a higher STRENGTH value becomes active for the instance. This new writer then becomes the owner.
* An existing writer is active for an instance and changes its STRENGTH policy value to a value higher than the current owner. This changed writer then becomes the owner.
* The current owner unregisters the instance (becomes unactive for the instance). The writer (if any available) that is active for the instance and that has the highest STRENGTH value in the system becomes owner. Unregistering can happen either explicitly with the unregister_instance() method, or implicity when the dataWriter is deleted or implicitly when the writer does not assert its liveliness in time.

With the last bullet, your question b) has been answered as well. A writer that dies, does not assert its liveliness in time and loses ownership over all instances it owns. Ownership is transferred to another writer, which can resurrect the instance.

Reinier
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Post as "Anonymous"
Enable HTML code in message
Automatically activate URLs in message
Action: