Craig L Russell wrote:
Hi Jörg,
There are no tests planned for this behavior.
The issue is that it violates the contract of detachment. Detachment
is intended to provide a "long-running optimistic transaction" in
which conflicts are detected in a subsequent transaction.
If an instance is detached and then the underlying datastore instance
is deleted, this is a consistency violation that should be detected
by the transaction semantics. For example, in an order system, if a
customer is in a long-running transaction with "groovy beads" in the
shopping cart, and the administrators decide that "groovy beads" are
no longer to be sold, you want the order that contains "groovy beads"
to be rejected when the shopping cart arrives at checkout. You don't
want that order to reinsert "groovy beads" into the database.
Craig
Hello Craig,
I agree that there are use cases where this kind of datastore-protection
makes sense. But unfortunately this behaviour prevents working with more
than one datastore (or at least makes it VERY complicated). Thus, it's
IMHO a question of weighing which feature is more important.
For us it's essential to work with many datastores and to easily copy
complex object graphs between them. Your use case actually exists in our
system, too. But the object "groovy beads" must not be deleted from the
datastore anymore after it has been "published" once, because the object
already has an important history at that time (e.g. the fact who has
published it when and who has decided when to take it off the
catalogue). Though this is only application specific and my personal
background, I still think that the case you described is more seldom
than data replication and it's easier to work-around.
There would be another possibility: Give each datastore a unique ID
(autogenerate it during creation/initialization of the datastore) and
have the consistency-protection only active when you try to persist an
object graph that was detached from exactly the same datastore.
Best regards, Marco :-)
--
______________________________________________
Initiative baden-württembergischer Unternehmen
gegen Patentierbarkeit von Software
*** http://bw-gegen-softwarepatente.de ***
______________________________________________
Marco Schulze NightLabs GmbH
Rehlingstr. 6d
79100 Freiburg
Germany
eMail: [EMAIL PROTECTED]
Fon: +49-761-2 111 793
Mobile: +49-172-212 63 80
Fax: +49-761-2 111 798
WWW: http://www.NightLabs.de
Geschäftsführung:
Marco Schulze <[EMAIL PROTECTED]>
Niklas Schiffler <[EMAIL PROTECTED]>
Eintragung:
Amtsgericht Freiburg, HRB 6186
______________________________________________