Hello JDO team,

I just came back from holidays and it seems I'm too late as you already voted. But still, I'd like to mention an issue about the feature detachOnCommit: When using a JDO implementation within a J2EE server, this feature IMHO doesn't make much sense, because the transaction might be committed/rolled back later than the object needs to be detached. This is especially true when using XA transactions. Additionally, it is possible (at least some JDO implementations support it) to read data without having any transaction (i.e. non-transactional read).

In both cases, it would be necessary to have additionally a detachOnClose feature. Means, whatever happens first (commit transaction or close persistence manager) should cause the objects to be detached.

To make things clearer, I'd like to shortly explain the handling difference between non-J2EE and J2EE: When using JDO outside a managed environment, the workflow works like this:

  1. open the persistence manager
  2. open a transaction
  3. work with JDO objects
  4. commit/rollback the transaction
  5. close the persistence manager

All the above steps are performed explicitely by the programmer.

Within a J2EE container (i.e. within an EJB method), things are different:

  1. J2EE opens a transaction for you _implicitely_ (the transaction
     might involve many servers; thus it might already exist before the
     EJB method is triggered)
  2. obtain a persistence manager
  3. work with JDO objects
  4. close the persistence manager
  5. J2EE commits/rolls back the transaction _implicitely_

A JDO object will be sent to the client using native serialization either between 4 and 5 (with XA transactions) or after 5 - though I'm not completely sure, it might be always between 4 and 5 even with local transactions.

JPOX fortunately already supports detachOnClose as a vendor extension, but IMHO this feature deserves to be integrated into the JDO standard.

Best regards, Marco :-)

--
______________________________________________
Marco Schulze                   NightLabs GmbH
                               Rehlingstr. 6d
                               79100 Freiburg
                               Germany

eMail:  [EMAIL PROTECTED]
Fon:    +49-761-2 111 793
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
______________________________________________

Reply via email to