Re: [appengine-java] Re: favicon.ico weirdness
On 26 August 2010 05:28, stanlick stanl...@gmail.com wrote: I do not have a frameset. Yes you do - view source on your page. You have probably set up a naked domain with your registrar who host this page and include your website as a frame within that page. If you cannot modify this container frameset then I don't think you will be able to define an icon for the page. Is that something being injected by GAE? Also, why the does this page icon work in 2 out of 3 cases? The frameset is only used in one case out of the 3 -- 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-j...@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.
[appengine-java] [Perhaps OT] Oracle vs. Google : Java still a viable language?
Hi all, Some of you may consider this off-topic (apologies to those that think it is OT), but I think it's pertinent to generate this discussion: given Oracle's lawsuit against Google http://bit.ly/bMEL6A , is Java a viable programming language anymore? I think the threat of Oracle adversely affecting the Java community has just become more real. Motivation: I am at the early stages of implementing a web app on GAE using Java, but if I need to switch to Python, I shouldn't delay it any more. I understand that Java SE and EE are licensed differently from Java ME, nonetheless... Oracle's doesn't enjoy a very good reputation in the open source world, and I don't trust them, though up to this point it was just an intrinsic mistrust, without any firm reason behind it. Java development as a language has also been held up/very slow over the past few years. Oracle's stewardship only makes things more iffy (are those the correct spellings :-)?). What I like about Java SE: the fantastic tutorial (even today it can sometimes come in handy), javadoc, simplicity, no useless syntactic sugar (unlike everything designed by Microsoft). On the other hand, Java EE... is a morass... Anyway, what do you guys think? -- 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-j...@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.
[appengine-java] Re: How to do update Statement in GQL for Java
Try GQLExt java library: http://audao.spoledge.com/doc-gae-features.html#gqlext Vaclav On Aug 26, 5:10 am, TP Project TP Project tpmpproj...@gmail.com wrote: Hi can any1 teach me how to use update statement in GQL?? thanks in advance -- 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-j...@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.
[appengine-java] appengine dev at offline mode
when I switched off my internet, I got exception following: 27/08/2010 3:09:58 PM com.google.appengine.tools.info.RemoteVersionFactory getVersion INFO: Unable to access https://appengine.google.com/api/updatecheck?runtime=javarelease=1.3.6timestamp=1281725222api_versions=['1.0'] java.net.UnknownHostException: appengine.google.com at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java: 550) at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java: 141) at sun.net.NetworkClient.doConnect(NetworkClient.java:163) at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) at sun.net.www.protocol.https.HttpsClient.init(HttpsClient.java: 272) at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:329) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java: 172) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java: 801) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java: 158) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java: 1049) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java: 234) at java.net.URL.openStream(URL.java:1010) at com.google.appengine.tools.info.RemoteVersionFactory.getVersion(RemoteVersionFactory.java: 76) at com.google.appengine.tools.info.UpdateCheck.checkForUpdates(UpdateCheck.java: 99) at com.google.appengine.tools.info.UpdateCheck.doNagScreen(UpdateCheck.java: 174) at com.google.appengine.tools.info.UpdateCheck.maybePrintNagScreen(UpdateCheck.java: 142) at com.google.appengine.tools.development.DevAppServerMain $StartAction.apply(DevAppServerMain.java:150) at com.google.appengine.tools.util.Parser $ParseResult.applyArgs(Parser.java:48) at com.google.appengine.tools.development.DevAppServerMain.init(DevAppServerMain.java: 113) at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java: 89) 27/08/2010 3:09:59 PM com.google.apphosting.utils.jetty.JettyLogger info INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger 27/08/2010 3:09:59 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml Is there a way dev at offline mode? wish reply.. -- 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-j...@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.
Re: [appengine-java] The title of email displays wrongly in localization
same here: http://code.google.com/p/googleappengine/issues/detail?id=3497 -- 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-j...@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.
[appengine-java] Re: Query result sets are not modifiable
You'll have to do something like the following: - Iterate over the new contact methods and persist them. - Retrieve the Person object. - Iterate over the newly persisted contact methods and add their keys to the Person's list of contact methods At the moment you're just trying to add objects to a filtered result set of random contact methods, which doesn't make much sense :) On Aug 26, 12:54 am, Shaun shaunc...@gmail.com wrote: I have no idea how this doesn't seem to come up anywhere when I search, but for some reason when I try to add an item to a ListKey that has been pulled out of the datastore I get this error: java.lang.UnsupportedOperationException: Query result sets are not modifiable at org.datanucleus.store.query.AbstractQueryResult.add(AbstractQueryResult.java: 221) at com.appointment.actions.ContactActions.updateContactMethods(ContactActions.java: 1186) My code looks like this: public ListContactMethod updateContactMethods(ListContactMethod pPassedContactMethods,ListKey pDatastoreContactMethodKeys) { PersistenceManager pm = PMF.get().getPersistenceManager(); Query query = pm.newQuery(ContactMethod.class); query.setFilter(key == :keyList); query.execute(pDatastoreContactMethodKeys); ListContactMethod pDataStoreContactMethods = (ListContactMethod) pm.newQuery(query).execute(pDatastoreContactMethodKeys); for (ContactMethod lContactMethod : pPassedContactMethods) { pDataStoreContactMethods.add(lContactMethod);} pm.close(); return pDataStoreContactMethods; } The goal is that when someone adds a new ContactMethod the system picks that up and adds it to the set of Keys reference in that Person's ListKey contactsmethods to allow the managing of an unowned relationship. Thanks ahead of time for any help! -- 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-j...@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.
[appengine-java] Re: DatastoreService.getCurrentTransaction() throws NoSuchElementException even after PersistenceManager.currentTransaction().begin()
Check to make sure you have all of the test Jar files in your classpath - I remember having this error and I was missing one of them (can't remember which one I'm afraid...) On Aug 26, 10:38 pm, Arnold arnold.mi...@gmail.com wrote: When using JDO persistence manager to begin a transaction, DatastoreService().getCurrentTransaction() seems to fail. A unit test: -- public class TransactionTest{ private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); @Before public void setUp() { helper.setUp(); } @After public void tearDown() { helper.tearDown(); } @Test public void test(){ PersistenceManager pm = PMF.get().getPersistenceManager(); Transaction tx = pm.currentTransaction(); try{ tx.begin(); DatastoreServiceFactory.getDatastoreService().getCurrentTransaction(); tx.commit(); }finally{ if(pm.currentTransaction().isActive()){ pm.currentTransaction().rollback(); } pm.close(); } }} -- The test fails with stack trace: -- java.lang.IllegalStateException: java.util.NoSuchElementException at com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionStackImpl.java: 70) at com.google.appengine.api.datastore.DatastoreServiceImpl.getCurrentTransaction(DatastoreServiceImpl.java: 307) at TransactionTest.test(TransactionTest.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod $1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java: 41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java: 20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 73) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java: 46) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 31) at org.junit.runners.ParentRunner.run(ParentRunner.java:220) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java: 46) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: 38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java: 390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 197) Caused by: java.util.NoSuchElementException at java.util.LinkedList.getFirst(LinkedList.java:109) at com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionStackImpl.java: 68) ... 26 more -- As a result, the example shown here: http://code.google.com/appengine/docs/java/taskqueue/overview.html#Ta... does not work. Can someone help shade some light on what I may be missing? Thanks. -- 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-j...@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.
[appengine-java] Re: Not able to save child object in one-to-many relationship
Your problem seems to be related to this open gwt issue: http://code.google.com/p/google-web-toolkit/issues/detail?id=4976 Please star the issue to raise its attention. The workaround is not using 1:n relationships with GWT + GAE + JDO. Cheers, Fred On 26 Aug., 23:12, hampole rhamp...@gmail.com wrote: I am trying to develop GAE application. I am using the latest GWT SDK(2.0.4) AND App Engine SDK(1.3.6) on Eclipse3.4. I am having problem in saving a child object Appointment and the parent object is Employee. Each Employee has many appointments and and each appointment has one employee associated with. I have pasted the Client code and the server code here. Please help and see what I am missing here. I tried many different ways without success. When I retrieve the appointments, the employee is always null. I appreciate any help or some example that I can try. Thanks. //Client code public class AppointmentCreateWidget extends Composite { private static AppointmentCreateWidgetUiBinder uiBinder = GWT .create(AppointmentCreateWidgetUiBinder.class); interface AppointmentCreateWidgetUiBinder extends UiBinderWidget, AppointmentCreateWidget { } @UiField Button btnSaveAppointment; @UiField TextBox tbxSubject; @UiField ListBox lbxRoom; @UiField ListBox lbxHost; @UiField DateBox dbAppointStartDate; @UiField DateBox dbAppointEndDate; @UiField ListBox lbxStartTimeHr; @UiField ListBox lbxEndTimeHr; @UiField ListBox lbxStartTimeMi; @UiField ListBox lbxEndTimeMi; private final AppointmentServiceAsync appointService = (AppointmentServiceAsync) GWT.create(AppointmentService.class); private final ListVisitor visitors = new ArrayListVisitor(); public AppointmentCreateWidget() { initWidget(uiBinder.createAndBindUi(this)) } @UiHandler(btnSaveAppointment) void onClick(ClickEvent e) { addAppointment(); } private void addAppointment() { String subject = tbxSubject.getText().toUpperCase().trim(); Date startdate = dbAppointStartDate.getValue(); Date enddate = dbAppointEndDate.getValue(); String starttime = lbxStartTimeHr.getValue(lbxStartTimeHr.getSelectedIndex()).toString() + lbxStartTimeMi.getValue(lbxStartTimeMi.getSelectedIndex()); String endtime = lbxEndTimeHr.getValue(lbxEndTimeHr.getSelectedIndex()).toString() + lbxEndTimeMi.getValue(lbxEndTimeMi.getSelectedIndex()); String room = lbxRoom.getValue(lbxRoom.getSelectedIndex()).toString(); String key = lbxHost.getValue(lbxHost.getSelectedIndex()); DateTimeFormat dateFormat = DateTimeFormat.getShortDateFormat(); try { createAppointment(subject, startdate, enddate, starttime, endtime, key, visitors); } catch(Exception ex) { Window.alert(Save Appointment failed: + ex.toString()); } } private void createAppointment(String subject, Date startdate, Date enddate, String starttime, String endtime, String empID, ListVisitor visitor) { appointService.addAppointment(subject,startdate, enddate, starttime, endtime, empID, visitor, new AsyncCallbackVoid() { public void onFailure(Throwable error) { Window.alert(Unable to create Appointment. + error.getMessage()); } public void onSuccess(Void ignore) { } }); } } //ServiceImpl public class AppointmentServiceImpl extends RemoteServiceServlet implements AppointmentService { /** * */ private static final long serialVersionUID = 1L; public void addAppointment(String subject, Date appointStartDate, Date appointEndDate, String startTime, String endTime, String empID, ListVisitor visitors) throws NotLoggedInException { PersistenceManager pm = getPersistenceManager(); //get employee Employee emp = pm.getObjectById(Employee.class, empID); Appointment newAppoint = new Appointment(subject, appointStartDate, appointEndDate, startTime, endTime); newAppoint.setVisitors(visitors); newAppoint.setEmployee(emp); emp.getAppointments().add(newAppoint); try { pm.makePersistent(emp); } finally { pm.close(); } } private PersistenceManager getPersistenceManager() { return PMF.get().getPersistenceManager(); } } //Employee Bean @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = true) public class Employee implements IsSerializable, IValidatable { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName=datanucleus,
[appengine-java] Re: JDO: Null parent on some children objects
Hi, the problem is this line: owner = new First(); Beware that the only way you should ever store a Second object is: myFirstObject.getList().add(mySecondObject); pm.makePersistent(myFirstObject); since Second.owner is mapped it's automatically populated by the persistance manager. Hope this helps, Fred On 26 Aug., 17:38, cghersi cristiano.ghe...@gmail.com wrote: Hi Diego, thank you but unfortunately I strictly followed what stated in that page, and the result is the problem I posted!! Any other hint? Thank you very much, Best Cghersi On 26 Ago, 16:09, Diego Fernandes penet...@gmail.com wrote: Hi, i may find something herehttp://code.google.com/intl/en/appengine/docs/java/datastore/relation... []'s Diego On 26 ago, 04:42, cghersi cristiano.ghe...@gmail.com wrote: Hi everybody, I'm struggling with a strange problem with JDO. I've got two PersistenCapable classes, one having a Collection of objects of the second, something like this: class First { �...@persistent �...@primarykey Long id; �...@persistent(mappedby=owner) ArrayListSecond list = new ArrayListSecond(); ArrayListSecond getList() { if (list == null) list=new ArrayListSecond(); return list; } ... } class Second { �...@persistent �...@primarykey Key id; �...@persistent First owner; First getOwner() { if (owner==null) owner = new First(); return owner; ... } In another class I need to print the owner of all my First objects, so I do: First obj = ...; ArrayListSecond list = obj.getList(); for (Second s : list) { System.out.println(s.getOwner()); } In this loop, I find some Second object having null owner, and I cannot understand why. Now I have several questions about my data modelling: 1) Do I need to mark any field with (defaultFetchGroup = true) annotation? 2) Does the check on null object (e.g. if (owner==null) owner = new First();) in the getter methods results in any strange behavior? 3) Does the assignment on definition of objects (e.g. ArrayListSecond list = new ArrayListSecond();) results in any strange behavior? 4) Do I need to add any other annotation to owner field of Second class? Thank you very much for your help!! Best regards cghersi -- 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-j...@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.
[appengine-java] Re: The title of email displays wrongly in localization
Have try encoding to quoted printable this way: msg.setSubject(MimeUtility.encodeText(_subject, UTF-8, Q)); http://groups.google.com/group/google-appengine-java/browse_thread/thread/7479beb80a97992f/36156bbdee1b9fa2?lnk=gstq=encode+subject#36156bbdee1b9fa2 On Aug 26, 3:23 am, Tony genesoft...@gmail.com wrote: Hello, I have a problem to dispay the title of email if it includes Chinese. I tried: [1] ... String title = 测试标题; message.setSubject(title); ... And [2] ... String title = 测试标题; title = MimeUtility.encodeText(title); message.setSubject(title); ... Both titles are displayed as ?. If the program works in Tomcat (without GAE/GWT), the 2nd is ok. Please let me know, if you have any idea to handle the title localization issue? Thanks in advance, Tony -- 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-j...@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.
[appengine-java] Re: Best practice modeling a 1:n user-relationship with List properties
Hi, my recommendation would be to use ListString . In your reasoning for query 2 be aware of the lazy loading that JDO performs in the background to retrieve the related objects. Query one and two are similar (if nickname is a field of MyAppUser): Query q = pm.newQuery(MyAppUser.class); q.setFilter(userKey == userKeyParam); q.declareParameters(String userKeyParam); q.execute(appUserKey); will give you a listMyAppUser of his friends. Hope this helps, Fred On 24 Aug., 12:53, androidDeveloper stepmas...@googlemail.com wrote: Hi all, I am trying to model a 1:n relationship between different myAppUser instances on Google App Engines Datastore. MyAppUser has a reference to 0...n other users (friends). MyAppUser is currently defined as showed below: class MyAppUser { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String primaryKey; @Persistent private User user @Persistent private ListUser friendsList; Or alternative private ListString friendsList; ... } I have two queries: Query 1: I want to select all MyAppUsers where a specific User is in the friendsList. Query 2: I want to get all nicknames of the friends of a specific MyAppUser. This can be achieved by getting a MyAppsUser by id and then calling for each user user.getNickname(). Question query 1: Is a query with a filter on ListUser friendsList faster or slower than a query with a filter on ListString friendsList or is it equal? For query 2 I would say that a ListUser friendsList is faster, because I have direct access to the nicknames. With only the id stored in the friendsList, I have to make another query for each friend in the list to get his nickname. -- 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-j...@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.
Re: [appengine-java] [Perhaps OT] Oracle vs. Google : Java still a viable language?
Motivation: I am at the early stages of implementing a web app on GAE using Java, but if I need to switch to Python, I shouldn't delay it any more. Anyway, what do you guys think? IANAL but you asked so here goes. I think you are fine using java on GAE. My guess is that since appengine is a derivative of OpenJDK that the (SE) patent grant holds for appengine as long as it doesn't implement new core functionality which the OpenJDK does not. In such a case, I don't believe the patent grant holds. You'd have to read the grant more closely or an analysis of it to know whether only partially implementing it carries the grant. Even if Oracle were to argue partial implementation does not, I believe the GPL2 combined with a patent grant for that code means effectively that Oracle can not say what people do with the GPL2 code, only that new functionality may not carry the protection. So, were GAE to fork OpenJDK and implement new core java classes (this does not mean new classes using java but a re-implementation of java with new functionality), then it's possible that we may see patent issues. Given the issues with Android though, I suspect Google will stay in the clear and I do not believe the GAE SDK does this. That said, if you try to take the SDK jars and set up an equivalent of GAE that runs on your phone (note: I am not talking about an app on a phone that connects to GAE, I am talking about *running* a GAE instance on a mobile phone) then perhaps you may have trouble as Oracle reserved the rights to mobile devices for non-GPL versions of Java. Nobody would or could ever do that I think, and so am sure it won't ever be an issue. Don't listen to me though. Really don't. Shawn -- 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-j...@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.
[appengine-java] Re: DatastoreService.getCurrentTransaction() throws NoSuchElementException even after PersistenceManager.currentTransaction().begin()
Thanks Simon. I think I have all the test jar files that might be needed: appengine-testing.jar appengine-api.jar appengine-api-labs.jar appengine-api-stubs.jar appengine-local-runtime.jar The same failure happens in development mode too in which no test jar files are needed. Any more hints appreciated. Arnold. On Aug 27, 11:41 am, Simon qila...@gmail.com wrote: Check to make sure you have all of the test Jar files in your classpath - I remember having this error and I was missing one of them (can't remember which one I'm afraid...) On Aug 26, 10:38 pm, Arnold arnold.mi...@gmail.com wrote: When using JDO persistence manager to begin a transaction, DatastoreService().getCurrentTransaction() seems to fail. A unit test: -- public class TransactionTest{ private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()); @Before public void setUp() { helper.setUp(); } @After public void tearDown() { helper.tearDown(); } @Test public void test(){ PersistenceManager pm = PMF.get().getPersistenceManager(); Transaction tx = pm.currentTransaction(); try{ tx.begin(); DatastoreServiceFactory.getDatastoreService().getCurrentTransaction(); tx.commit(); }finally{ if(pm.currentTransaction().isActive()){ pm.currentTransaction().rollback(); } pm.close(); } }} -- The test fails with stack trace: -- java.lang.IllegalStateException: java.util.NoSuchElementException at com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionSta ckImpl.java: 70) at com.google.appengine.api.datastore.DatastoreServiceImpl.getCurrentTransacti on(DatastoreServiceImpl.java: 307) at TransactionTest.test(TransactionTest.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java: 25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod $1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable. java: 15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.j ava: 41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.ja va: 20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.ja va: 73) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.ja va: 46) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41) at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java: 31) at org.junit.runners.ParentRunner.run(ParentRunner.java:220) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestRe ference.java: 46) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java: 38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR unner.java: 467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR unner.java: 683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner .java: 390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne r.java: 197) Caused by: java.util.NoSuchElementException at java.util.LinkedList.getFirst(LinkedList.java:109) at com.google.appengine.api.datastore.TransactionStackImpl.peek(TransactionSta ckImpl.java: 68) ... 26 more -- As a result, the example shown here:
[appengine-java] Re: Best practice modeling a 1:n user-relationship with List properties
Hi, be aware of the lazy loading that JDO performs Question 1: Do we have lazy loading on lists of Core Value Types like Google account (com.google.appengine.api.users.User) too? Question 2a: If a myAppUser has for example 1000 friends. Then with ListString I would have to read the referenced myAppUser's for each userId in the list to get the nicknames. To get all nicknames in one query I would have to put a where condition on the userId of each user and concatenate the conditions with Or, ||. I read, that a query has a limit of 30 Ors. So I would have to split the Query in 30-packages. Is this a good solution or would it be better to hold the nicknames in a separate denormalized list in myAppUser? (Problem with the denormalized nickname-list would be, that I would have to update the list each time a user changes his nickname) Question 2b: Would it be too much overhead to read the nicknames in a separate Query for each userId? Or is this a bad solution because of the datastore calling overhead? Question 3: Is it possible to put a query-filter on a subfield of a Google account user object (for example the nickname-field)? In my tests I was not successful... On 27 Aug., 11:13, Frederik Pfisterer pfiste...@gmail.com wrote: Hi, my recommendation would be to use ListString . In your reasoning for query 2 be aware of the lazy loading that JDO performs in the background to retrieve the related objects. Query one and two are similar (if nickname is a field of MyAppUser): Query q = pm.newQuery(MyAppUser.class); q.setFilter(userKey == userKeyParam); q.declareParameters(String userKeyParam); q.execute(appUserKey); will give you a listMyAppUser of his friends. Hope this helps, Fred On 24 Aug., 12:53, androidDeveloper stepmas...@googlemail.com wrote: Hi all, I am trying to model a 1:n relationship between different myAppUser instances on Google App Engines Datastore. MyAppUser has a reference to 0...n other users (friends). MyAppUser is currently defined as showed below: class MyAppUser { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) @Extension(vendorName = datanucleus, key = gae.encoded-pk, value = true) private String primaryKey; @Persistent private User user @Persistent private ListUser friendsList; Or alternative private ListString friendsList; ... } I have two queries: Query 1: I want to select all MyAppUsers where a specific User is in the friendsList. Query 2: I want to get all nicknames of the friends of a specific MyAppUser. This can be achieved by getting a MyAppsUser by id and then calling for each user user.getNickname(). Question query 1: Is a query with a filter on ListUser friendsList faster or slower than a query with a filter on ListString friendsList or is it equal? For query 2 I would say that a ListUser friendsList is faster, because I have direct access to the nicknames. With only the id stored in the friendsList, I have to make another query for each friend in the list to get his nickname. -- 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-j...@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.
[appengine-java] Re: [Perhaps OT] Oracle vs. Google : Java still a viable language?
Thanks for sharing your thoughts Shawn. IANAL either :-). I am worried about not just Java on GAE (though that's the more immediate concern), but also about Java's future in general. Don't want to be stuck with a proprietary language that has bad stewardship and a belligerent, short-sighted, greedy corporate owner. Also, Java on GAE seems to be a secondary citizen to Python :-)... that makes me question even more whether I should be learning Python ;-). On Aug 27, 2:13 pm, Shawn Brown big.coffee.lo...@gmail.com wrote: Motivation: I am at the early stages of implementing a web app on GAE using Java, but if I need to switch to Python, I shouldn't delay it any more. Anyway, what do you guys think? IANAL but you asked so here goes. I think you are fine using java on GAE. My guess is that since appengine is a derivative of OpenJDK that the (SE) patent grant holds for appengine as long as it doesn't implement new core functionality which the OpenJDK does not. In such a case, I don't believe the patent grant holds. You'd have to read the grant more closely or an analysis of it to know whether only partially implementing it carries the grant. Even if Oracle were to argue partial implementation does not, I believe the GPL2 combined with a patent grant for that code means effectively that Oracle can not say what people do with the GPL2 code, only that new functionality may not carry the protection. So, were GAE to fork OpenJDK and implement new core java classes (this does not mean new classes using java but a re-implementation of java with new functionality), then it's possible that we may see patent issues. Given the issues with Android though, I suspect Google will stay in the clear and I do not believe the GAE SDK does this. That said, if you try to take the SDK jars and set up an equivalent of GAE that runs on your phone (note: I am not talking about an app on a phone that connects to GAE, I am talking about *running* a GAE instance on a mobile phone) then perhaps you may have trouble as Oracle reserved the rights to mobile devices for non-GPL versions of Java. Nobody would or could ever do that I think, and so am sure it won't ever be an issue. Don't listen to me though. Really don't. Shawn -- 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-j...@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.
Re: [appengine-java] Re: [Perhaps OT] Oracle vs. Google : Java still a viable language?
I am worried about not just Java on GAE (though that's the more immediate concern), but also about Java's future in general. Don't want to be stuck with a proprietary language that has bad stewardship and a belligerent, short-sighted, greedy corporate owner. Well, as long as Red Hat/JBoss stays what it is now, I think Java is safe. Red Hat has become an important member of the Java community since they acquired JBoss and they were (I think) one of the first contributors to OpenJDK. All the products of JBoss rely on Java, so if, at some point, Oracle tries to really close down Java, my guess is Red Hat will then fork OpenJDK. You could definitely argue that Red Hat is yet an other greedy corporate owner but it is one that has always understood the importance of openess. Nonetheless, it seems that Oracle is harming Java and even if Java can certainly survives it, it's not a good thing anyway. -- Romain PELISSE, The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it -- Terry Pratchett http://belaran.eu/ -- 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-j...@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.
[appengine-java] Re: [Perhaps OT] Oracle vs. Google : Java still a viable language?
On Aug 27, 4:54 pm, Romain Pelisse bela...@gmail.com wrote: You could definitely argue that Red Hat is yet an other greedy corporate owner but it is one that has always understood the importance of openess. I don't mind companies making bucket-loads of money just so long as they don't do it (directly or indirectly) at the expense of the end- users and developers (by trying to shut down competition by hook or by crook). Nonetheless, it seems that Oracle is harming Java and even if Java can certainly survives it, it's not a good thing anyway. Yeah, I think most would agree that Oracle ownership of Java isn't good. Regards, markVgti -- 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-j...@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.
[appengine-java] Re: JDO: Null parent on some children objects
Hi Frederik! Sorry for my ignorance, I tougth that the right way to save a Second object was: pm.makePersistent(mySecondObject); myFirstObject.getList().add(mySecondObject); pm.makePersistent(myFirstObject); while if I understood your explanation I don't have to invoke pm.makePersistent() on mySeconObject, is it? I also put in all my getter methods a check on null object, in that way: class Second { @Persistent @PrimaryKey Key id; @Persistent First owner; @Persistent ListString tags; First getOwner() { if (owner==null) owner = new First(); return owner; } ListString getTags() { if (tags==null) tags= new ArrayListString(); return tags; } ... } Do I have to remove all the check of the type if (obj==null) obj=new...? Thank you very much for your help! Best cghersi On 27 Ago, 10:58, Frederik Pfisterer pfiste...@gmail.com wrote: Hi, the problem is this line: owner = new First(); Beware that the only way you should ever store a Second object is: myFirstObject.getList().add(mySecondObject); pm.makePersistent(myFirstObject); since Second.owner is mapped it's automatically populated by the persistance manager. Hope this helps, Fred On 26 Aug., 17:38, cghersi cristiano.ghe...@gmail.com wrote: Hi Diego, thank you but unfortunately I strictly followed what stated in that page, and the result is the problem I posted!! Any other hint? Thank you very much, Best Cghersi On 26 Ago, 16:09, Diego Fernandes penet...@gmail.com wrote: Hi, i may find something herehttp://code.google.com/intl/en/appengine/docs/java/datastore/relation... []'s Diego On 26 ago, 04:42, cghersi cristiano.ghe...@gmail.com wrote: Hi everybody, I'm struggling with a strange problem with JDO. I've got two PersistenCapable classes, one having a Collection of objects of the second, something like this: class First { �...@persistent �...@primarykey Long id; �...@persistent(mappedby=owner) ArrayListSecond list = new ArrayListSecond(); ArrayListSecond getList() { if (list == null) list=new ArrayListSecond(); return list; } ... } class Second { �...@persistent �...@primarykey Key id; �...@persistent First owner; First getOwner() { if (owner==null) owner = new First(); return owner; ... } In another class I need to print the owner of all my First objects, so I do: First obj = ...; ArrayListSecond list = obj.getList(); for (Second s : list) { System.out.println(s.getOwner()); } In this loop, I find some Second object having null owner, and I cannot understand why. Now I have several questions about my data modelling: 1) Do I need to mark any field with (defaultFetchGroup = true) annotation? 2) Does the check on null object (e.g. if (owner==null) owner = new First();) in the getter methods results in any strange behavior? 3) Does the assignment on definition of objects (e.g. ArrayListSecond list = new ArrayListSecond();) results in any strange behavior? 4) Do I need to add any other annotation to owner field of Second class? Thank you very much for your help!! Best regards cghersi -- 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-j...@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.
[appengine-java] Security issue with Google account on Gwt-client site
Hi all, as written in thread http://groups.google.com/group/google-appengine-java/browse_thread/thread/3033d853fc0a7209/3e56400d7859387d?lnk=gstq=google+account+gwt+client+#3e56400d7859387d it is not possible to use the Google Account class (com.google.appengine.api.users.User) on GWT-client site. A solution would be to create a DTO to transfer the data to the client. My Question: Is it allowed to transfer the data from Google account objects to client, particularly the userId? I try to implement some kind of checkSession method, which brings a Google account to client site if a user is logged in. The Google account is then stored on client site in a member variable for further use. -- 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-j...@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.
[appengine-java] Datastore Not Persisting Object and No Error That I can find
I have the following code: public String addBankAccountTransaction(String lBankAccountTransactionJson) { log.info(\n\nBankAccountActions::addBankAccountTransaction:start); GsonBuilder gsonb = new GsonBuilder(); DateDeserializer ds = new DateDeserializer(); gsonb.registerTypeAdapter(Date.class, ds); GoogleKeyDeserializer gkd = new GoogleKeyDeserializer(); gsonb.registerTypeAdapter(Key.class, gkd); Gson gson = gsonb.create(); BankAccountTransaction lBankAccountTransaction = gson.fromJson(lBankAccountTransactionJson, BankAccountTransaction.class); PersistenceManager pm = PMF.getSecond().getPersistenceManager(); Transaction tx = pm.currentTransaction(); try { tx.begin(); pm.makePersistent(lBankAccountTransaction); tx.commit(); log.info(BankAccountActions::addBankAccountTransaction:lBankAccountTransaction.getKey::Committed transction); } catch (Exception e) { log.info(BankAccountActions::addBankAccountTransaction:Exception + e.getStackTrace()); } finally { if (tx.isActive()) { log.info(BankAccountActions::addBankAccountTransaction:lBankAccountTransaction.getKey::transction FAILED!); tx.rollback(); } pm.close(); } log.info(BankAccountActions::addBankAccountTransaction:lBankAccountTransaction.getKey() + lBankAccountTransaction.getKey()); log.info(BankAccountActions::getBankAccounts:end\n\n); return ok; } It throws no error, but the makePersistent doesn't seem to complete/ work and the key is subsequently null and it doesn't show up in the datastoreviewer so I assume it's not there. Maybe I don't have logging setup correctly, my logging.properties looks like: java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter # Set the default logging level for INFO loggers to WARNING .level = INFO # Set the default logging level for ORM, specificFINEy, to INFO DataNucleus.JDO.level=INFO DataNucleus.Persistence.level=FINE DataNucleus.Cache.level=INFO DataNucleus.MetaData.level=INFO DataNucleus.General.level=INFO DataNucleus.Utility.level=INFO DataNucleus.Transaction.level=FINE DataNucleus.Datastore.level=FINE DataNucleus.ClassLoading.level=INFO DataNucleus.Plugin.level=INFO DataNucleus.ValueGeneration.level=INFO DataNucleus.Enhancer.level=INFO DataNucleus.SchemaTool.level=INFO Any ideas why this isn't saving and why I don't see any errors? I am using SDK 1.3.6. Thanks! -- 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-j...@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.
[appengine-java] Re: Security issue with Google account on Gwt-client site
The User object contains just the email address of the user. Just send it to the client in a String and null if the user is not logged in. Then you can just check with (username != null) if the user is logged in. Uwe On Aug 27, 6:25 pm, androidDeveloper stepmas...@googlemail.com wrote: Hi all, as written in threadhttp://groups.google.com/group/google-appengine-java/browse_thread/th... it is not possible to use the Google Account class (com.google.appengine.api.users.User) on GWT-client site. A solution would be to create a DTO to transfer the data to the client. My Question: Is it allowed to transfer the data from Google account objects to client, particularly the userId? I try to implement some kind of checkSession method, which brings a Google account to client site if a user is logged in. The Google account is then stored on client site in a member variable for further use. -- 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-j...@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.
[appengine-java] How to debug blobstore uploads with 405
Hello all, I am trying to upload to the blobstore from an installed c# client, not a browser. So far, I've only tried the development server... I can see in the datastore viewer that the blobs are being correctly created because there are corresponding blobinfo objects that correctly reflect the uploaded data, but my client gets a 405 response from the blobstore and my success url never gets invoked. How does one go about debugging this? I don't see any kind of output from the blobstore on the eclipse console, so I'm not sure where to start. Thanks, Mike -- 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-j...@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.
[appengine-java] Re: Not able to save child object in one-to-many relationship
Thanks for the info. I looked at the issue and many other people having problem of saving child object in a one-to-many relation. I am new to this and I don't understand completely. Is there any work- around to save a child object. If anyone can show me an example, I appreciate. This is really frustrating as this is basic functionality in any relational data. In my case, Employee object already exists and I want to create a new appointment and associate with the employee object. If there is a different way of doing this, please help. This has taken quite a lot of time and if this is not available in GWT, I don't think I can use Google apps for the development of our application. I appreciate any help. Thanks, Ravi On Aug 27, 1:51 am, Frederik Pfisterer pfiste...@gmail.com wrote: Your problem seems to be related to this open gwt issue:http://code.google.com/p/google-web-toolkit/issues/detail?id=4976 Please star the issue to raise its attention. The workaround is not using 1:n relationships with GWT + GAE + JDO. Cheers, Fred On 26 Aug., 23:12, hampole rhamp...@gmail.com wrote: I am trying to develop GAE application. I am using the latest GWT SDK(2.0.4) AND App Engine SDK(1.3.6) on Eclipse3.4. I am having problem insavinga childobjectAppointment and the parentobject is Employee. Each Employee has many appointments and and each appointment has one employee associated with. I have pasted the Client code and the server code here. Please help and see what I am missing here. I tried many different ways without success. When I retrieve the appointments, the employee is always null. I appreciate any help or some example that I can try. Thanks. //Client code public class AppointmentCreateWidget extends Composite { private static AppointmentCreateWidgetUiBinder uiBinder = GWT .create(AppointmentCreateWidgetUiBinder.class); interface AppointmentCreateWidgetUiBinder extends UiBinderWidget, AppointmentCreateWidget { } @UiField Button btnSaveAppointment; @UiField TextBox tbxSubject; @UiField ListBox lbxRoom; @UiField ListBox lbxHost; @UiField DateBox dbAppointStartDate; @UiField DateBox dbAppointEndDate; @UiField ListBox lbxStartTimeHr; @UiField ListBox lbxEndTimeHr; @UiField ListBox lbxStartTimeMi; @UiField ListBox lbxEndTimeMi; private final AppointmentServiceAsync appointService = (AppointmentServiceAsync) GWT.create(AppointmentService.class); private final ListVisitor visitors = new ArrayListVisitor(); public AppointmentCreateWidget() { initWidget(uiBinder.createAndBindUi(this)) } @UiHandler(btnSaveAppointment) void onClick(ClickEvent e) { addAppointment(); } private void addAppointment() { String subject = tbxSubject.getText().toUpperCase().trim(); Date startdate = dbAppointStartDate.getValue(); Date enddate = dbAppointEndDate.getValue(); String starttime = lbxStartTimeHr.getValue(lbxStartTimeHr.getSelectedIndex()).toString() + lbxStartTimeMi.getValue(lbxStartTimeMi.getSelectedIndex()); String endtime = lbxEndTimeHr.getValue(lbxEndTimeHr.getSelectedIndex()).toString() + lbxEndTimeMi.getValue(lbxEndTimeMi.getSelectedIndex()); String room = lbxRoom.getValue(lbxRoom.getSelectedIndex()).toString(); String key = lbxHost.getValue(lbxHost.getSelectedIndex()); DateTimeFormat dateFormat = DateTimeFormat.getShortDateFormat(); try { createAppointment(subject, startdate, enddate, starttime, endtime, key, visitors); } catch(Exception ex) { Window.alert(Save Appointment failed: + ex.toString()); } } private void createAppointment(String subject, Date startdate, Date enddate, String starttime, String endtime, String empID, ListVisitor visitor) { appointService.addAppointment(subject,startdate, enddate, starttime, endtime, empID, visitor, new AsyncCallbackVoid() { public void onFailure(Throwable error) { Window.alert(Unable to create Appointment. + error.getMessage()); } public void onSuccess(Void ignore) { } }); } } //ServiceImpl public class AppointmentServiceImpl extends RemoteServiceServlet implements AppointmentService { /** * */ private static final long serialVersionUID = 1L; public void addAppointment(String subject, Date appointStartDate, Date appointEndDate, String startTime, String endTime, String empID, ListVisitor visitors) throws
Re: [google-appengine] Re: Retrying transactions
Hi Jeff, If you use Python it will retry 3x. The datastore uses optimistic locking and retries for transactions. If the transaction prepared by the function cannot be committed, run_in_transaction() calls the function again, retrying the transaction up to 3 times. (To use a different number of retries, use db.run_in_transaction_custom_retries().) Because the transaction function may be called more than once for a single transaction, the function should not have side effects, including modifications to arguments. http://code.google.com/appengine/docs/python/datastore/functions.html#run_in_transaction Not sure about Java, but they seem to keep things more-or-less consistent. Robert On Thu, Aug 26, 2010 at 23:41, Jeff Schwartz jefftschwa...@gmail.com wrote: Thanks but I wasn't specifically asking about tasks but rather transactions in general. I'd like to know about retries, when they are done when they aren't. I'd also like to know if there is any detailed documentation on the subject. On Thu, Aug 26, 2010 at 7:37 PM, Jan Z/ Hapara jan.zawad...@gmail.com wrote: FWIW we've seen tasks with 23+ retries and a re-queue time of 19+hrs. Failure rate: depends on what you mean. Task queue can kill your tasks (and requeue them) on it's own, plus there is the failure rate of other GAE services. I'm not sure if we've got a unique use-case on our hands (I think not) but we're seeing task queue failure rates of 30-90% for non-trivial loads (2-5k tasks being queued up). Failure in this case means a retry force by the queue manager - tasks do eventually complete, it might just take a lot longer than expected. J On Aug 27, 10:58 am, Jeff jefftschwa...@gmail.com wrote: When a transaction fails because of contention is it automatically retried and if it is how many times will it retry? Also, can you point me to any docs that detail this transaction failures in general? Thanks in advance. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- -- Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] How do I use get_serving_url correctly?
Ikai, is there any way of doing this asynchronously (like URLFetch fetch() calls)? Eg: (copied mostly from http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html ) from google.appengine.api import images # ... blob_keys = [..., ..., ..] blob_key_serving_urls = [] size = ... crop = ... def handle_result(rpc): url = rpc.get_result() blob_key_serving_urls.append(url) # Use a helper function to define the scope of the callback. def create_callback(rpc): return lambda: handle_result(rpc) rpcs = [] for blob_key in blob_keys: images.create_rpc() rpc.callback = create_callback(rpc) images.make_get_serving_url_call(rpc, blob_key, size, crop) rpcs.append(rpc) # ... for rpc in rpcs: rpc.wait() # blob_key_serving_urls should now contain the serving URLs. Or should we add this as a feature request? Nick On 27 August 2010 10:56, Ikai L (Google) ika...@google.com wrote: Yes, you can cache the result. In practice, subsequent calls of get_serving_url on the same blob should be faster, but if you have more new blobs than old ones on a page it can be slow. The resulting URL only becomes invalid if the blob is deleted. On Tue, Aug 24, 2010 at 1:53 PM, Flips p...@script-network.com wrote: Hi, how do I use get_serving_url correctly if I'd like to host a gallery of 28 pictures? I currently fetch all blob_keys and call 28 times the get_serving_url method to get my image urls. But this attempt is really slow (about 12 seconds). Would it be smarter to call get_serving_url if the blob has been created and store the image url in datastore? Best Regards Philip -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog: http://googleappengine.blogspot.com Twitter: http://twitter.com/app_engine Reddit: http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Detect Mobile Phone
Yes it is true. Whether it is worth depends on the application aim. A good compromise can be a lightweight wurfl api without the LD algoritm. And a trie in substitution to RIS. On Aug 27, 12:11 am, prgmratlarge yossiele...@gmail.com wrote: Yes, but the CPU required to do a lookup is simply not worth it. Remember, every time a (new) user hits the site you do a lookup. It can add up very quickly. On Aug 26, 9:07 am, Filippo De Luca dl.fili...@filosganga.it wrote: Hi, I'm aWURFLapi maintainer. The issue should be due to the GAE size limit. A simple workaround may be split thewurflxml file in several little file, one root and many patches. I will do this utility available for the GAE community. On Aug 23, 10:46 pm, moissinac jcmoissi...@gmail.com wrote: I've made some tests withWURFL(from sourceforge) It works very well on my development platform But it fails on GAE due to the size limit:WURFLuses a huge XML file and GAE fails to open the compressed version of the file For now, I have no time to resolve this issue until end of september On 23 août, 21:10, Ikai L (Google) ika...@google.com wrote: Can you use the user-agent? On Sat, Aug 21, 2010 at 11:12 PM, prgmratlarge yossiele...@gmail.comwrote: Need a quick and easy way to detect mobile phones from my app, that won't add too much performance overhead. Any suggestions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Google Apps Full Accounts
Hi All, Our domain was recently upgraded to the Google Apps Full Account system. However, when I try and login to Google App Engine, I get the following error: URL: https://appengine.google.com/_ah/login?continue=https://appengine.google.com/a/example.com/ Body: Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it. This persists for other users in my domain as well. Thanks! -Erik -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: No mobile phone
I did manage to get manually approved. My thanks to everyone that helped. On Aug 26, 8:45 pm, Robert Kluin robert.kl...@gmail.com wrote: Google voice will not work to verify an account. Tried it, the text never comes through. But it does work to send and receive texts in general. Robert On Thu, Aug 26, 2010 at 16:32, James13M jamesmaje...@gmail.com wrote: Acknowledged. Further research has given me another tool to use to send and receive SMS online. I have yet to verify its functionality, but it is simple enough to use and you do not need a cell phone or mobile phone. It is called Google Voice. My problem in testing it is that I do not know many people with cell phones that bother to use the texting feature. On Aug 23, 7:04 pm, Ikai L (Google) ika...@google.com wrote: Use that link to report issues with SMS verification. In your case, enter in the description that you do not have a mobile phone and you will be manually verified. We should probably rename that form to manual verification rather than SMS verification. On Sat, Aug 21, 2010 at 7:46 PM, James13M jamesmaje...@gmail.com wrote: That link is for reporting a problem in receiving the SMS (I still do not know what that is) on your cell phone or mobile phone. On Aug 19, 7:42 pm, Geoffrey Spear geoffsp...@gmail.com wrote: There's a link athttp://groups.google.com/group/google-appengineyou can use to get your account verified without SMS. On Aug 19, 8:03 am, James13M jamesmaje...@gmail.com wrote: I can not get past the SMS (whatever that is) and the requirement for a cell phone. I do not want a cell phone as I have no use for it. Is there a way to get past that requirement or is Google subsidizing the cell phone companies? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Paypal / Payment integration and domain related questions for GAE
1) yes, try to google and you will find examples 2) yes, you can use you own domains 3) unfortunatly this is due to ssl limitations. Still your users will be able to acces through your domain but browser will show that certificate is untrasted. With https you can use only appspot.com subdomains. On 27 Aug 2010 01:10, Divkis divick.kish...@gmail.com wrote: Hi, I am trying to evaluate GAE, if it suits my purpose. One of the requirements that I have is that I want integration with a couple of payment gateways, the top priority being paypal. 1. Could someone please help me answer if it is even possible to integrate paypal and/or some other payment gateway with GAE? 2. The other question that I have is if I have a domain say xyz.com, then users accessing http://www.xyz.com will be directed to my application deployed on GAE? 3. Having looked at Wikipedia entry for GAE, http://en.wikipedia.org/wiki/Google_App_Engine, section 'Restrictions', it says SSL/HTTPS is only available via *.appspot.com domains and not via Google Apps Domains I am not sure what this really means and what implication does it have? Thanks in advance, Divkia -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: *.appspot.com certificate chain in Chrome, Safari and IE
The Equifax certificate is there, but the problem is with the intermediate CA's certificate (Google's), which isn't found. If it works for you on Windows 7, maybe you have Google's CA certificate installed. This would certainly make the error go away, but we can't ask users to do this (because most won't). @James: This is not a limitation of wildcard certificates because it works on Firefox but also with all browsers I've tested on Windows XP and OS X (including Safari, which shows the error on Windows 7). Best regards, On Aug 27, 2:36 am, Matthew Blain matthew.bl...@google.com wrote: This works for me on Windows 7. It's possible that the root certificates on your Windows machine are somehow missing the Equifax Secure Certificate Authority root certificate (also sometimes listed as GeoTrust)? Have you edited your list? I see a suggestion online to also check Windows Updates to see if there's a certificate update, though I believe this is not a recent CA. --Matthew On Aug 26, 10:45 am, Robert Kluin robert.kl...@gmail.com wrote: Interesting. You are right, I probably checked using a XP vm not a Win 7 vm. On Thu, Aug 26, 2010 at 10:44, Carlos Rodrigues cefrodrig...@gmail.com wrote: BTW, this is not a problem exclusive to GAE. The certificate for code.google.com also seems to have changed recently and I just got a warning from TortoiseSVN that the new certificate cannot be validated because the certificate chain is incomplete. Best regards, On Aug 26, 3:42 pm, Carlos Rodrigues cefrodrig...@gmail.com wrote: Since the problem only happens with browsers that rely on Windows' certificate infrastructure, the version of Windows matters. I've tested with IE 8 on Windows 7 and Windows Server 2008 and the problem occurs; I've also tested with IE 7 on Windows XP and Windows Server 2003 and the problem does not occur; I did not test with Windows Vista. It seems that older versions of Windows follow the certificate chain (by downloading it from somewhere), while the more recent versions only follow it if the webserver itself provides the intermediate CA's certificate (as I said, I've tested with other sites that use intermediate CAs and they show no errors - because the intermediate CA's certificate is being provided by Apache using the option I mentioned before). Best regards, On Aug 25, 10:19 pm, Robert Kluin robert.kl...@gmail.com wrote: I only get a certificate error if I go tohttps://test.xx.appspot.com. I do not get errors going tohttps://xx.appspot.com. I tested with IE and Chrome and Windows. Robert On Wed, Aug 25, 2010 at 05:27, Carlos Rodrigues cefrodrig...@gmail.com wrote: Hi again, Any ideas? This is a show-stopper as far as secure applications go... Best regards, On Aug 23, 12:39 pm, Carlos Rodrigues cefrodrig...@gmail.com wrote: Hi all, I'm developing a small application on GAE that requires HTTPs, however I'm having some trouble with the *.appspot.com certificate. O Chrome, Safari and IE on Windows I get a certificate validation error. This error appears to be related to the certificate validation path, because the topmost authority is Google Internet Authority and show as Not found. On Firefox there is no error, and the certificate chain correctly shows Equifax as the root CA and Google Internet Authority as an intermediate CA. On the Mac both Firefox and Safari work without showing any errors. Is there a way around this? I can't expect users to trust the application if they get a certificate error on Windows in every browser except Firefox. So a summary of tested browsers: * Internet Explorer 8 (Windows): error * Safari (Windows): error * Safari (OS X): OK * Chrome (Windows): error * Firefox (Windows): OK * Firefox (OS X): OK It appears that browsers which use the integrated certificate infrastructure on Windows are affected, and others are not. I know that Windows supports intermediate CAs because I've tested it. But it seems to require that the website itself provides the intermediate CAs certificate (for example, on Apache this would be the SSLCertificateChainFile /path/to/intermediate-ca.crt option). Google App Engine does not appear to do this. Best regards, Carlos Rodrigues -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the
[google-appengine] Re: *.appspot.com certificate chain in Chrome, Safari and IE
Sorry, you are right. The problem is that the Windows 7 certificate store does not have the Equifax root certificate out of the box (on Windows XP it does). The number of root certificates included with Windows 7 out of the box is actually quite low. The machines where I tested this and got an error (Windows 7 and 2008) are fully updated (including the root certificates update). However they are behind a proxy server, and maybe the root certificates update doesn't work over a proxy server. I manually installed the root certificates update again (http://www.microsoft.com/downloads/en/ confirmation.aspx? familyId=e4f9b573-66d7-4dda-95d5-26c7d0f6c652displayLang=en) with the machine connected directly to the internet and it populated the certificate store with the missing root certificates. I guess this is still a problem, but only for users that do not update or that are behind HTTP proxy servers (corporate users, mostly). Best regards, On Aug 27, 10:13 am, Carlos Rodrigues cefrodrig...@gmail.com wrote: The Equifax certificate is there, but the problem is with the intermediate CA's certificate (Google's), which isn't found. If it works for you on Windows 7, maybe you have Google's CA certificate installed. This would certainly make the error go away, but we can't ask users to do this (because most won't). @James: This is not a limitation of wildcard certificates because it works on Firefox but also with all browsers I've tested on Windows XP and OS X (including Safari, which shows the error on Windows 7). Best regards, On Aug 27, 2:36 am, Matthew Blain matthew.bl...@google.com wrote: This works for me on Windows 7. It's possible that the root certificates on your Windows machine are somehow missing the Equifax Secure Certificate Authority root certificate (also sometimes listed as GeoTrust)? Have you edited your list? I see a suggestion online to also check Windows Updates to see if there's a certificate update, though I believe this is not a recent CA. --Matthew On Aug 26, 10:45 am, Robert Kluin robert.kl...@gmail.com wrote: Interesting. You are right, I probably checked using a XP vm not a Win 7 vm. On Thu, Aug 26, 2010 at 10:44, Carlos Rodrigues cefrodrig...@gmail.com wrote: BTW, this is not a problem exclusive to GAE. The certificate for code.google.com also seems to have changed recently and I just got a warning from TortoiseSVN that the new certificate cannot be validated because the certificate chain is incomplete. Best regards, On Aug 26, 3:42 pm, Carlos Rodrigues cefrodrig...@gmail.com wrote: Since the problem only happens with browsers that rely on Windows' certificate infrastructure, the version of Windows matters. I've tested with IE 8 on Windows 7 and Windows Server 2008 and the problem occurs; I've also tested with IE 7 on Windows XP and Windows Server 2003 and the problem does not occur; I did not test with Windows Vista. It seems that older versions of Windows follow the certificate chain (by downloading it from somewhere), while the more recent versions only follow it if the webserver itself provides the intermediate CA's certificate (as I said, I've tested with other sites that use intermediate CAs and they show no errors - because the intermediate CA's certificate is being provided by Apache using the option I mentioned before). Best regards, On Aug 25, 10:19 pm, Robert Kluin robert.kl...@gmail.com wrote: I only get a certificate error if I go tohttps://test.xx.appspot.com. I do not get errors going tohttps://xx.appspot.com. I tested with IE and Chrome and Windows. Robert On Wed, Aug 25, 2010 at 05:27, Carlos Rodrigues cefrodrig...@gmail.com wrote: Hi again, Any ideas? This is a show-stopper as far as secure applications go... Best regards, On Aug 23, 12:39 pm, Carlos Rodrigues cefrodrig...@gmail.com wrote: Hi all, I'm developing a small application on GAE that requires HTTPs, however I'm having some trouble with the *.appspot.com certificate. O Chrome, Safari and IE on Windows I get a certificate validation error. This error appears to be related to the certificate validation path, because the topmost authority is Google Internet Authority and show as Not found. On Firefox there is no error, and the certificate chain correctly shows Equifax as the root CA and Google Internet Authority as an intermediate CA. On the Mac both Firefox and Safari work without showing any errors. Is there a way around this? I can't expect users to trust the application if they get a certificate error on Windows in every browser except Firefox. So a summary of tested browsers: * Internet Explorer 8 (Windows): error * Safari (Windows): error
[google-appengine] Re: FTP support to download the assets from WEB-INF folder
On Aug 26, 11:32 pm, anurag anuraggupta@gmail.com wrote: Hi Geoffrey, To get the server data that resides in WEB-INF folder i have to write script to download it? If this the only one way then I will do the same, I was thinking may be there will be some tool to get that. I didn't get source control. It is any tool,please provide me some link to go through that. http://mercurial.selenic.com/ http://git-scm.com/ http://subversion.tigris.org/ -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: getServingUrl slow itself?
Anyone who has the URL can get the image. If you need to restrict access when the correct URL is given, you can't really use Blobstore; store your images in the datastore and use a handler to serve them with code that restricts who it will serve to. On Aug 26, 11:41 pm, gops patelgo...@gmail.com wrote: can i restrict who can see the image or who can not ? i know url is not easily guessable , but can anyone by chance can have that image ? On Aug 27, 5:22 am, Ikai L (Google) ika...@google.com wrote: Only the initial call to getServingUrl should be slow. Subsequent calls should be faster. You should be able to cache the URL - I don't believe it should change. On Thu, Aug 26, 2010 at 4:02 PM, mathijs math...@gmail.com wrote: Hi, We have been starting to use getServingUrl onhttp://www.appbrain.com/ where we have very many pages little icons. (for instance about 30 on the homepage). Since we implemented the getServingUrl calls for these icons, the logs show that the homepage now takes 3000ms (3 seconds!) to be processed by appengine. It seems that the getServingUrl calls itself are very slow. We are now trying to cache these calls, but are unsure how long these URLs exist. Can we assume that as long as we don't delete the blob, the same URL will always be valid, or can it change? Best regards, Mathijs -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Channel API - accessing from web page not hosted on app engine
I would like to create a Javascript that: - Could be included on any web page - Would connect to my App Engine application and retrieve data via the Channel API For example - 127.0.0.1:8000 Regular web server, hosting an example web page - 127.0.0.1:80 App Engine dev server with the channels and with the script To my understanding this should be possible, as my script and the Channel API Javascripts are hosted on App Engine. So cross-site limitations should not be an issue. Correct? With the current dev-channel-js.js that comes with the SDK I can't get this working. The dev-channel-js.js does not explicitly specify the hostname (and port) of the App Engine dev server. Instead just specifies the url (/_ah/channel/). This means that in my example case, it tries to connect to http://127.0.0.1:8000/_ah_channel/dev [...] Is this a use case that will be supported on production, once the channel API becomes publicly available? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Your Suggestions Comments on Cascading Deletes Across Potentially Thousands of Entities
Hi all, I'm developing an application that has the following datastore models: StatusUpdate - members' distributed status StatusUpdateLike - members can mark a StatusUpdate as liked StatusUpdateLikeCounter - counter of # of members who like a StatusUpdate DistributionIndex - has a list property of member ids used to syndicate content to subscribed members Comment - a comment made by a member about a StatusUpdate CommentLike - members can mark a Comment as liked CommentLikeCounter - counter of # of members who like a Comment A StatusUpdate can have many Comments but there is no entitygroup relationship between them. A StatusUpdate can have many DistributionIndexes and both form an enitty group where StatusUpdate is the root of the hierarchy and DistributionIndexes are the children. A StatusUpdate can have many StatusUpdateLikes but there is no entitygroup relationship between them. A StatusUpdate can have many StatusUpdateLikesCounters (sharded) but there is no entitygroup relationship between them. A Comment can have many CommentLikes but there is no entitygroup relationship between them. A Comment can have many CommentLikeCounters (sharded) but there is no entitygroup relationship between them. When a StatusUpdate is deleted by the member who created it I am thinking I can approach 'clean up' in one of 2 ways I would like your opinions on both: 1) I can just delete the StatusUpdate and its child DistributionIndexes and leave all the other entities in place in the datastore. This would not impact the application because the StatusUpdate is the root of its logical hierarchy and without it all the other entities are ignored. Depending on the popularity of the application leaving these entities in place could result in the datastore maintaining thousands of orphaned entities. 2) I can go through the logical hierarchy and cascade deletion. Depending on the popularity of the application this could require the deletion of thousands of records. Though everything would be done using keys and batch deletes, deleting thousands of records couldn't be done in-process and would require kicking of tasks to perform the cascading deletes. 3) I could use a combination of the above. When a member deletes a StatusUpdate I could delete it and its associated DistributionIndexes and create a new entity that would serve as a marker for the deleted StatusUpdate. I could then schedule a task to kick off periodically that would query for the marker entities. If found I could kick off tasks to do the clean up out of process. The simplicity of approach #1 above is very attractive but I am concerned about its impact on the size and growth/datastore, The complexity of approach #2 #3 above concerns me because I would need to use tasks (I haven't implemented tasks yet on app engine) I don't know what a good implementation would require. What do you think about this? Suggestions comments welcomed. Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: again Request was aborted after waiting too long...
My site is constantly serving so should always been warm according to the Dashboard. My AppStats don't show any particular spikes or any areas that are slow. When the datastore was serving really slowly I did a number of optimizations to make sure that DataStore access was minimal to a point I can't/dont want to move the last bit into memory. I am with Jan in that it would be good to know when this happens so i can possibly refactor my code. David On Aug 27, 12:28 am, Jan Z/ Hapara jan.zawad...@gmail.com wrote: Just as an experiment we ran this job again, this time using JMeter to prime the VM's at a sustained 25 requests per second for 15-20 mins before the tasks were queued up. No impact - same request aborted rate as before. So it doesn't seem like it's a problem with availability of warm vm's... J On Aug 27, 10:08 am, Jan Z/ Hapara jan.zawad...@gmail.com wrote: Had another data run complete just now - a url-fetch focused job (talking to Google services only, no rpc, no db, little memcache) with 2,500 tasks spread across 5 queues at 6/m each. Average task is 4-8 urlfetches, runs in 17s, with 100msec CPU time. There was minimal to no other load on the app at the time. Job completion: 6h 24m Effective task run rate (taking the requestaborted... + requeue into account): 384 per hour. Expected run rate: 1,800. Effective task queue efficiency: 21%. Something is amiss here... According to the docs, this is way below any published quotas, we ought to be able to run this off a single queue at 20/s? Some insight from Google around what to even look for would be hugely appreciated!! J -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Channel API with TyphoonAE
Hi, I'm happy to announce that TyphoonAE (only trunk, for now) already has experimental support for the new Channel API. We have the Google IO Trivia Quiz running on our server http://trivia-quiz.typhoonae.org:8080/ For more detailed information, visit this http://code.google.com/p/typhoonae/wiki/ChannelAPI wiki page and follow us on Twitter http://twitter.com/TyphoonAE to be informed on upcoming releases. Thanks! Tobias -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Datastore viewer edit entities doesn't work
I'm trying to update some int fields and when I press 'save entity' it just ignores the changes. Anyone else experiencing this behavior? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: RSS Feed Aggregator
That link looks great! I'll spend some time reading more about it, thank so much! On Aug 26, 1:18 pm, nickmilon nickmi...@gmail.com wrote: Sure an aggregator is doable in App Engine. May be you also take a look here:http://code.google.com/p/pubsubhubbub/ -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Detect Mobile Phone
Well I was thinking of using the datastore. Would this be possible, and what would be the method to the query? On Aug 27, 3:44 am, Filippo De Luca dl.fili...@filosganga.it wrote: Yes it is true. Whether it is worth depends on the application aim. A good compromise can be a lightweight wurfl api without the LD algoritm. And a trie in substitution to RIS. On Aug 27, 12:11 am, prgmratlarge yossiele...@gmail.com wrote: Yes, but the CPU required to do a lookup is simply not worth it. Remember, every time a (new) user hits the site you do a lookup. It can add up very quickly. On Aug 26, 9:07 am, Filippo De Luca dl.fili...@filosganga.it wrote: Hi, I'm aWURFLapi maintainer. The issue should be due to the GAE size limit. A simple workaround may be split thewurflxml file in several little file, one root and many patches. I will do this utility available for the GAE community. On Aug 23, 10:46 pm, moissinac jcmoissi...@gmail.com wrote: I've made some tests withWURFL(from sourceforge) It works very well on my development platform But it fails on GAE due to the size limit:WURFLuses a huge XML file and GAE fails to open the compressed version of the file For now, I have no time to resolve this issue until end of september On 23 août, 21:10, Ikai L (Google) ika...@google.com wrote: Can you use the user-agent? On Sat, Aug 21, 2010 at 11:12 PM, prgmratlarge yossiele...@gmail.comwrote: Need a quick and easy way to detect mobile phones from my app, that won't add too much performance overhead. Any suggestions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Detect Mobile Phone
Well I was thinking of using the datastore. Is it possible? And what would be the method to the query? On Aug 27, 3:44 am, Filippo De Luca dl.fili...@filosganga.it wrote: Yes it is true. Whether it is worth depends on the application aim. A good compromise can be a lightweight wurfl api without the LD algoritm. And a trie in substitution to RIS. On Aug 27, 12:11 am, prgmratlarge yossiele...@gmail.com wrote: Yes, but the CPU required to do a lookup is simply not worth it. Remember, every time a (new) user hits the site you do a lookup. It can add up very quickly. On Aug 26, 9:07 am, Filippo De Luca dl.fili...@filosganga.it wrote: Hi, I'm aWURFLapi maintainer. The issue should be due to the GAE size limit. A simple workaround may be split thewurflxml file in several little file, one root and many patches. I will do this utility available for the GAE community. On Aug 23, 10:46 pm, moissinac jcmoissi...@gmail.com wrote: I've made some tests withWURFL(from sourceforge) It works very well on my development platform But it fails on GAE due to the size limit:WURFLuses a huge XML file and GAE fails to open the compressed version of the file For now, I have no time to resolve this issue until end of september On 23 août, 21:10, Ikai L (Google) ika...@google.com wrote: Can you use the user-agent? On Sat, Aug 21, 2010 at 11:12 PM, prgmratlarge yossiele...@gmail.comwrote: Need a quick and easy way to detect mobile phones from my app, that won't add too much performance overhead. Any suggestions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Ikai Lan Developer Programs Engineer, Google App Engine Blog:http://googleappengine.blogspot.com Twitter:http://twitter.com/app_engine Reddit:http://www.reddit.com/r/appengine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Paypal / Payment integration and domain related questions for GAE
Hi, Yes PayPal, Google Checkout and Amazon FPS are all available within App Engine. I've integrated all of them at http://move.brooklynmarathon.com Which you can use if you'd like. Ralph On Aug 27, 3:52 am, Andrius A andriu...@gmail.com wrote: 1) yes, try to google and you will find examples 2) yes, you can use you own domains 3) unfortunatly this is due to ssl limitations. Still your users will be able to acces through your domain but browser will show that certificate is untrasted. With https you can use only appspot.com subdomains. On 27 Aug 2010 01:10, Divkis divick.kish...@gmail.com wrote: Hi, I am trying to evaluate GAE, if it suits my purpose. One of the requirements that I have is that I want integration with a couple of payment gateways, the top priority being paypal. 1. Could someone please help me answer if it is even possible to integrate paypal and/or some other payment gateway with GAE? 2. The other question that I have is if I have a domain say xyz.com, then users accessinghttp://www.xyz.comwill be directed to my application deployed on GAE? 3. Having looked at Wikipedia entry for GAE,http://en.wikipedia.org/wiki/Google_App_Engine, section 'Restrictions', it says SSL/HTTPS is only available via *.appspot.com domains and not via Google Apps Domains I am not sure what this really means and what implication does it have? Thanks in advance, Divkia -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: ResourceUsedFreeBillableCharge Stored Data: $0.005/GByte-day1.151.000.15$0.01 Quote Details Page: Total Stored Data5% 1.91 of 41.00 GBytesOkay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
1GB of data storage is free. Any data store usage above 1GB but less than 41GB (the max storage is something you can set when you configure your Billing Settings) will be billed to you. If you look at your billing report, it states that Used = 1.15, Free = 1.00, and Billable = 0.15. On Fri, Aug 27, 2010 at 4:16 PM, fedex1 fed...@gmail.com wrote: Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: ResourceUsedFreeBillableCharge Stored Data: $0.005/GByte-day1.151.000.15$0.01 Quote Details Page: Total Stored Data5% 1.91 of 41.00 GBytesOkay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
Hi Eli, Thanks. After looking at it more, I understand and agree with you. The Quota Details page is a little confusing since it does not mention that 1 Gig is the free quota and 40 is the paid quota. I looked at the Datastore Statistics for this application and it says: Size of all entities278 MBytes Do you know where the 2.15 Gigs is being counted from? Thanks again. On Aug 27, 4:25 pm, Eli Jones eli.jo...@gmail.com wrote: 1GB of data storage is free. Any data store usage above 1GB but less than 41GB (the max storage is something you can set when you configure your Billing Settings) will be billed to you. If you look at your billing report, it states that Used = 1.15, Free = 1.00, and Billable = 0.15. On Fri, Aug 27, 2010 at 4:16 PM, fedex1 fed...@gmail.com wrote: Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: Resource Used Free Billable Charge Stored Data: $0.005/GByte-day 1.15 1.00 0.15 $0.01 Quote Details Page: Total Stored Data 5% 1.91 of 41.00 GBytes Okay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
Sorry. I meant 1.15 Gigs. On Aug 27, 4:59 pm, fedex1 fed...@gmail.com wrote: Hi Eli, Thanks. After looking at it more, I understand and agree with you. The Quota Details page is a little confusing since it does not mention that 1 Gig is the free quota and 40 is the paid quota. I looked at the Datastore Statistics for this application and it says: Size of all entities 278 MBytes Do you know where the 2.15 Gigs is being counted from? Thanks again. On Aug 27, 4:25 pm, Eli Jones eli.jo...@gmail.com wrote: 1GB of data storage is free. Any data store usage above 1GB but less than 41GB (the max storage is something you can set when you configure your Billing Settings) will be billed to you. If you look at your billing report, it states that Used = 1.15, Free = 1.00, and Billable = 0.15. On Fri, Aug 27, 2010 at 4:16 PM, fedex1 fed...@gmail.com wrote: Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: Resource Used Free Billable Charge Stored Data: $0.005/GByte-day 1.15 1.00 0.15 $0.01 Quote Details Page: Total Stored Data 5% 1.91 of 41.00 GBytes Okay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Your Suggestions Comments on Cascading Deletes Across Potentially Thousands of Entities
Options 2 or 3 sound like good choices. Option 1 will leave 'junk' lingering around your datastore cluttering stuff up. Any operation you might need to run over all child entities will (potentially) need to be aware of orphaned records. Just seems like the kind of thing that will bite you down the road. With option 2 you need to do a bit more up front, but not much. Kick off a transactional 'deleted' task that analyzes the hierarchy and spawns any other needed tasks. That will let the delete handler return quick. Then the backend will clean itself up. Option 3 is very similar to option 2. The biggest benefit I see is that perhaps you can somehow batch delete operations more efficiently? I think you'll still wind up using the task queue to handle cascading deletes though, right? I guess you would basically pull the deleted entity markers, build some type of processing list and delete as much as you could before getting a timeout and repeat? Using task queues this could be probably be parallellized to be made more efficient. Not really sure my thoughts really add much. Currently In my code I use option 2 for a variety of things (updates and deletes). I just like it because it gets stuff done as close as possible to the user's action. Robert On Fri, Aug 27, 2010 at 09:15, Jeff Schwartz jefftschwa...@gmail.com wrote: Hi all, I'm developing an application that has the following datastore models: StatusUpdate - members' distributed status StatusUpdateLike - members can mark a StatusUpdate as liked StatusUpdateLikeCounter - counter of # of members who like a StatusUpdate DistributionIndex - has a list property of member ids used to syndicate content to subscribed members Comment - a comment made by a member about a StatusUpdate CommentLike - members can mark a Comment as liked CommentLikeCounter - counter of # of members who like a Comment A StatusUpdate can have many Comments but there is no entitygroup relationship between them. A StatusUpdate can have many DistributionIndexes and both form an enitty group where StatusUpdate is the root of the hierarchy and DistributionIndexes are the children. A StatusUpdate can have many StatusUpdateLikes but there is no entitygroup relationship between them. A StatusUpdate can have many StatusUpdateLikesCounters (sharded) but there is no entitygroup relationship between them. A Comment can have many CommentLikes but there is no entitygroup relationship between them. A Comment can have many CommentLikeCounters (sharded) but there is no entitygroup relationship between them. When a StatusUpdate is deleted by the member who created it I am thinking I can approach 'clean up' in one of 2 ways I would like your opinions on both: 1) I can just delete the StatusUpdate and its child DistributionIndexes and leave all the other entities in place in the datastore. This would not impact the application because the StatusUpdate is the root of its logical hierarchy and without it all the other entities are ignored. Depending on the popularity of the application leaving these entities in place could result in the datastore maintaining thousands of orphaned entities. 2) I can go through the logical hierarchy and cascade deletion. Depending on the popularity of the application this could require the deletion of thousands of records. Though everything would be done using keys and batch deletes, deleting thousands of records couldn't be done in-process and would require kicking of tasks to perform the cascading deletes. 3) I could use a combination of the above. When a member deletes a StatusUpdate I could delete it and its associated DistributionIndexes and create a new entity that would serve as a marker for the deleted StatusUpdate. I could then schedule a task to kick off periodically that would query for the marker entities. If found I could kick off tasks to do the clean up out of process. The simplicity of approach #1 above is very attractive but I am concerned about its impact on the size and growth/datastore, The complexity of approach #2 #3 above concerns me because I would need to use tasks (I haven't implemented tasks yet on app engine) I don't know what a good implementation would require. What do you think about this? Suggestions comments welcomed. Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more
Re: [google-appengine] Re: Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
Probably indexes. Star this issue: http://code.google.com/p/googleappengine/issues/detail?id=2740 Robert On Fri, Aug 27, 2010 at 17:06, fedex1 fed...@gmail.com wrote: Sorry. I meant 1.15 Gigs. On Aug 27, 4:59 pm, fedex1 fed...@gmail.com wrote: Hi Eli, Thanks. After looking at it more, I understand and agree with you. The Quota Details page is a little confusing since it does not mention that 1 Gig is the free quota and 40 is the paid quota. I looked at the Datastore Statistics for this application and it says: Size of all entities 278 MBytes Do you know where the 2.15 Gigs is being counted from? Thanks again. On Aug 27, 4:25 pm, Eli Jones eli.jo...@gmail.com wrote: 1GB of data storage is free. Any data store usage above 1GB but less than 41GB (the max storage is something you can set when you configure your Billing Settings) will be billed to you. If you look at your billing report, it states that Used = 1.15, Free = 1.00, and Billable = 0.15. On Fri, Aug 27, 2010 at 4:16 PM, fedex1 fed...@gmail.com wrote: Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: Resource Used Free Billable Charge Stored Data: $0.005/GByte-day 1.15 1.00 0.15 $0.01 Quote Details Page: Total Stored Data 5% 1.91 of 41.00 GBytes Okay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Question about Stored Data and Quota of 41 Gigs vs. 1 Gig
Wow, thanks. And yes, I've starred it. On Aug 27, 5:19 pm, Robert Kluin robert.kl...@gmail.com wrote: Probably indexes. Star this issue:http://code.google.com/p/googleappengine/issues/detail?id=2740 Robert On Fri, Aug 27, 2010 at 17:06, fedex1 fed...@gmail.com wrote: Sorry. I meant 1.15 Gigs. On Aug 27, 4:59 pm, fedex1 fed...@gmail.com wrote: Hi Eli, Thanks. After looking at it more, I understand and agree with you. The Quota Details page is a little confusing since it does not mention that 1 Gig is the free quota and 40 is the paid quota. I looked at the Datastore Statistics for this application and it says: Size of all entities 278 MBytes Do you know where the 2.15 Gigs is being counted from? Thanks again. On Aug 27, 4:25 pm, Eli Jones eli.jo...@gmail.com wrote: 1GB of data storage is free. Any data store usage above 1GB but less than 41GB (the max storage is something you can set when you configure your Billing Settings) will be billed to you. If you look at your billing report, it states that Used = 1.15, Free = 1.00, and Billable = 0.15. On Fri, Aug 27, 2010 at 4:16 PM, fedex1 fed...@gmail.com wrote: Hi, What is the app engine limit for stored data? It appears to be 41 Gigs according to the Quota Details page But the billing report shows that the limit is 1 Gig. I'm over the 1 Gig limit but far below the 41 Gig limit, can someone clear this up. Maybe there are different interpretations of storage. But is this Datastore storage? log storage? what data is the 41 Gig limit for and what data is the 1 Gig limit for. Thanks, Ralph Billing Report: Resource Used Free Billable Charge Stored Data: $0.005/GByte-day 1.15 1.00 0.15 $0.01 Quote Details Page: Total Stored Data 5% 1.91 of 41.00 GBytes Okay app_id=race-results -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.