Я новичок в Google Engine Engine.Я читаю о App Engine со вчерашнего дня.У меня есть сомнения относительно транзакции записи во время истечения времени ожидания запроса.
Предположим, что я создаю 10000 объектов и пытаюсь сохранить их с помощью одной транзакции (при условии, что DatastoreService похож на транзакцию Hibernate) вот так
String greeting = "test";
String guestBookName = "default";
DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();
Key guestBookKey = KeyFactory.createKey("GuestBook", guestBookName);
for(int i=0;i<10000;i++)
{
Entity entity = new Entity("Greeting", guestBookKey);
entity.setProperty("date", new Date());
entity.setProperty("greeting", greeting);
datastoreService.put(entity);
}
Предположим, что после сохранения 1000 объектов по истечении времени ожидания запроса будет удалено 1000 объектов?
Я запустил этот код в обработчике приложения после сохранения 1164 объектов вистекло время ожидания запроса данных.Я получил эту ошибку
....Uncaught exception from servlet
com.google.apphosting.api.DeadlineExceededException: This request (0000000000000000)
started at 2011/10/20 07:18:36.726 UTC and was still executing at 2011/10/20 07:19:36.143 UTC.....
Объекты не были удалены из хранилища данных.Кроме того, я прочитал здесь , что
Хранилище данных может выполнять несколько операций в одной транзакции.По определению, транзакция не может быть успешной, если каждая операция в транзакции не завершится успешно.Если какая-либо из операций завершается неудачно, транзакция автоматически откатывается.Это особенно полезно для распределенных веб-приложений, где несколько пользователей могут одновременно получать доступ к одним и тем же данным или манипулировать ими.
Может кто-нибудь, пожалуйста, помогите мне разобраться в этом ясно.
Спасибо всем заранее.