Good point. And to that, I'm now trying and getting better results with the
code below. Deleting nevertheless just isn't as snappy as I thought.
public void deleteTmpBlobAll_FromTask(long taskId) {
log.info("BlobTmpJdo.deleteTmpBlobAll(): deleting all the tmp blob records.
taskId=" + taskId);
doSomeExist(); // output the total to log
int i=0;
do { // batch query, otherwise timeout happens
log.info("deleteTmpBlobAll_FromTask() loop index i=" + i);
delteTmpBlobAll(1000);
i++;
} while (doSomeExist());
new Db_Feed_TaskQue(sp).deleteTask(taskId);
}
public void delteTmpBlobAll(int limit) {
PersistenceManager pm = sp.getPersistenceManager();
try {
javax.jdo.Query q = pm.newQuery("select id from " +
BlobTmpJdo.class.getName());
q.setRange(0, limit);
List<String> results = (List<String>) q.execute();
Iterator<String> itr = results.iterator();
while(itr.hasNext()) {
String id = itr.next();
delete(id);
}
} catch (Exception e) {
log.severe("delteTmpBlobAll(): ERROR: " + e.toString());
e.printStackTrace();
} finally {
pm.close();
}
}
public boolean doSomeExist() {
int size = 0;
PersistenceManager pm = sp.getPersistenceManager();
try {
javax.jdo.Query q = pm.newQuery("select id from " +
BlobTmpJdo.class.getName());
q.setRange(0, 10);
List<String> ids = (List<String>) q.execute();
size = ids.size();
q.closeAll();
} catch (Exception e) {
log.log(Level.SEVERE, "", e);
} finally {
pm.close();
}
log.info("BlobTmpJdo.getTotal() total=" + size);
boolean b = false;
if (size > 0) {
b = true;
}
return b;
}
private void delete(String id) {
PersistenceManager pm = sp.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
BlobTmpJdo btj = pm.getObjectById(BlobTmpJdo.class, id);
pm.deletePersistent(btj);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
Brandon Donnelson
http://gwt-examples.googlecode.com
--
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/google-appengine-java/-/VDJ3ZHRMUDZXVE1K.
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.