Hi, here is introducing my JDO problem.

Is it issue of datanucleus or me?
Should I separate codes with txn when getting
 something from datastore with same PM?

Thanks.

---
・What steps will reproduce the problem?

1.get PersistenceManager as pm.
2.invoke pm.getObjectById or iterate some query result outside txn.
3.txn.begin
4.invoke pm.getObjectById
5.change entity's properties.
6.txn.commit

*Same issue occured if kind of entity is different between 2 and 4 or
not.

・What is the expected output? What do you see instead?

expected: It starts DatastoreService's transaction.
instead: It does not start DatastoreService's transaction.
          (DatastoreXAResource#start is not invoked.)

・What version of the product are you using? On what operating system?

SDK 1.2.5 on Windows XP/eclipse 3.4

・Please provide any additional information below.

If once invoke getObjectById or something outside txn,
ManagedConnection instance is reused from ManagedConnectionPool
at ConnectionManagerImpl by invoking allocateConnection.
If that pooled connection was made at when it is not in txn,
ConnectionManagerImpl#enlistResource is not invoked so it does not
start Datastore's transaction.
Also it does not register transaction listener so there is no way to
remove this connection except Query#execute or closing PM.
---

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to