I am reading the following
http://code.google.com/appengine/docs/java/datastore/transactions.html
Take the following code example.
import javax.jdo.Transaction;
import ClubMembers; // not shown
// ...
// PersistenceManager pm = ...;
Transaction tx = pm.currentTransaction();
try {
tx.begin();
ClubMembers members = pm.getObjectById(ClubMembers.class,
"k12345");
members.incrementCounterBy(1);
pm.makePersistent(members);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
(Now, I assume there will be only one servlet instance in entire web
environment. Multiple thread will be spawn to access the code in the
one servlet instance, for multiple web request.)
(1) Does this mean, any code block in between tx.begin and tx.commit,
there will be only one thread can access at a time? Is the tx.being
and tx.commit is similar to syncrhonized keyword?
(2) For incrementCounterBy, do we have the explicitly declare the
method header as synchronized?
(3) If two thread execute pm.getObjectById(ClubMembers.class,
"k12345");, are they going to get the same object instance?
--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---