A bug in my code sent my tasks out of control, so I'm temporarily at my limit for the day. One of my database inserts is in a transaction that kicks off a task, per instructions here:
http://code.google.com/appengine/docs/java/taskqueue/overview.html#Task_Within_Transactions As expected, the task queuing failed because of my quota issues, but my database insert succeeded. This isn't good. I verified that I'm calling rollback on my transaction, but my record it still making it to the database. What am I doing wrong!?!? here's the basic logic: Transaction tx = pm.currentTransaction(); try{ tx.begin() Foo foo = pm.getObjectById(...) foo.setBar(1); pm.makePersistent(foo); // queue up task (throws an exception) tx.commit(); } finally { if(tx.isActive()) { // i verified that this is happening with a log statement tx.rollback(); } } I verified that rollback is happening with a lot statement in that last block, but like I said, the database gets the record. My temporary fix will be to try to queue up the task before committing the record to the database, but then I'm relying on the task killing itself later on when a database exception occurs. Am I using transactions wrong? -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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?hl=en.
