[appengine-java] Slim3 1.0.0 Released
Hi all, We are pleased to announce the release of Slim3 1.0.0. Slim3 is a full-stack MVC framework optimized for Google App Engine/Java. The main features of Slim3 are as follows: * Global Transactions * Faster than JDO/JPA * Fast spin-up * HOT reloading * Type safe query You can find more information about Slim3 here: http://slim3.org Release Notes: http://sites.google.com/site/slim3appengine/release-notes Download: http://slim3.googlecode.com/files/slim3-blank-1.0.0.zip Thanks, Yasuo Higa -- 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: elegant way of implementing sequence generator
thanks for the link. have tried the @version with shards. the output counter seems not to be unique... i think there is no other way to mimic the sequence generator like other rdbms without using normal transactions with optimistic locking of the entity. On Mar 12, 1:49 am, datanucleus andy_jeffer...@yahoo.com wrote: could you give me simple example on how to use the @version, The DataNucleus docs define that, and much morehttp://www.datanucleus.org/products/accessplatform/jdo/orm/versioning... -- 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: GAE Java + Authsub + GData
Thanks for your response. I did look at that documentation. It is more apt for applications that are not on the App Engine. If the same logic is used on the App Engine, the user will be redirected to a login page again even though he is already logged into the App Engine application using the very same Google Apps credentials. If any of the following is supported, it would be helpful: 1. When the user is redirected to a login page from my GAEJ application, I use the UserService for redirection. Can we log the user into the App Engine domain and GData Services in one shot using something like this: String authSubUrl = AuthSubUtil.getRequestUrl(url, scope, secure, session); userService.createLoginURL(authSubUrl); Someone tried it and ran into issues in production: http://groups.google.com/group/google-appengine-java/browse_thread/thread/6db6eea6ab183cfe/299810d80d921be7?lnk=gstq=gdata+login#299810d80d921be7 2. Once the user logs in, fetch the session information from the App Engine session and create an AuthSub session token for the GData Services using this session. This does not seem possible based on this: http://groups.google.com/group/google-appengine-java/browse_thread/thread/3f3066dd0bd3bdeb/0260a196d798d757?lnk=gstq=gdata+authsub#0260a196d798d757 I am trying to avoid asking the user to login twice. It seems unavoidable. An integrated login would make perfect sense. Adding this feature would be very helpful for many. Thanks, s8 On Mar 17, 12:09 am, seleronm seler...@gmail.com wrote: Hi, Though it is likely already to have tried This link might be useful. http://code.google.com/intl/us/apis/gdata/docs/auth/authsub.html Please Try. thanks. Hi - My App Engine Java application is restricted to a Google Apps domain. Users are authenticated in my application using the App Engine UserService. How do I obtain a AuthSub session token for the user that is already logged into my application to push data into a spreadsheet in his Google Apps account? The following URL talks about GData access from GAE Python. How can this be achieved in the Java version? http://code.google.com/appengine/articles/gdata.html Thanks, s8 -- 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 query for parent key property of an entity's key?
I want to retrieve all entities that are children of one other particular entity, by checking if the parent-key property of the child's key matches the parent key. I have a reference to the parent entity but I want to avoid loading all of its children (as there may be many children, but I only need a few). Thus I want a query that looks something like this: query = pm.newQuery(select from + ChildClass.class.getName() + where :parentID.contains(ChildIDProperty.ParentID) SomeOtherProperty+ filterString); But I'm not sure how to exactly address the parent key property of a key in a query. 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: How to query for parent key property of an entity's key?
Something you may want to consider is that you are placing yourself within the limitations of entity groups by sticking children under parent keys. You may want to consider a model where the parent key is simply a field in the child and then run a simple query testing that the parentKey field is equal to the one you're looking for. This makes queries easier and prevents entity group lock-in. Cheers! On Mar 18, 8:55 am, tempy fay...@gmail.com wrote: I want to retrieve all entities that are children of one other particular entity, by checking if the parent-key property of the child's key matches the parent key. I have a reference to the parent entity but I want to avoid loading all of its children (as there may be many children, but I only need a few). Thus I want a query that looks something like this: query = pm.newQuery(select from + ChildClass.class.getName() + where :parentID.contains(ChildIDProperty.ParentID) SomeOtherProperty + filterString); But I'm not sure how to exactly address the parent key property of a key in a query. 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: Why do custom indexes require single-property indexes?
Not official but been doing this for a while. Your custom index is most likely build from the query. So, when you do Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); That is what builds your custom index. However, when you setUnindexedProperty here Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); You are not generating any index entries. So the issue isn't that adding custom indexes after-the-fact [is] really, really painful but that you are not generating any indexes for the datastore to run the queries against when you use setUnindexedProperty(). In other words, when you execute a query, it checks the index to give you results. But you marked your data as don't index me, so there is nothing for query to work with, as far as it is concerned, there's nothing in the datastore. Cheers! On Mar 16, 4:07 pm, Jeff Schnitzer j...@infohazard.org wrote: On Mon, Mar 15, 2010 at 11:04 PM, John Patterson jdpatter...@gmail.com wrote: On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote: I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. I also wondered why - I assume that the custom index build reads the single property indexes directly which must be more efficient than reading the Entities table. I guess that is possible, but seems like a poor design decision. It makes adding custom indexes after-the-fact really, really painful. Can someone official chime in on this? Is it intended behavior, or should we file an issue against it? The documentation doesn't say much on the subject, and all the conceptual explanation of queries suggests that these extra single-property indexes will be unused. Jeff -- 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 query for parent key property of an entity's key?
Use an ancestor-is query. This will find all entities which have a given ancestor as parent. It even works in a kind-less query, returning different kinds of entities under that parent. It's also quite efficient (especially from a pricing/CPU cost perspective) since theoretically, all this can be done on a single database node. I'm not sure how to do ancestor-is query with JDO (I use my own type- safe wrapper over low-level API), but you could try something like: select from ... where ANCESTOR=... (like __key__, ANCESTOR seems to be a reserved name in app engine) On Mar 18, 7:56 am, tempy fay...@gmail.com wrote: That's a good point, but in this case the resulting entity group arrangement is intentional. Lock-in isn't a worry, I can confidently say that these entity-group arrangements will last as long as the application does. Though, as you point out, I can make a parentKey field on the child, but since this parent key will also have to appear within the child's key, having such a field is redundant and I would rather avoid it. On Mar 18, 3:51 pm, Tristan tristan.slomin...@gmail.com wrote: Something you may want to consider is that you are placing yourself within the limitations of entity groups by sticking children under parent keys. You may want to consider a model where the parent key is simply a field in the child and then run a simple query testing that the parentKey field is equal to the one you're looking for. This makes queries easier and prevents entity group lock-in. Cheers! On Mar 18, 8:55 am, tempy fay...@gmail.com wrote: I want to retrieve all entities that are children of one other particular entity, by checking if the parent-key property of the child's key matches the parent key. I have a reference to the parent entity but I want to avoid loading all of its children (as there may be many children, but I only need a few). Thus I want a query that looks something like this: query = pm.newQuery(select from + ChildClass.class.getName() + where :parentID.contains(ChildIDProperty.ParentID) SomeOtherProperty + filterString); But I'm not sure how to exactly address the parent key property of a key in a query. 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: Why do custom indexes require single-property indexes?
Ugorji, I don't know if they will support re-indexing things based on new index definition, however, I did put in an issue back in August 2009 to be able to create a custom index term on the fly. See if this would partially solve the issue (again, it doesn't address reindexing already put entities). http://code.google.com/p/googleappengine/issues/detail?id=1935 Cheers! On Mar 18, 10:37 am, Ugorji ugo...@gmail.com wrote: +1 big-time on this. With the restriction that every index'able property must be indexed at put-time when put into the datastore (using setProperty as opposed to setUnindexedProperty), it has 2 MAJOR disadvantages with far-reaching repercussions: - you cannot index entities after they have been put (even with a custom index). You will have to re-write the entity to index it. - Each put is 4X more expensive in latency/clock-time (potentially), CPU-cost and storage. This seems un-necessary, especially if a single custom index will suffice all your querying needs. I was really hoping to use custom indexes to buy major performance savings (in latency, CPU-cost and storage), and also be able to re- index every entity after the fact. But this restriction is heavy (preventing direct solution to a problem everyone may end up facing), and very expensive (costing us big-time). Can one of the google guys respond to this, before we file a bug? Thanks. On Mar 16, 2:07 pm, Jeff Schnitzer j...@infohazard.org wrote: On Mon, Mar 15, 2010 at 11:04 PM, John Patterson jdpatter...@gmail.com wrote: On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote: I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. I also wondered why - I assume that the custom index build reads the single property indexes directly which must be more efficient than reading the Entities table. I guess that is possible, but seems like a poor design decision. It makes adding custom indexes after-the-fact really, really painful. Can someone official chime in on this? Is it intended behavior, or should we file an issue against it? The documentation doesn't say much on the subject, and all the conceptual explanation of queries suggests that these extra single-property indexes will be unused. Jeff -- 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: Why do custom indexes require single-property indexes?
Jeff, Sounds to me like you're correct in the not only don't set single- property indexes, but also don't include the property in any custom indexes interpretation of setUnindexedProperty. Can you post the link to the continuation post? I'm curious what Googlers have to say about it. Tristan On Mar 18, 11:13 am, Jeff Schnitzer j...@infohazard.org wrote: This doesn't make sense to me. Every scrap of documentation I've found says that GAE queries only follow a single index (the one exception being zigzag merges, which don't apply here). This means that to answer my query.filter(foo, fooValue1).sort(-bar), there must be an index that contains the foo and bar data sorted appropriately, no? Ie: /Thing/foo:fooValue1/bar:bar9/[thekeyvalue] /Thing/foo:fooValue1/bar:bar8/[thekeyvalue] /Thing/foo:fooValue1/bar:bar7/[thekeyvalue] /Thing/foo:fooValue2/bar:bar8/[thekeyvalue] /Thing/foo:fooValue2/bar:bar7/[thekeyvalue] To satisfy this query, GAE should start following this custom index and that's pretty much it. There's no reason for it to touch the single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC). ...and in my test, if I remove the custom index from datastore-indexes.xml, it doesn't work. But also if I use setUnindexedProperty, it doesn't work. It's like setUnindexedProperty is being interpreted as not only don't set single-property indexes, but also don't include the property in any custom indexes. This is counterintuitive - if I wanted the index not to be built, I can just remove the index. I realize now that perhaps I posted this to the wrong mailing list. The guys who created the I/O videos about the datastore seem to be python fans, so I'll retry my original post on the google-appengine list. Jeff On Thu, Mar 18, 2010 at 8:00 AM, Tristan tristan.slomin...@gmail.com wrote: Not official but been doing this for a while. Your custom index is most likely build from the query. So, when you do Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); That is what builds your custom index. However, when you setUnindexedProperty here Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); You are not generating any index entries. So the issue isn't that adding custom indexes after-the-fact [is] really, really painful but that you are not generating any indexes for the datastore to run the queries against when you use setUnindexedProperty(). In other words, when you execute a query, it checks the index to give you results. But you marked your data as don't index me, so there is nothing for query to work with, as far as it is concerned, there's nothing in the datastore. Cheers! On Mar 16, 4:07 pm, Jeff Schnitzer j...@infohazard.org wrote: On Mon, Mar 15, 2010 at 11:04 PM, John Patterson jdpatter...@gmail.com wrote: On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote: I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. I also wondered why - I assume that the custom index build reads the single property indexes directly which must be more efficient than reading the Entities table. I guess that is possible, but seems like a poor design decision. It makes adding custom indexes after-the-fact really, really painful. Can someone official chime in on this? Is it intended behavior, or should we file an issue against it? The documentation doesn't say much on the subject, and all the conceptual explanation of queries suggests that these extra single-property indexes will be unused. Jeff -- 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 athttp://groups.google.com/group/google-appengine-java?hl=en. -- 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: Why do custom indexes require single-property indexes?
Here's a link: http://groups.google.com/group/google-appengine/browse_thread/thread/2f6aa695a80fd5de Jeff On Thu, Mar 18, 2010 at 9:22 AM, Tristan tristan.slomin...@gmail.com wrote: Jeff, Sounds to me like you're correct in the not only don't set single- property indexes, but also don't include the property in any custom indexes interpretation of setUnindexedProperty. Can you post the link to the continuation post? I'm curious what Googlers have to say about it. Tristan On Mar 18, 11:13 am, Jeff Schnitzer j...@infohazard.org wrote: This doesn't make sense to me. Every scrap of documentation I've found says that GAE queries only follow a single index (the one exception being zigzag merges, which don't apply here). This means that to answer my query.filter(foo, fooValue1).sort(-bar), there must be an index that contains the foo and bar data sorted appropriately, no? Ie: /Thing/foo:fooValue1/bar:bar9/[thekeyvalue] /Thing/foo:fooValue1/bar:bar8/[thekeyvalue] /Thing/foo:fooValue1/bar:bar7/[thekeyvalue] /Thing/foo:fooValue2/bar:bar8/[thekeyvalue] /Thing/foo:fooValue2/bar:bar7/[thekeyvalue] To satisfy this query, GAE should start following this custom index and that's pretty much it. There's no reason for it to touch the single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC). ...and in my test, if I remove the custom index from datastore-indexes.xml, it doesn't work. But also if I use setUnindexedProperty, it doesn't work. It's like setUnindexedProperty is being interpreted as not only don't set single-property indexes, but also don't include the property in any custom indexes. This is counterintuitive - if I wanted the index not to be built, I can just remove the index. I realize now that perhaps I posted this to the wrong mailing list. The guys who created the I/O videos about the datastore seem to be python fans, so I'll retry my original post on the google-appengine list. Jeff On Thu, Mar 18, 2010 at 8:00 AM, Tristan tristan.slomin...@gmail.com wrote: Not official but been doing this for a while. Your custom index is most likely build from the query. So, when you do Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); That is what builds your custom index. However, when you setUnindexedProperty here Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); You are not generating any index entries. So the issue isn't that adding custom indexes after-the-fact [is] really, really painful but that you are not generating any indexes for the datastore to run the queries against when you use setUnindexedProperty(). In other words, when you execute a query, it checks the index to give you results. But you marked your data as don't index me, so there is nothing for query to work with, as far as it is concerned, there's nothing in the datastore. Cheers! On Mar 16, 4:07 pm, Jeff Schnitzer j...@infohazard.org wrote: On Mon, Mar 15, 2010 at 11:04 PM, John Patterson jdpatter...@gmail.com wrote: On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote: I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. I also wondered why - I assume that the custom index build reads the single property indexes directly which must be more efficient than reading the Entities table. I guess that is possible, but seems like a poor design decision. It makes adding custom indexes after-the-fact really, really painful. Can someone official chime in on this? Is it intended behavior, or should we file an issue against it? The documentation doesn't say much on the subject, and all the conceptual explanation of queries suggests that these extra single-property indexes will be unused. Jeff -- 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 athttp://groups.google.com/group/google-appengine-java?hl=en. -- 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
Re: [appengine-java] Re: Why do custom indexes require single-property indexes?
Thanks :) On Thu, Mar 18, 2010 at 11:55 AM, Jeff Schnitzer j...@infohazard.orgwrote: Here's a link: http://groups.google.com/group/google-appengine/browse_thread/thread/2f6aa695a80fd5de Jeff On Thu, Mar 18, 2010 at 9:22 AM, Tristan tristan.slomin...@gmail.com wrote: Jeff, Sounds to me like you're correct in the not only don't set single- property indexes, but also don't include the property in any custom indexes interpretation of setUnindexedProperty. Can you post the link to the continuation post? I'm curious what Googlers have to say about it. Tristan On Mar 18, 11:13 am, Jeff Schnitzer j...@infohazard.org wrote: This doesn't make sense to me. Every scrap of documentation I've found says that GAE queries only follow a single index (the one exception being zigzag merges, which don't apply here). This means that to answer my query.filter(foo, fooValue1).sort(-bar), there must be an index that contains the foo and bar data sorted appropriately, no? Ie: /Thing/foo:fooValue1/bar:bar9/[thekeyvalue] /Thing/foo:fooValue1/bar:bar8/[thekeyvalue] /Thing/foo:fooValue1/bar:bar7/[thekeyvalue] /Thing/foo:fooValue2/bar:bar8/[thekeyvalue] /Thing/foo:fooValue2/bar:bar7/[thekeyvalue] To satisfy this query, GAE should start following this custom index and that's pretty much it. There's no reason for it to touch the single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC). ...and in my test, if I remove the custom index from datastore-indexes.xml, it doesn't work. But also if I use setUnindexedProperty, it doesn't work. It's like setUnindexedProperty is being interpreted as not only don't set single-property indexes, but also don't include the property in any custom indexes. This is counterintuitive - if I wanted the index not to be built, I can just remove the index. I realize now that perhaps I posted this to the wrong mailing list. The guys who created the I/O videos about the datastore seem to be python fans, so I'll retry my original post on the google-appengine list. Jeff On Thu, Mar 18, 2010 at 8:00 AM, Tristan tristan.slomin...@gmail.com wrote: Not official but been doing this for a while. Your custom index is most likely build from the query. So, when you do Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); That is what builds your custom index. However, when you setUnindexedProperty here Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); You are not generating any index entries. So the issue isn't that adding custom indexes after-the-fact [is] really, really painful but that you are not generating any indexes for the datastore to run the queries against when you use setUnindexedProperty(). In other words, when you execute a query, it checks the index to give you results. But you marked your data as don't index me, so there is nothing for query to work with, as far as it is concerned, there's nothing in the datastore. Cheers! On Mar 16, 4:07 pm, Jeff Schnitzer j...@infohazard.org wrote: On Mon, Mar 15, 2010 at 11:04 PM, John Patterson jdpatter...@gmail.com wrote: On 16 Mar 2010, at 12:25, Jeff Schnitzer wrote: I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. I also wondered why - I assume that the custom index build reads the single property indexes directly which must be more efficient than reading the Entities table. I guess that is possible, but seems like a poor design decision. It makes adding custom indexes after-the-fact really, really painful. Can someone official chime in on this? Is it intended behavior, or should we file an issue against it? The documentation doesn't say much on the subject, and all the conceptual explanation of queries suggests that these extra single-property indexes will be unused. Jeff -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group athttp:// groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To
[appengine-java] Re: java.io.IOException: Could not fetch URL problem and google spreadsheet api
Any body got any clues on this ? On Mar 17, 12:44 pm, Rahul rahul.jun...@gmail.com wrote: I am trying to open a connection to the following service :http://translate.thoughtclicks.com/translateService/german/good morning which is definitely taking less then 5 seconds but i am still getting this exception any clue on this folks. My code to open the url connection is as follows. URL url = new URL(THIS_IS_THE_URL_MENTIONED_ABOVE); //make connection, use post mode, and send query URLConnection urlc = url.openConnection(); urlc.setDoOutput(true); //retrieve result BufferedReader br = new BufferedReader(new InputStreamReader(urlc.getInputStream())); Any Clues on this folks ? Thanks, Rahul On Mar 17, 12:27 pm, Rahul rahul.jun...@gmail.com wrote: Did you find the solution for this as i am having the problem ? Any help appreciated. Thanks, Rahul On Mar 16, 10:31 am, dominity domin...@gmail.com wrote: Hi, guys. When my application trying to put user credentials into spreadsheet service, I've got this exception: com.google.gdata.util.AuthenticationException: Error connecting with login URI at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthToken Factory.java: 479) at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAut hTokenFactory.java: 336) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java : 362) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java : 317) at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java : 301) Caused by: java.io.IOException: Could not fetch URL:https://www.google.com/accounts/ClientLogin at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationExc eption(URLFetchServiceImpl.java: 106) at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchService Impl.java: 39) at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler $Connection.fetchResponse(URLFetchServiceStreamHandler.java:404) at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler $Connection.getInputStream(URLFetchServiceStreamHandler.java:283) at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler $Connection.getResponseCode(URLFetchServiceStreamHandler.java:136) at com.google.gdata.client.GoogleAuthTokenFactory.makePostRequest(GoogleAuthTo kenFactory.java: 550) at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthToken Factory.java: 477) I'm using Eclipse Plug-In and GAE SDK v1.3.1. Also, I was trying my code with version 1.3.0 and 1.2.9. And I can tell you that this happens only with development server, error disappears on production server. That's point - I can't even do any debugging stuff. So, could you give me any feedback on this issue? Best regards, Alexander. -- 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] Is XMPPServiceFactory service down ?
Can you respond privately with your app id? On Thu, Mar 18, 2010 at 3:12 PM, Rahul rahul.jun...@gmail.com wrote: I am getting the following message again and again. Error for /_ah/xmpp/message/chat/ java.lang.NoClassDefFoundError: com/google/appengine/api/xmpp/ XMPPServiceFactory Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.xmpp.XMPPServiceFactory at com.google.appengine.runtime.Request.process-82178f5b5feb9148(Request.java) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Thanks, Rahul -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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] Google App Engine error
Ik heb een probleem met de Google App Engine. Lokaal draait het prima, maar als ik mijn project naar de Google App Engine server heb gedeployed en het daar wil bekijken, gaat het verkeerd. Het gaat om de volgende foutmelding: /index.jsp java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean at com.google.appengine.runtime.Request.process-45e9281fdbb0acf1(Request.java) at org.datanucleus.store.appengine.DatastoreFieldManager.fetchBooleanField(DatastoreFieldManager.java: 453) at org.datanucleus.state.AbstractStateManager.replacingBooleanField(AbstractStateManager.java: 1052) at project.Project.jdoReplaceField(Project.java) at project.Project.jdoReplaceFields(Project.java) at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java: 2772) at org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java: 2791) at org.datanucleus.store.appengine.DatastorePersistenceHandler.fetchObject(DatastorePersistenceHandler.java: 461) at org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo(DatastoreQuery.java: 545) at org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo(DatastoreQuery.java: 500) at org.datanucleus.store.appengine.query.DatastoreQuery.access $300(DatastoreQuery.java:108) at org.datanucleus.store.appengine.query.DatastoreQuery $6.apply(DatastoreQuery.java:618) at org.datanucleus.store.appengine.query.DatastoreQuery $6.apply(DatastoreQuery.java:610) at org.datanucleus.store.appengine.query.LazyResult.resolveNext(LazyResult.java: 94) at org.datanucleus.store.appengine.query.LazyResult $LazyAbstractListIterator.computeNext(LazyResult.java:215) at org.datanucleus.store.appengine.query.AbstractIterator.tryToComputeNext(AbstractIterator.java: 132) at org.datanucleus.store.appengine.query.AbstractIterator.hasNext(AbstractIterator.java: 127) at org.datanucleus.store.appengine.query.LazyResult $AbstractListIterator.hasNext(LazyResult.java:169) at project.GetProject.getProjectsDashboard(GetProject.java:33) at org.apache.jsp.index_jsp._jspService(index_jsp.java:52) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1093) at cwipstoremoteuserfilter.filter.CwipsToRemoteUserFilter.doFilter(CwipsToRemoteUserFilter.java: 78) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at cwipsclient.cas.client.filter.CASFilter.doFilter(CASFilter.java: 79) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java: 97) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 35) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java: 238) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: 139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: 506) at org.mortbay.jetty.HttpConnection $RequestHandler.headerComplete(HttpConnection.java:830) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java: 76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 235) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $6.handleBlockingRequest(RuntimePb.java:5485) at
[appengine-java] Suddenly getting Unknown attribute type (com.google.appengine.api.datastore.Key) for attribute key.
Hi, I've been successfully building my project each day. Today I come to it and attempt to start it in the debugger when I get the above error. Here is some of the stack trace: org.apache.jasper.JasperException: /kickboxking.jsp(23,28) Unknown attribute type (com.google.appengine.api.datastore.Key) for attribute key. at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java: 39) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java: 409) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java: 238) at org.apache.jasper.compiler.Validator $ValidateVisitor.checkXmlAttributes(Validator.java:932) at org.apache.jasper.compiler.Validator $ValidateVisitor.visit(Validator.java:696) at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) at org.apache.jasper.compiler.Node$Root.accept(Node.java:456) at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) at org.apache.jasper.compiler.Validator.validate(Validator.java:1475) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java: 214) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:470) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java: 511) ... So, it's when compiling the JSP. I don't know if it's when resolving the tag or the jsp that it encounters this unknown, but no matter - neither has been changed(!) since it was compiling just fine. Also, I can see the appengine-api jar on the build path (as it was from when the project was setup under Eclipse). Here's an extract from the JSP: %@ page contentType=text/html;charset=UTF-8 language=java % %@ page import=java.util.List % %@ page import=com.google.appengine.api.users.User % %@ page import=com.google.appengine.api.users.UserService % %@ page import=com.google.appengine.api.users.UserServiceFactory % %@ page import=com.google.appengine.api.datastore.Key % %@ taglib uri=/WEB-INF/kickboxking.tld prefix=kbk % html body div id=header % UserService userService = UserServiceFactory.getUserService(); if (session.getAttribute(activePlayerId) != null) { % kbk:playerName key=%= (Key)session.getAttribute(activePlayerId) %/! (You can a href=signOut.jspsign out/a.)/p /div ... It's falling over on that kbk:playerName tag Pure bit-rot as it was fine when I was running it yesterday :-( Steve -- 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: Geospatial data management with GAE Java
There is a java port of the Geomodel project in java which you can try out. On Mar 17, 1:39 am, fvisticot fvisti...@gmail.com wrote: I know that Geomodel is a solution for python users to manage geospatial information. What is available for GAE Java users in term of Geospatial data management ? What is the best solution ? Is there a native approach provided by GAE Java ? In case no solution is available, what are the workarrounds ? Is Google Maps Data Api the solution ? Fred. -- 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] Any way to call Java Compiler directly on GAE ?
Hi there, Is there any way to call the java compiler itself in a GAE application ? I would like to port some Java code generator / compiler from regular servers to GAE but the prereq is to be able to compile directly on GAE. I don't find appropriate call in the JRE white list (http:// code.google.com/appengine/docs/java/jrewhitelist.html) thanks didier -- 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: Unable to upload application
Yep, we had a bad admin console push and deploys were affected from 3:10pm PST until 4:30pm PST. All better now. Apologies. On Thu, Mar 18, 2010 at 3:50 PM, Huebi konrad.hueb...@googlemail.com wrote: here as well :( On 18 Mrz., 23:42, François Masurel fm2...@mably.com wrote: Same problem here too :-( On 18 mar, 23:30, Sandeep Sathaye sandeep.sath...@gmail.com wrote: I am having the same problem. On Thu, Mar 18, 2010 at 6:26 PM, Peter Ondruska peter.ondru...@gmail.comwrote: I am trying to upload my application but it fails everytime: com.google.appengine.tools.admin.AdminException: Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=f72dzzn5q5q... 500 Internal Server Error Server Error (500) A server error has occurred. at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 62) at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngin eBridgeImpl.java: 271) at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(De ployProjectJob.java: 145) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorksp aceJob.java: 38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=f72dzzn5q5q... 500 Internal Server Error Server Error (500) A server error has occurred. at com.google.appengine.tools.admin.ServerConnection.send(ServerConnection.jav a: 149) at com.google.appengine.tools.admin.ServerConnection.post(ServerConnection.jav a: 82) at com.google.appengine.tools.admin.AppVersionUpload.send(AppVersionUpload.jav a: 532) at com.google.appengine.tools.admin.AppVersionUpload.beginTransaction(AppVersi onUpload.java: 349) at com.google.appengine.tools.admin.AppVersionUpload.doUpload(AppVersionUpload .java: 111) at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java: 56) ... 4 more -- 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.comgoogle-appengine-java%2B unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- 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. -- 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] Does memcache get clean when new version deployed and made to be the default one?
Hi all, does memcache get clean when new version deployed and made to be the default one? -- 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.
[google-appengine] Re: GAE getting CAPTCHA-locked by Google Apps?
Hi Tim - no, we're not. A session might be created for a user based on their activity, so maybe a few times a day. We're definitely not hammering the system... J On Mar 18, 2:14 am, Tim Hoffman zutes...@gmail.com wrote: I have had problems in the past where I was using a lot of remote_api calls into appengine. What I found was, on each call I wasn't reusing an already authenticated session, which meant after a number of calls I would be hit with acaptchalock. (it seems higher up google infrastructure didn't like me creating new authenticated session for each call - aside from the fact it isn't very efficient ;-) Maybe thats whats happening in your case, it might be worthing checking to see if you are creating a new authenticated session frequently. Rgds T On Mar 16, 4:15 am, Jan Z jan.zawad...@gmail.com wrote: gdata ClientLogin calls from GAE (and from GAE only) appear to get frequent spuriousCAPTCHAlocks. By spurious I mean that another ClientLogin attempt a couple of seconds later succeeds (with same credentials), so there is no need for users to actually go through the unlockcaptcha step. We can reproduce this on GAE reliably (as in acaptchaoccurring one or more times for every five attempts) using gdata (python) or straight protocol access with urlfetch. Same code runs on local SDK without encountering a singlecaptcha. So it looks like the API iscaptcha-locking the GAE. We have an existing support case #00618963 for this, would be great to get someone from the GAE team to have a look please? Jan -- 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: Increasing Task Queue Quota Limit
generally nothing you can do about those... i would say you can try your code in the development server where they all queue up and you have to execute manually (or flush them as desired). at least this way, you can catch runaway situation before it hits you in production. more info about this here: http://code.google.com/appengine/docs/python/taskqueue/overview.html#Task_Queues_and_the_Development_Server right now, you're good to go and only at 6% of your quota 55096 of 1M. best regards, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 Python Fundamentals, Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+...@google.com developer relations :: google app engine -- 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: Access group info?
victor, at this point, i don't believe there is a way to do this as our (App Engine) interaction with Google Apps doesn't really go much beyond making your app be restricted to your Google Apps domain and users: http://code.google.com/appengine/articles/domains.html this would be different, if Google Apps had an API that let you make such a query. if anyone has been able to do what the OP requested, let me know. in general, there isn't much interaction between the Apps and App Engine except for what's described above. best regards, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 Python Fundamentals, Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+...@google.com developer relations :: google app engine -- 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: Password For Loading Data Into My Local GAE Instance
greetings jorge, i'm not sure why you're being prompted for the login when trying to upload to the dev server. unfortunately, i'm not in the office this week, but my guess is because you have login: admin in your app.yaml file for remote_api which will require an admin login. this is there for obvious reasons on production but perhaps you can remove that line when trying to upload to your dev server and maybe it won't prompt for the admin login info. let me know if this works! thanks, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 Python Fundamentals, Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+...@google.com developer relations :: google app engine -- 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: App Engine account activation
greetings and welcome to Google App Engine! the email message you're referring to should be sent fairly quickly. pls doublecheck your spam/bulk mail folder to see if it was accidentally delivered there. if you cannot find it, can you cut-n- paste us the error you get when you try to upload your app? thanks, -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 Python Fundamentals, Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+...@google.com developer relations :: google app engine -- 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: Storage for geo-points
generally we cannot change the maximum number of applications you can unless you can demonstrate and justify a legitimate reasons why you need more applications. in other words, it's not impossible but just not likely. if you still want to try this, go fill out the form you can access from: http://code.google.com/appengine/kb/billing.html#cpu -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Core Python Programming, Prentice Hall, (c)2007,2001 Python Fundamentals, Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+...@google.com developer relations :: google app engine -- 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] interval intersection - datastore modeling
i have objects which store a 'start' and 'end' position. given an arbitrary interval, i'd like to return all objects with which it intersects. can anyone think of an approach to modeling this on datastore? -- 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] interval intersection - datastore modeling
are they dates? floating point values? values on a scale from 1 to 5? all of the above? On 18 March 2010 19:28, jeremy jeremy.a...@gmail.com wrote: i have objects which store a 'start' and 'end' position. given an arbitrary interval, i'd like to return all objects with which it intersects. can anyone think of an approach to modeling this on datastore? -- 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: Post-mortem for February 24th, 2010 outage
Thanks for posting this. The transparency helps greatly. I would like to add my vote to Chris's though regarding splitting bigtable operations. It's a mistake. The enormous appeal of the App Engine today is that you've done an amazing job shielding us from needing to make these sorts of decisions. *THAT* is the hard problem that GAE is addressing. By making distinctions such as this one, you're fundamentally shifting your direction away from what ought to be (and has been?) a key design principle. In short - please don't make us choose. Just make it work. Jan / Cloudbreak On Mar 5, 12:22 pm, App Engine Team appengine.nore...@gmail.com wrote: Post-Mortem Summary This document details the cause and events occurring immediately after App Engine's outage on February 24th, 2010, as well as the steps we are taking to mitigate the impact of future outages like this one in the future. On February 24th, 2010, all Googe App Engine applications were in varying degraded states of operation for a period of two hours and twenty minutes from 7:48 AM to 10:09 AM PT | 15:48 to 18:09 GMT. The underlying cause of the outage was a power failure in our primary datacenter. While the Google App Engine infrastructure is designed to quickly recover from these sort of failures, this type of rare problem, combined with internal procedural issues extended the time required to restore the service. Link to full timeline here, which is attached below. What did we do wrong? Though the team had planned for this sort of failure, our response had a few important issues: - Although we had procedures ready for this sort of outage, the oncall staff was unfamiliar with them and had not trained sufficiently with the specific recovery procedure for this type of failure. - Recent work to migrate the datastore for better multihoming changed and improved the procedure for handling these failures significantly. However, some documentation detailing the procedure to support the datastore during failover incorrectly referred to the old configuration. This led to confusion during the event. - The production team had not agreed on a policy that clearly indicates when, and in what situations, our oncall staff should take aggressive user-facing actions, such as an unscheduled failover. This led to a bad call of returning to a partially working datacenter. - We failed to plan for the case of a power outage that might affect some, but not all, of our machines in a datacenter (in this case, about 25%). In particular, this led to incorrect analysis of the serving state of the failed datacenter and when it might recover. - Though we were able to eventually migrate traffic to the backup datacenter, a small number of Datastore entity groups, belonging to approximately 25 applications in total, became stuck in an inconsistent state as a result of the failover procedure. This represented considerably less than 0.2% of data stored in the Datastore. Ultimately, although significant work had been done over the past year to improve our handling of these types of outages, issues with procedures reduced their impact. What are we doing to fix it? As a result, we have instituted the following procedures going forward: - Introduce regular drills by all oncall staff of all of our production procedures. This will include the rare and complicated procedures, and all members of the team will be required to complete the drills before joining the oncall rotation. - Implement a regular bi-monthly audit of our operations docs to ensure that all needed procedures are properly findable, and all out- of-date docs are properly marked Deprecated. - Establish a clear policy framework to assist oncall staff to quickly and decisively make decisions about taking intrusive, user-facing actions during failures. This will allow them to act confidently and without delay in emergency situations. We believe that with these new procedures in place, last week's outage would have been reduced in impact from about 2 hours of total unavailability to about 10 to 20 minutes of partial unavailability. In response to this outage, we have also decided to make a major infrastructural change in App Engine. Currently, App Engine provides a one-size-fits-all Datastore, that provides low write latency combined with strong consistency, in exchange for lower availability in situations of unexpected failure in one of our serving datacenters. In response to this outage, and feedback from our users, we have begun work on providing two different Datastore configurations: - The current option of low-latency, strong consistency, and lower availability during unexpected failures (like a power outage) - A new option for higher availability using synchronous replication for reads and writes, at the cost of significantly higher latency We believe that providing both of these options to you, our users, will allow
[google-appengine] anybody success with blobstore upload via JS / iframe
I am experimenting with large blob uploads. Everything works fine as long as I submit a form to do the upload. But I would prefer to use a page-refresh-less solution. So I tried no noswfupload.js and iframe approach ajaxupload.js, but none of them seem to work out of the box, and I get the following error message. SEVERE: Must only return a redirect from a Blobstore upload callback. if I look at the development server admin panel, the __BlobInfo__ table entry actually gets created, but not the entry containing the actual file Anybody got ajax blob upload working ? Or has suggestion why it fails in my case ? -- 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] Password For Loading Data Into My Local GAE Instance
Appcfg and bulkloader seem to always prompt for credentials.. But you can type anything in when uploading to dev_appserver. Copy paste the exact command you're using and the full error you are getting. Are you sending the --app_id flag to the command? On 3/13/10, Jorge Lugo jlug...@gmail.com wrote: I tried the following command to upload files to my local GAE. I get prompted for an email address and password. What do I use for this since it is local? My Google email and password don't work. appcfg.py upload_data --config_file=upload.py --filename=cards.csv -- kind=Card --url=http://localhost:8080/remote_api .. -- 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. -- Sent from my mobile device -- 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: Email Idempotence
I would pass of the email sending to a task queue, and wrap the success of the send in a transaction and only update to yes if the email send call returns ok. At least you off load your work from the primary transaction. Remember email isn't really a reliable service, and even if you do mark it as sent it may never reach the recipient. Pushing the send email workload and recording if you sent it into a task should not really cost you to much in end user response times/latency. As someone else put it email is not transactional in any sense. Its very much a throw it over the fence and hope it gets there in the next few days T On Mar 18, 11:47 am, prgmratlarge yossiele...@gmail.com wrote: I guess all of you are technically correct. However, the solutions given were either: a) introduce a tremendous amount of latency/CPU usage in terms of putting/checking/deleting things from the datastore b) live with it. I think it's kind of weird for them to use this specific case as an example, when it clearly isn't the best example. I guess I'll just have to hope that everything goes okay, and write lots of try/except clauses in my code to make sure the little things don't mess stuff up. Thanks anyways, On Mar 17, 9:46 pm, Eli Jones eli.jo...@gmail.com wrote: Like Tim says... if you're really worried about sending out a duplicate e-mail from time to time... then you'll need to design your mailer task to do something like this: 1. Mailer task starts.. gets a batch of work from some datastore Model that serves as your queue. 2. Process a row of work, and after you successfully send out an e-mail for that row delete the row from your queue. Then just do step 2 over and over until you finish all of your work.. or if some error forces the task to retry.. then it should get a new batch of work from your queue.. which should now contain only entities that have not been processed. The only case where you'd get a duplicate email sent for a row of work would be if the email successfully was sent out.. but an error occurred when trying to remove the row from your queue. And, even in that case, you could add try: except: blocks to do everything possible to avoid that (just retry the db.delete() from your queue, etc). (Then, only the 30 second limit would be a concern.. but you can handle that as well). Then again, you really have to be adamant about avoiding the potential duplicate e-mail issue to do this sort of thing. On Wed, Mar 17, 2010 at 8:53 PM, Tim Hoffman zutes...@gmail.com wrote: Well could yo record if you sent any particular email, and not resend it ? On Mar 18, 6:05 am, prgmratlarge yossiele...@gmail.com wrote: When implementing the code for Tasks (as worker URLs within your app), it is important that you consider whether the task is idempotent. App Engine's Task Queue API is designed to only invoke a given task once, however it is possible in exceptional circumstances that a Task may execute multiple times (e.g. in the unlikely case of major system failure). Thus, your code must ensure that there are no harmful side-effects of repeated execution. -http://code.google.com/ appengine/docs/python/taskqueue/overview.html According to this part of the documentation, it would seem that setting up an email-sending task-queue is impossible. After all, sending someone the same email thousands of times would be disastrous. Yet the documentation also gives email sending as an example use of the Task Queue. This seems to be contradictory. How can I create a Task Queue for sending email without running into problems of idempotence? Thanks for your help. -- 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: interval intersection - datastore modeling
sounds like the 3D graphics guys solved this problem... if you post the solution perhaps i'll be able to suggest on how to do it in a datastore On Mar 18, 4:16 am, Scott Ellis sje...@gmail.com wrote: are they dates? floating point values? values on a scale from 1 to 5? all of the above? On 18 March 2010 19:28, jeremy jeremy.a...@gmail.com wrote: i have objects which store a 'start' and 'end' position. given an arbitrary interval, i'd like to return all objects with which it intersects. can anyone think of an approach to modeling this on datastore? -- 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] Rollback Transaction not working?!?!?
Hi Blake, Can you please include the code in which you enqueue the task? -Nick Johnson On Thu, Mar 18, 2010 at 4:00 AM, Blake blakecaldw...@gmail.com wrote: A bug in my code sent my tasks out of control, so I'm temporarily at my limit for the day. One of my database inserts is in a transaction that kicks off a task, per instructions here: http://code.google.com/appengine/docs/java/taskqueue/overview.html#Task_Within_Transactions As expected, the task queuing failed because of my quota issues, but my database insert succeeded. This isn't good. I verified that I'm calling rollback on my transaction, but my record it still making it to the database. What am I doing wrong!?!? here's the basic logic: Transaction tx = pm.currentTransaction(); try{ tx.begin() Foo foo = pm.getObjectById(...) foo.setBar(1); pm.makePersistent(foo); // queue up task (throws an exception) tx.commit(); } finally { if(tx.isActive()) { // i verified that this is happening with a log statement tx.rollback(); } } I verified that rollback is happening with a lot statement in that last block, but like I said, the database gets the record. My temporary fix will be to try to queue up the task before committing the record to the database, but then I'm relying on the task killing itself later on when a database exception occurs. Am I using transactions wrong? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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: Using String as primary key and loading large objects?
I just want to suggest that you should probably use Long as a primary key. Initially there won't be any issues using String, but then eventually you'll run into something where you have the same titles and it will be a legitimate case, and you'll end up doing all sorts of gymnastics in order to allow them to coexist but still have unique primary keys. I haven't ran into any issues with Long primary keys yet. On Mar 16, 11:45 am, Mark mar...@gmail.com wrote: Hi, Kind of new to this, two questions if anyone can help: 1) I want to make some class that is persistent on the data store. I can use a primary key of either Long or String. It would be more convenient for me to use String as the primary key. Is this going to really hurt performance-wise when doing lookups for objects vs a Long? 2) I have some objects which are somewhat large, like: public class Story { private String mId; private String mTitle; private String mFullText; -- large } if I want to get a list of Story items, I don't want to spend time loading the mFullText parameter on each one. I can hold off on loading that until a user wants to see the full story. Is there a way to implement two different load methods for Story to control this? Or do we simply break a class like this up into two separate classes: public class StoryDescription { private String mId; private String mTitle; } public class StoryText { private String mId; private String mFullText; } and load as needed? Thanks -- 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: Using String as primary key and loading large objects?
As to question 2. It depends what you use to interface with the datastore. I can only speak for low-level datastore api, and in that case, the whole thing gets loaded at once. So splitting your objects into two entities would make sense. On the other hand, remember that there is 1MB limit in the datastore, so you may want to explore Blobstore API, so that your object now looks like: public class Story { private String mId; private String mTitle; private something BlobstoreApiKey; - not large anymore } Cheers! On Mar 18, 9:42 am, Tristan tristan.slomin...@gmail.com wrote: I just want to suggest that you should probably use Long as a primary key. Initially there won't be any issues using String, but then eventually you'll run into something where you have the same titles and it will be a legitimate case, and you'll end up doing all sorts of gymnastics in order to allow them to coexist but still have unique primary keys. I haven't ran into any issues with Long primary keys yet. On Mar 16, 11:45 am, Mark mar...@gmail.com wrote: Hi, Kind of new to this, two questions if anyone can help: 1) I want to make some class that is persistent on the data store. I can use a primary key of either Long or String. It would be more convenient for me to use String as the primary key. Is this going to really hurt performance-wise when doing lookups for objects vs a Long? 2) I have some objects which are somewhat large, like: public class Story { private String mId; private String mTitle; private String mFullText; -- large } if I want to get a list of Story items, I don't want to spend time loading the mFullText parameter on each one. I can hold off on loading that until a user wants to see the full story. Is there a way to implement two different load methods for Story to control this? Or do we simply break a class like this up into two separate classes: public class StoryDescription { private String mId; private String mTitle; } public class StoryText { private String mId; private String mFullText; } and load as needed? Thanks -- 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] Why do custom indexes require single-property indexes?
For those of you reading this thread on appengine-java, I apologize. However, I realized that this is really a general appengine question and might get a better response from someone in the know here. Here's the appengine-java thread: http://groups.google.com/group/google-appengine-java/browse_thread/thread/efed35cabf60f6ee -- I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. Why? I have a custom index, therefore the query should not need or touch the single-property indexes on these fields, right? With this requirement, adding a single custom index means the datastore must now update (at least) five indexes on every put() - the single-value ASC and DESC indexes of both properties as well as my custom index. That's gotta hurt. Here's a test case using the low-level API: /** */ @Test public void lowLevelTest() throws Exception { DatastoreService service = DatastoreServiceFactory.getDatastoreService(); Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); // switching to this works //ent.setProperty(foo, fooValue); //ent.setProperty(bar, 123L); service.put(ent); Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); PreparedQuery pq = service.prepare(query); int count = 0; for (Entity fetched: pq.asIterable()) { count++; } assert count == 1; } The last assertion fails. The query doesn't find any results. The automatic datastore index seems to be fine: !-- Indices written at Mon, 15 Mar 2010 21:49:01 PDT -- datastore-indexes !-- Used 1 time in query history -- datastore-index kind=Thing ancestor=false source=auto property name=foo direction=asc/ property name=bar direction=desc/ /datastore-index /datastore-indexes What's up? Is this just a bug in the dev mode, or is there a real requirement that all properties must have single-value indexes in order to be part of a custom index? Thanks, 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.
Re: [google-appengine] Does datastore cache for ReferenceProperty?
Hi Shinichi, Referenced entities are cached against the entity that's doing the referencing - so if you have multiple entities referencing the same entity, it'll be fetched multiple times. You can work around this by passing it in, as you suggest, or by using a prefetch recipe such as this one: http://blog.notdot.net/2010/01/ReferenceProperty-prefetching-in-App-Engine In general, Guido's appstats is an excellent tool for diagnosing these sort of things: https://sites.google.com/site/appengineappstats/ -Nick Johnson On Tue, Mar 16, 2010 at 7:39 AM, Shinichi Nakanishi stouton...@gmail.comwrote: Does datastore run query for Instructor each time? Or does it some sort of cache thing? If I have these models: class Instructor(db.Model) firstName = db.StringProperty() lastName = db.StringProperty() class Participant(db.Model) firstName = db.StringProperty() lastName = db.StringProperty() workshop = db.ReferenceProperty(Workshop, collection_name = participants) class Workshop(db.Model) instructor = db.ReferenceProperty(Instructor) Then if I do the following, workshop = Workshop.all().get() for participant in workshop.participants: someMethod(workshop, participant) def someMethod(self, workshop, participant) if (workshop.instructor... # does it run query every time or does it cache? If datastore queries Instructor every time when I do workshop.instructor, I thought I should pass instructor as an argument. Shinichi -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Why do custom indexes require single-property indexes?
Hi Jeff, Unindexed properties are excluded from all indexing, not just from indexing by the built-in indexes. -Nick Johnson On Thu, Mar 18, 2010 at 4:27 PM, Jeff Schnitzer j...@infohazard.org wrote: For those of you reading this thread on appengine-java, I apologize. However, I realized that this is really a general appengine question and might get a better response from someone in the know here. Here's the appengine-java thread: http://groups.google.com/group/google-appengine-java/browse_thread/thread/efed35cabf60f6ee -- I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. Why? I have a custom index, therefore the query should not need or touch the single-property indexes on these fields, right? With this requirement, adding a single custom index means the datastore must now update (at least) five indexes on every put() - the single-value ASC and DESC indexes of both properties as well as my custom index. That's gotta hurt. Here's a test case using the low-level API: /** */ @Test public void lowLevelTest() throws Exception { DatastoreService service = DatastoreServiceFactory.getDatastoreService(); Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); // switching to this works //ent.setProperty(foo, fooValue); //ent.setProperty(bar, 123L); service.put(ent); Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); PreparedQuery pq = service.prepare(query); int count = 0; for (Entity fetched: pq.asIterable()) { count++; } assert count == 1; } The last assertion fails. The query doesn't find any results. The automatic datastore index seems to be fine: !-- Indices written at Mon, 15 Mar 2010 21:49:01 PDT -- datastore-indexes !-- Used 1 time in query history -- datastore-index kind=Thing ancestor=false source=auto property name=foo direction=asc/ property name=bar direction=desc/ /datastore-index /datastore-indexes What's up? Is this just a bug in the dev mode, or is there a real requirement that all properties must have single-value indexes in order to be part of a custom index? Thanks, 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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: Why do custom indexes require single-property indexes?
From one of my followup posts: Every scrap of documentation I've found says that GAE queries only follow a single index (the one exception being zigzag merges, which don't apply here). This means that to answer my query.filter(foo, fooValue1).sort(-bar), there must be an index that contains the foo and bar data sorted appropriately, no? Ie: /Thing/foo:fooValue1/bar:bar9/[thekeyvalue] /Thing/foo:fooValue1/bar:bar8/[thekeyvalue] /Thing/foo:fooValue1/bar:bar7/[thekeyvalue] /Thing/foo:fooValue2/bar:bar8/[thekeyvalue] /Thing/foo:fooValue2/bar:bar7/[thekeyvalue] To satisfy this query, GAE should start following this custom index and that's pretty much it. There's no reason for it to touch the single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC). ...and in my test, if I remove the custom index from datastore-indexes.xml, it doesn't work. But also if I use setUnindexedProperty, it doesn't work. It's like setUnindexedProperty is being interpreted as not only don't set single-property indexes, but also don't include the property in any custom indexes. This is counterintuitive - if I wanted the index not to be built, I can just remove the index. Jeff On Thu, Mar 18, 2010 at 9:27 AM, Jeff Schnitzer j...@infohazard.org wrote: For those of you reading this thread on appengine-java, I apologize. However, I realized that this is really a general appengine question and might get a better response from someone in the know here. Here's the appengine-java thread: http://groups.google.com/group/google-appengine-java/browse_thread/thread/efed35cabf60f6ee -- I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. Why? I have a custom index, therefore the query should not need or touch the single-property indexes on these fields, right? With this requirement, adding a single custom index means the datastore must now update (at least) five indexes on every put() - the single-value ASC and DESC indexes of both properties as well as my custom index. That's gotta hurt. Here's a test case using the low-level API: /** */ @Test public void lowLevelTest() throws Exception { DatastoreService service = DatastoreServiceFactory.getDatastoreService(); Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); // switching to this works //ent.setProperty(foo, fooValue); //ent.setProperty(bar, 123L); service.put(ent); Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); PreparedQuery pq = service.prepare(query); int count = 0; for (Entity fetched: pq.asIterable()) { count++; } assert count == 1; } The last assertion fails. The query doesn't find any results. The automatic datastore index seems to be fine: !-- Indices written at Mon, 15 Mar 2010 21:49:01 PDT -- datastore-indexes !-- Used 1 time in query history -- datastore-index kind=Thing ancestor=false source=auto property name=foo direction=asc/ property name=bar direction=desc/ /datastore-index /datastore-indexes What's up? Is this just a bug in the dev mode, or is there a real requirement that all properties must have single-value indexes in order to be part of a custom index? Thanks, 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.
Re: [google-appengine] Re: Why do custom indexes require single-property indexes?
On Thu, Mar 18, 2010 at 4:32 PM, Jeff Schnitzer j...@infohazard.org wrote: From one of my followup posts: Every scrap of documentation I've found says that GAE queries only follow a single index (the one exception being zigzag merges, which don't apply here). This means that to answer my query.filter(foo, fooValue1).sort(-bar), there must be an index that contains the foo and bar data sorted appropriately, no? Ie: /Thing/foo:fooValue1/bar:bar9/[thekeyvalue] /Thing/foo:fooValue1/bar:bar8/[thekeyvalue] /Thing/foo:fooValue1/bar:bar7/[thekeyvalue] /Thing/foo:fooValue2/bar:bar8/[thekeyvalue] /Thing/foo:fooValue2/bar:bar7/[thekeyvalue] To satisfy this query, GAE should start following this custom index and that's pretty much it. There's no reason for it to touch the single-property indexes (foo ASC, foo DESC, bar ASC, and bar DESC). ...and in my test, if I remove the custom index from datastore-indexes.xml, it doesn't work. But also if I use setUnindexedProperty, it doesn't work. It's like setUnindexedProperty is being interpreted as not only don't set single-property indexes, but also don't include the property in any custom indexes. This is counterintuitive - if I wanted the index not to be built, I can just remove the index. That's correct. Entities are evaluated individually, not as a group, and any unindexed properties are ignored for the purposes of all indexing, not just for built-in indexes. -Nick Johnson Jeff On Thu, Mar 18, 2010 at 9:27 AM, Jeff Schnitzer j...@infohazard.org wrote: For those of you reading this thread on appengine-java, I apologize. However, I realized that this is really a general appengine question and might get a better response from someone in the know here. Here's the appengine-java thread: http://groups.google.com/group/google-appengine-java/browse_thread/thread/efed35cabf60f6ee -- I'm puzzled by the behavior of custom indexes. I have a simple test case below, a simple equality filter on one property combined with a descending sort on another property. If I set the properties with setUnindexedProperty(), the query fails to find the result. If I set the properties with setProperty(), it does. Why? I have a custom index, therefore the query should not need or touch the single-property indexes on these fields, right? With this requirement, adding a single custom index means the datastore must now update (at least) five indexes on every put() - the single-value ASC and DESC indexes of both properties as well as my custom index. That's gotta hurt. Here's a test case using the low-level API: /** */ @Test public void lowLevelTest() throws Exception { DatastoreService service = DatastoreServiceFactory.getDatastoreService(); Entity ent = new Entity(Thing); ent.setUnindexedProperty(foo, fooValue); ent.setUnindexedProperty(bar, 123L); // switching to this works //ent.setProperty(foo, fooValue); //ent.setProperty(bar, 123L); service.put(ent); Query query = new Query(Thing); query.addFilter(foo, FilterOperator.EQUAL, fooValue); query.addSort(bar, SortDirection.DESCENDING); PreparedQuery pq = service.prepare(query); int count = 0; for (Entity fetched: pq.asIterable()) { count++; } assert count == 1; } The last assertion fails. The query doesn't find any results. The automatic datastore index seems to be fine: !-- Indices written at Mon, 15 Mar 2010 21:49:01 PDT -- datastore-indexes !-- Used 1 time in query history -- datastore-index kind=Thing ancestor=false source=auto property name=foo direction=asc/ property name=bar direction=desc/ /datastore-index /datastore-indexes What's up? Is this just a bug in the dev mode, or is there a real requirement that all properties must have single-value indexes in order to be part of a custom index? Thanks, 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Re: Auth with google apps acc ounts — depends on billing status?
Hi Denis, Auth via appspot.com will only work if you've added that app to your Google Apps control panel. The error you're seeing is because you haven't added this second app to your Apps control panel. -Nick Johnson On Mon, Mar 15, 2010 at 10:48 PM, Denis Moskalets denya@gmail.comwrote: Both apps have auth through the same google apps domain. Copy-paste from from both apps - appspot.com - Application Settings: Authentication Options: When this application was created it was configured to allow anyone with a valid xxx.xx Google Apps domain to sign in if the Google Accounts API is used for authentication. Learn more Only difference between two apps: one have billing enabled, another — doesn't have. On Mar 15, 4:57 pm, Wooble geoffsp...@gmail.com wrote: On Mar 15, 3:06 am, Denis Moskalets denya@gmail.com wrote: I have two appspot applications. One — fot tests, second — production. Not important, why it is so. Two apps have same source code. Auth throw Google Apps Accounts enabled on both. Billing enabled only for one app. Apps are closed for public, so only registred and authorized users can access it. When u try to open page, you will get redirect to default google apps login page. So. When i try to open production app — all right, i've got redirect to login page:http://ctms-release.appspot.com/ The second app generate 500 eror.http://ctms-medms-test.appspot.com/ In logs: File /base/data/home/apps/ctms-medms-test/.../googletags.py, line 11, in google_login_url return escape(users.create_login_url(redirect)) File /base/python_lib/versions/1/google/appengine/api/users.py, line 179, in create_login_url raise NotAllowedError Billing is turned off for this non-workin' app. I've looked up manual, docs and FAQs, but there is nothing about difference in login procedure between free/billed apps. If an application has login restricted to a Google Apps domain, you cannot create login URLs when the page is being visited through appspot; it's only possible on the actual domain to which login is restricted. I'd guess you only actually restricted logins on the test application and not the real application; you can check this (but, alas, not change it) under Application Settings in the appengine dashboard. Billing should not have any effect on the login process, as far as I know. -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Does datastore cache for ReferenceProperty?
Hi Nick, Thank you for your response. That was exactly what I wanted to know. AppStats looks pretty neat and I will try to use that. Shinichi On Thu, Mar 18, 2010 at 09:29, Nick Johnson (Google) nick.john...@google.com wrote: Hi Shinichi, Referenced entities are cached against the entity that's doing the referencing - so if you have multiple entities referencing the same entity, it'll be fetched multiple times. You can work around this by passing it in, as you suggest, or by using a prefetch recipe such as this one: http://blog.notdot.net/2010/01/ReferenceProperty-prefetching-in-App-Engine In general, Guido's appstats is an excellent tool for diagnosing these sort of things: https://sites.google.com/site/appengineappstats/ -Nick Johnson On Tue, Mar 16, 2010 at 7:39 AM, Shinichi Nakanishi stouton...@gmail.com wrote: Does datastore run query for Instructor each time? Or does it some sort of cache thing? If I have these models: class Instructor(db.Model) firstName = db.StringProperty() lastName = db.StringProperty() class Participant(db.Model) firstName = db.StringProperty() lastName = db.StringProperty() workshop = db.ReferenceProperty(Workshop, collection_name = participants) class Workshop(db.Model) instructor = db.ReferenceProperty(Instructor) Then if I do the following, workshop = Workshop.all().get() for participant in workshop.participants: someMethod(workshop, participant) def someMethod(self, workshop, participant) if (workshop.instructor... # does it run query every time or does it cache? If datastore queries Instructor every time when I do workshop.instructor, I thought I should pass instructor as an argument. Shinichi -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Why do custom indexes require single-property indexes?
On Thu, Mar 18, 2010 at 9:32 AM, Nick Johnson (Google) nick.john...@google.com wrote: Hi Jeff, Unindexed properties are excluded from all indexing, not just from indexing by the built-in indexes. -Nick Johnson Ah ha. The next question then is - why? This current arrangement has some particularly nasty consequences: 1) If you want a custom index across 3 properties, you are now forced to maintain seven indexes total - the three single-property ASC indexes, the three single-property DESC indexes, and the actual custom index. 2) If you want to create a custom index across a property that does not currently have a single-property index, you must manually go through and reprocess you entire dataset. The automatic index building isn't automatic. On the other hand, there doesn't seem to be much benefit to the current approach. It does provide the ability to make rdbms-like partial indexes in custom indexes as well as single-property indexes, but it seems like any minor gain is going to be overshadowed by the fact that you're now maintaining quite a large number of additional indexes. Furthermore, the only way to access this partial index functionality is with the low-level API. At the higher level APIs, you can only flag a property as unindexed or not. If the user wants a property to be excluded from a custom index... they can easily remove it from the datastore-indexes.xml/yaml. So this default doesn't buy you anything and actually costs you a lot of flexibility and extra index overhead. Unless I'm missing something? 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.
Re: [google-appengine] Why do custom indexes require single-property indexes?
Hi Jeff, On Thu, Mar 18, 2010 at 4:49 PM, Jeff Schnitzer j...@infohazard.org wrote: On Thu, Mar 18, 2010 at 9:32 AM, Nick Johnson (Google) nick.john...@google.com wrote: Hi Jeff, Unindexed properties are excluded from all indexing, not just from indexing by the built-in indexes. -Nick Johnson Ah ha. The next question then is - why? This current arrangement has some particularly nasty consequences: 1) If you want a custom index across 3 properties, you are now forced to maintain seven indexes total - the three single-property ASC indexes, the three single-property DESC indexes, and the actual custom index. None of the built in indexes require 'maintenance'. There's also only a single desc, and a single asc index for all properties. 2) If you want to create a custom index across a property that does not currently have a single-property index, you must manually go through and reprocess you entire dataset. The automatic index building isn't automatic. If you mean that you want to index a field that was previously listed as an unindexed field then yes, you do. -Nick Johnson On the other hand, there doesn't seem to be much benefit to the current approach. It does provide the ability to make rdbms-like partial indexes in custom indexes as well as single-property indexes, but it seems like any minor gain is going to be overshadowed by the fact that you're now maintaining quite a large number of additional indexes. Furthermore, the only way to access this partial index functionality is with the low-level API. At the higher level APIs, you can only flag a property as unindexed or not. If the user wants a property to be excluded from a custom index... they can easily remove it from the datastore-indexes.xml/yaml. So this default doesn't buy you anything and actually costs you a lot of flexibility and extra index overhead. Unless I'm missing something? 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.comgoogle-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Re: Auth with google apps acc ounts — depends on billing status?
Hm, thanks. Both apps added to Google Apps CP, but: ctms-release Web address Your users can access ctms-release at: https://ctms-release.appspot.com http://othe-address.domain.rudelete And ctms-medms-test have onlt: http://othe-address.domain.ru How to add appspot.com address to app? And why it disappear :-) On Thu, Mar 18, 2010 at 7:44 PM, Nick Johnson (Google) nick.john...@google.com wrote: Hi Denis, Auth via appspot.com will only work if you've added that app to your Google Apps control panel. The error you're seeing is because you haven't added this second app to your Apps control panel. -Nick Johnson On Mon, Mar 15, 2010 at 10:48 PM, Denis Moskalets denya@gmail.comwrote: Both apps have auth through the same google apps domain. Copy-paste from from both apps - appspot.com - Application Settings: Authentication Options: When this application was created it was configured to allow anyone with a valid xxx.xx Google Apps domain to sign in if the Google Accounts API is used for authentication. Learn more Only difference between two apps: one have billing enabled, another — doesn't have. On Mar 15, 4:57 pm, Wooble geoffsp...@gmail.com wrote: On Mar 15, 3:06 am, Denis Moskalets denya@gmail.com wrote: I have two appspot applications. One — fot tests, second — production. Not important, why it is so. Two apps have same source code. Auth throw Google Apps Accounts enabled on both. Billing enabled only for one app. Apps are closed for public, so only registred and authorized users can access it. When u try to open page, you will get redirect to default google apps login page. So. When i try to open production app — all right, i've got redirect to login page:http://ctms-release.appspot.com/ The second app generate 500 eror.http://ctms-medms-test.appspot.com/ In logs: File /base/data/home/apps/ctms-medms-test/.../googletags.py, line 11, in google_login_url return escape(users.create_login_url(redirect)) File /base/python_lib/versions/1/google/appengine/api/users.py, line 179, in create_login_url raise NotAllowedError Billing is turned off for this non-workin' app. I've looked up manual, docs and FAQs, but there is nothing about difference in login procedure between free/billed apps. If an application has login restricted to a Google Apps domain, you cannot create login URLs when the page is being visited through appspot; it's only possible on the actual domain to which login is restricted. I'd guess you only actually restricted logins on the test application and not the real application; you can check this (but, alas, not change it) under Application Settings in the appengine dashboard. Billing should not have any effect on the login process, as far as I know. -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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.
Re: [google-appengine] Re: Auth with google apps acc ounts — depends on billing status?
Yeah, i found manual :) Thanks! You must re-install this application to enable secure access for your users. Learn morehttp://www.google.com/support/a/bin/answer.py?hl=enanswer=91080 On Thu, Mar 18, 2010 at 8:09 PM, Denya denya@gmail.com wrote: Hm, thanks. Both apps added to Google Apps CP, but: ctms-release Web address Your users can access ctms-release at: https://ctms-release.appspot.com http://othe-address.domain.rudelete And ctms-medms-test have onlt: http://othe-address.domain.ru How to add appspot.com address to app? And why it disappear :-) On Thu, Mar 18, 2010 at 7:44 PM, Nick Johnson (Google) nick.john...@google.com wrote: Hi Denis, Auth via appspot.com will only work if you've added that app to your Google Apps control panel. The error you're seeing is because you haven't added this second app to your Apps control panel. -Nick Johnson On Mon, Mar 15, 2010 at 10:48 PM, Denis Moskalets denya@gmail.comwrote: Both apps have auth through the same google apps domain. Copy-paste from from both apps - appspot.com - Application Settings: Authentication Options: When this application was created it was configured to allow anyone with a valid xxx.xx Google Apps domain to sign in if the Google Accounts API is used for authentication. Learn more Only difference between two apps: one have billing enabled, another — doesn't have. On Mar 15, 4:57 pm, Wooble geoffsp...@gmail.com wrote: On Mar 15, 3:06 am, Denis Moskalets denya@gmail.com wrote: I have two appspot applications. One — fot tests, second — production. Not important, why it is so. Two apps have same source code. Auth throw Google Apps Accounts enabled on both. Billing enabled only for one app. Apps are closed for public, so only registred and authorized users can access it. When u try to open page, you will get redirect to default google apps login page. So. When i try to open production app — all right, i've got redirect to login page:http://ctms-release.appspot.com/ The second app generate 500 eror.http://ctms-medms-test.appspot.com/ In logs: File /base/data/home/apps/ctms-medms-test/.../googletags.py, line 11, in google_login_url return escape(users.create_login_url(redirect)) File /base/python_lib/versions/1/google/appengine/api/users.py, line 179, in create_login_url raise NotAllowedError Billing is turned off for this non-workin' app. I've looked up manual, docs and FAQs, but there is nothing about difference in login procedure between free/billed apps. If an application has login restricted to a Google Apps domain, you cannot create login URLs when the page is being visited through appspot; it's only possible on the actual domain to which login is restricted. I'd guess you only actually restricted logins on the test application and not the real application; you can check this (but, alas, not change it) under Application Settings in the appengine dashboard. Billing should not have any effect on the login process, as far as I know. -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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.
Re: [google-appengine] Clarification on how we can use our 10 sites
Hi Blake, Can you clarify why it would be 'way too complex' to have your site support all the permutations you want to support? It seems like it would be far more complex to maintain multiple different versions of your site and keep them up to date. -Nick Johnson On Sat, Mar 13, 2010 at 7:03 PM, Blake blakecaldw...@gmail.com wrote: I know we can't shard our app into 10 small sites just to get around quotas, but what about creating different versions of our site for different languages, data providers, etc? I'm making an Amazon affiliate site, and will eventually create a version for Japan, Canada, Europe, etc. And, I'd like to take my engine, extract out Amazon.com from it, and plug in other affiliate networks. Each of these combinations will be a new App Engine site, even though they reuse 95% of my code, because it'd be way too complex to keep it together. Are these valid use cases for our 10 sites? And, if I need more than 10, is there any problem with my signing up for another account for another 10 sites? Thanks!! - Blake -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Task Queue issues
Hi Saurabh, Have you checked the Task Queues page of the admin console, to see if the tasks are listed there? -Nick Johnson On Fri, Mar 12, 2010 at 9:00 PM, Saurabh saurabhgupta...@gmail.com wrote: Hello, I'm noticing issues with my task queues: the system seems to think that it has enqueued tasks, but the URLs don't show up in the debug logs and the actions that are supposed to be executed when the task runs are not being run. This same code was working yesterday and is not working today (March 12, 2010) so I'm curious to know if others are experiencing any task queue issues as well. Can Google provide some clarity on this? Thanks, Saurabh -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Why do custom indexes require single-property indexes?
On Thu, Mar 18, 2010 at 9:55 AM, Nick Johnson (Google) nick.john...@google.com wrote: On Thu, Mar 18, 2010 at 4:49 PM, Jeff Schnitzer j...@infohazard.org wrote: This current arrangement has some particularly nasty consequences: 1) If you want a custom index across 3 properties, you are now forced to maintain seven indexes total - the three single-property ASC indexes, the three single-property DESC indexes, and the actual custom index. None of the built in indexes require 'maintenance'. There's also only a single desc, and a single asc index for all properties. Sorry, perhaps my terminology is faltering a bit here - by maintain I mean write the values of. While there are only two index tables, our hypothetical put() requires three writes to each table, plus another write to the custom index table. This seems rather painful. 2) If you want to create a custom index across a property that does not currently have a single-property index, you must manually go through and reprocess you entire dataset. The automatic index building isn't automatic. If you mean that you want to index a field that was previously listed as an unindexed field then yes, you do. I understand that this is how it works, and that it was deliberately chosen. My question is, why does it work this way? I would like you to change this behavior: If you call setUnindexedProperty(), leave the property in custom indexes. Or at least add a setProperty() method that only creates custom indexes, not single-property indexes. The reason for this is that it more accurately reflects how people actually use the datastore: 1) In a write-heavy application, indexes are expensive to maintain. Forcing single-property indexes for every custom index is particularly onerous since custom indexes may contain large numbers of properties. 2) People add custom indexes to enable new features; requiring that single-property indexes exist means a lot of tedious data reprocessing whenever you want to add such a feature. You can't rely on automatic indexing anymore. In contrast, the current scheme of setUnindexedProperty() skipping custom indexes doesn't really buy us developers any advantage. Thanks, 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.
Re: [google-appengine] Re: Clarification on how we can use our 10 sites
Hi Blake, On Thu, Mar 18, 2010 at 6:01 PM, Blake blakecaldw...@gmail.com wrote: Well... you're probably right in the long term. Setting the site up to support the different regions from within the same application will be tricky, but probably worth it. Lemme ask you about performance... Is the speed for querying for an entity by key mostly independent of how many records there are in the table? It's entirely independent. In fact, all entities for all apps are stored in a single Bigtable table, which lookup operations operate over. And, I hate to say it though, but cost is a factor. If I can host 5 country-themed versions of a site in 5 different apps for free, or put them all together for $50/month, I'd probably be tempted to split them out, so long as I'm not breaking the agreement. I don't want to game the system, so if this is against the terms, I wouldn't do it. I'm afraid splitting your app up in that way is pretty much against the terms by definition. :) However, if 1/5th of your app is under the free quota, your entire app isn't likely to cost you anything near $50/month, depending on which quotas you exceed first. -Nick Johnson Thanks Nick On Mar 18, 1:15 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Blake, Can you clarify why it would be 'way too complex' to have your site support all the permutations you want to support? It seems like it would be far more complex to maintain multiple different versions of your site and keep them up to date. -Nick Johnson On Sat, Mar 13, 2010 at 7:03 PM, Blake blakecaldw...@gmail.com wrote: I know we can't shard our app into 10 small sites just to get around quotas, but what about creating different versions of our site for different languages, data providers, etc? I'm making an Amazon affiliate site, and will eventually create a version for Japan, Canada, Europe, etc. And, I'd like to take my engine, extract out Amazon.com from it, and plug in other affiliate networks. Each of these combinations will be a new App Engine site, even though they reuse 95% of my code, because it'd be way too complex to keep it together. Are these valid use cases for our 10 sites? And, if I need more than 10, is there any problem with my signing up for another account for another 10 sites? Thanks!! - Blake -- 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-appengine@googlegroups.com . To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com google-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%252bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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: Clarification on how we can use our 10 sites
Thanks Nick. I thought the TOS was more concerned with sites that talked with each other, like one that does search, one that sends emails, etc. That's fine though, I don't mind supporting GAE, and like you say, it'll still be cheap. Plus, the extra pressure of having to pay for use will force me to be more clever with my design, which has been a big reason for this being so fun to begin with. So now that I got ya ... can you tell me when you guys are going to announce an API for searching our entities? :) :). Just between me and you, I won't tell anyone :| Thanks again, you guys are doing great work - this is an awesome project - Blake On Mar 18, 3:04 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Blake, On Thu, Mar 18, 2010 at 6:01 PM, Blake blakecaldw...@gmail.com wrote: Well... you're probably right in the long term. Setting the site up to support the different regions from within the same application will be tricky, but probably worth it. Lemme ask you about performance... Is the speed for querying for an entity by key mostly independent of how many records there are in the table? It's entirely independent. In fact, all entities for all apps are stored in a single Bigtable table, which lookup operations operate over. And, I hate to say it though, but cost is a factor. If I can host 5 country-themed versions of a site in 5 different apps for free, or put them all together for $50/month, I'd probably be tempted to split them out, so long as I'm not breaking the agreement. I don't want to game the system, so if this is against the terms, I wouldn't do it. I'm afraid splitting your app up in that way is pretty much against the terms by definition. :) However, if 1/5th of your app is under the free quota, your entire app isn't likely to cost you anything near $50/month, depending on which quotas you exceed first. -Nick Johnson Thanks Nick On Mar 18, 1:15 pm, Nick Johnson (Google) nick.john...@google.com wrote: Hi Blake, Can you clarify why it would be 'way too complex' to have your site support all the permutations you want to support? It seems like it would be far more complex to maintain multiple different versions of your site and keep them up to date. -Nick Johnson On Sat, Mar 13, 2010 at 7:03 PM, Blake blakecaldw...@gmail.com wrote: I know we can't shard our app into 10 small sites just to get around quotas, but what about creating different versions of our site for different languages, data providers, etc? I'm making an Amazon affiliate site, and will eventually create a version for Japan, Canada, Europe, etc. And, I'd like to take my engine, extract out Amazon.com from it, and plug in other affiliate networks. Each of these combinations will be a new App Engine site, even though they reuse 95% of my code, because it'd be way too complex to keep it together. Are these valid use cases for our 10 sites? And, if I need more than 10, is there any problem with my signing up for another account for another 10 sites? Thanks!! - Blake -- 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-appengine@googlegroups.com . To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@googlegroups.com google-appengine%2bunsubscr...@googlegroups.comgoogle-appengine%252bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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] Jdo does the job, Jpa does not.
I have setup a project using both Jdo and Jpa. I used Jpa Annotation to Declare my Entity. Then I setup my TestCases based on LocalTestHelper (from Google App Engine Documentation). When I run the test, a call to makePersistent of Jdo:PersistenceManager is perfectly OK; a call to persist of Jpa:EntityManager raised an error: java.lang.IllegalArgumentException: Type (org.seamoo.persistence.jpa.model.ExampleModel) is not that of an entity but needs to be for this operation at org.datanucleus.jpa.EntityManagerImpl.assertEntity(EntityManagerImpl.java: 888) at org.datanucleus.jpa.EntityManagerImpl.persist(EntityManagerImpl.java: 385) Caused by: org.datanucleus.exceptions.NoPersistenceInformationException: The class org.seamoo.persistence.jpa.model.ExampleModel is required to be persistable yet no Meta-Data/Annotations can be found for this class. Please check that the Meta-Data/annotations is defined in a valid file location. at org.datanucleus.ObjectManagerImpl.assertClassPersistable(ObjectManagerImpl.java: 3894) at org.datanucleus.jpa.EntityManagerImpl.assertEntity(EntityManagerImpl.java: 884) ... 27 more How can it be the case? Below is the link to the source code to the maven projects that reproduce that problems: http://seamoo.com/jpa-bug-reproduce.tar.gz Execute the maven test goal over the parent pom you will notice that 3/4 tests from org.seamoo.persistence.jdo.JdoGenericDAOImplTest passed, while all tests from org.seamoo.persistence.jpa.JpaGenericDAOImplTest failed. -- 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: Why do custom indexes require single-property indexes?
Cross-posting my comments from the earlier thread. The restriction that every index'able property must be indexed at put-time when put into the datastore (using setProperty as opposed to setUnindexedProperty), has 2 MAJOR disadvantages with far-reaching repercussions: - you cannot index entities after they have been put (even with a custom index). You will have to re-write the entity to index it. - Each put is 4X more expensive in latency/clock-time (potentially), CPU-cost and storage. This seems un-necessary, especially if a single custom index will suffice all your querying needs. I was really hoping to use custom indexes to buy major performance savings (in latency, CPU-cost and storage), and also be able to re- index every entity after the fact. But this restriction is heavy (preventing direct solution to a problem everyone may end up facing), and very expensive (costing us big-time). A way to disable automatic single-property indexes for certain properties or entities will help to solve this issue. On Mar 18, 10:36 am, Jeff Schnitzer j...@infohazard.org wrote: On Thu, Mar 18, 2010 at 9:55 AM, Nick Johnson (Google) nick.john...@google.com wrote: On Thu, Mar 18, 2010 at 4:49 PM, Jeff Schnitzer j...@infohazard.org wrote: This current arrangement has some particularly nasty consequences: 1) If you want a custom index across 3 properties, you are now forced to maintain seven indexes total - the three single-property ASC indexes, the three single-property DESC indexes, and the actual custom index. None of the built in indexes require 'maintenance'. There's also only a single desc, and a single asc index for all properties. Sorry, perhaps my terminology is faltering a bit here - by maintain I mean write the values of. While there are only two index tables, our hypothetical put() requires three writes to each table, plus another write to the custom index table. This seems rather painful. 2) If you want to create a custom index across a property that does not currently have a single-property index, you must manually go through and reprocess you entire dataset. The automatic index building isn't automatic. If you mean that you want to index a field that was previously listed as an unindexed field then yes, you do. I understand that this is how it works, and that it was deliberately chosen. My question is, why does it work this way? I would like you to change this behavior: If you call setUnindexedProperty(), leave the property in custom indexes. Or at least add a setProperty() method that only creates custom indexes, not single-property indexes. The reason for this is that it more accurately reflects how people actually use the datastore: 1) In a write-heavy application, indexes are expensive to maintain. Forcing single-property indexes for every custom index is particularly onerous since custom indexes may contain large numbers of properties. 2) People add custom indexes to enable new features; requiring that single-property indexes exist means a lot of tedious data reprocessing whenever you want to add such a feature. You can't rely on automatic indexing anymore. In contrast, the current scheme of setUnindexedProperty() skipping custom indexes doesn't really buy us developers any advantage. Thanks, 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] how to clean appengine datastore in eclipse plugin ?
Hi ! I'm currently working on an initialization script for my application, and I need my training datastore, in appengine eclipse plugin, to be totally empty, how to easily clean it ? I didn't found in eclipse menu anything concerning the appengine plugin datastore. -- 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] Filter's static variable is lost
Hi all, I am trying to run Myfaces on App Engine. I wrote a filter for initialization of the framework, since current ServletContextListener initializer is not working correctly because of appengine issue 1828 (http://code.google.com/p/googleappengine/issues/detail?id=1828). It works like: * Check static boolean initialized is true * If true, continue * Else, init the framework and set initialized to true At the first call, I see that the framework is initialized, and static initialized field is set to true. However, after some time (ie. 5 minutes), my filter is recreated, instance variables are gone and most interesting part is, static initialized field is set to its default value(false). Thus, framework is initialized again with a call after 5 minutes. I think my filter class is reloaded or something. Why that can happen? Thanks, -- 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: DNS providers that support wildcard CNAME's?
Try http://www.editdns.net i think they can support wildcards :) On Feb 28, 6:52 pm, Ross M Karchner rosskarch...@gmail.com wrote: Now that App Engine supports wildcard domain mappings (as of SDK 1.3.1), can anyone recommend a DNS host that supports wildcard CNAME's? -- 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: App Engine account activation
I have the same problem 25% Initiating update. Password for lukas...@gmail.com: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=Sklepversion=1; 403 Forbidden You do not have permission to modify this app (app_id=u'Sklep'). Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=Sklepversion=1; 403 Forbidden You do not have permission to modify this app (app_id=u'Sklep'). Error Details: 2010-03-18 20:32:46 org.apache.jasper.JspC processFile INFO: Built File: \index.jsp java.io.IOException: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=Sklepversion=1; 403 Forbidden You do not have permission to modify this app (app_id=u'Sklep'). Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/create?app_id=Sklepversion=1; 403 Forbidden You do not have permission to modify this app (app_id=u'Sklep'). Please see the logs [C:\DOCUME~1\KIK\USTAWI~1\Temp \appcfg7467014162719914143.log] for further information. -- 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] URLError: urlopen error (-2, 'Name or service not known')
While I was uploading my application on the appengine I received the following error message which I have pasted on the pastebin [link: http://pastebin.com/ZmGyW87P] ## [n...@localhost melange]$ thirdparty/google_appengine/appcfg.py update build Application: melangeneo7; version: 0-7-20100317. Server: appengine.google.com. Scanning files on local disk. Scanned 500 files. Initiating update. 2010-03-18 03:02:17,378 ERROR appcfg.py:1454 An unexpected error occurred. Aborting. Traceback (most recent call last): File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1425, in DoUpload missing_files = self.Begin() File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1223, in Begin version=self.version, payload=self.config.ToYAML()) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appengine_rpc.py, line 344, in Send f = self.opener.open(req) File /usr/local/lib/python2.5/urllib2.py, line 374, in open response = self._open(req, data) File /usr/local/lib/python2.5/urllib2.py, line 392, in _open '_open', req) File /usr/local/lib/python2.5/urllib2.py, line 353, in _call_chain result = func(*args) File /usr/local/lib/python2.5/urllib2.py, line 1109, in https_open return self.do_open(httplib.HTTPSConnection, req) File /usr/local/lib/python2.5/urllib2.py, line 1076, in do_open raise URLError(err) URLError: urlopen error (-2, 'Name or service not known') Traceback (most recent call last): File thirdparty/google_appengine/appcfg.py, line 67, in module run_file(__file__, globals()) File thirdparty/google_appengine/appcfg.py, line 63, in run_file execfile(script_path, globals_) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 2548, in module main(sys.argv) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 2539, in main result = AppCfgApp(argv).Run() File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1640, in Run self.action(self) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 2427, in __call__ return method() File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1935, in Update lambda path: open(os.path.join(basepath, path), 'rb')) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1425, in DoUpload missing_files = self.Begin() File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appcfg.py, line 1223, in Begin version=self.version, payload=self.config.ToYAML()) File /home/neo7/melange/thirdparty/google_appengine/google/ appengine/tools/appengine_rpc.py, line 344, in Send f = self.opener.open(req) File /usr/local/lib/python2.5/urllib2.py, line 374, in open response = self._open(req, data) File /usr/local/lib/python2.5/urllib2.py, line 392, in _open '_open', req) File /usr/local/lib/python2.5/urllib2.py, line 353, in _call_chain result = func(*args) File /usr/local/lib/python2.5/urllib2.py, line 1109, in https_open return self.do_open(httplib.HTTPSConnection, req) File /usr/local/lib/python2.5/urllib2.py, line 1076, in do_open raise URLError(err) urllib2.URLError: urlopen error (-2, 'Name or service not known') [n...@localhost melange]$ # any solution for it. -- 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] Session Data must be in DataStore?
“If a web application wants to store session data, then it must be stored in the DataStore rather than static variables or MemCache.” - is that correct? I understand the reasoning behind it – that separate requests in a session may go to different servers, which will not have the same values in static variables or MemCache, only the DataStore is shared between servers. But it is expensive (in developer time and DataStore writes), so I’d just like to double check. NB: I have a fair bit of session data – encoding it in the cookie is not feasible. -- 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] lms4milano uses Google Accounts for Sign In.
Replace the character by ? (question mark); i.e: hl=it by ?hl=IT 2010/3/17 lms4milano davide.rogn...@gmail.com Hi All, I see an error when I try to add hl=it here: https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http://lms4milano.appspot.com/_ah/login%3Fcontinue%3Dhttp://lms4milano.appspot.com/your_messageltmpl=gmahname=lms4milanosig=d432e84041598a27ea0d2d779029055f adding hl=it for the italian language https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http://lms4milano.appspot.com/_ah/login%3Fcontinue%3Dhttp://lms4milano.appspot.com/your_messageltmpl=gmahname=lms4milanosig=d432e84041598a27ea0d2d779029055fhl=it the error in italian is: La pagina richiesta non è valida. the error in english is: The page you requested is invalid. adding hl=en https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http://lms4milano.appspot.com/_ah/login%3Fcontinue%3Dhttp://lms4milano.appspot.com/your_messageltmpl=gmahname=lms4milanosig=d432e84041598a27ea0d2d779029055fhl=en Is this a bug? Thank you -- Davide -- 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] Crawler service / Connection to services in the outside world ?
Would it be possible to connect to a service running in a known dns in a data center and do some processing from within the app-engine (say, a crawler / web app on top of a service ) ? What are the limitations around this space ( as applicable to the google app engine from a security perspective and to the java runtime, in particular) ? -- 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] Found error when I use BlobProperty and template in my app
Hi all, When I use app engine to develop a simple website, uploading image using html form, I met the following error: [template is used in my application] -- Traceback (most recent call last): File /tools/google/google_appengine/google/appengine/ext/webapp/ __init__.py, line 507, in __call__ handler.get(*groups) File /mnt/hgfs/share/cloud/app/netcoc/netcoc.py, line 53, in get self.response.out.write(template.render(template_file, to_template_values)) File /tools/google/google_appengine/google/appengine/ext/webapp/ template.py, line 80, in render t = load(template_path, debug) File /tools/google/google_appengine/google/appengine/ext/webapp/ template.py, line 108, in load template = django.template.loader.get_template(file_name) File /tools/google/google_appengine/lib/django/django/template/ loader.py, line 80, in get_template template = get_template_from_string(source, origin, template_name) File /tools/google/google_appengine/lib/django/django/template/ loader.py, line 88, in get_template_from_string return Template(source, origin, name) File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 158, in __init__ self.nodelist = compile_string(template_string, origin) File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 174, in compile_string return parser.parse() File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 273, in parse compiled_result = compile_func(self, token) File /tools/google/google_appengine/lib/django/django/template/ defaulttags.py, line 544, in do_for nodelist_loop = parser.parse(('endfor',)) File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 254, in parse filter_expression = self.compile_filter(token.contents) File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 338, in compile_filter return FilterExpression(token, self) File /tools/google/google_appengine/lib/django/django/template/ __init__.py, line 558, in __init__ raise TemplateSyntaxError, Could not parse the remainder: %s % token[upto:] TemplateSyntaxError: Could not parse the remainder: () -- This is my Model: -- class MsgTable(db.Model): user= db.UserProperty() image = db.BlobProperty() content = db.StringProperty(multiline=True) date= db.DateTimeProperty(auto_now_add=True) -- This is the data sent to template -- to_template_values = { 'MsgRs': MsgRs, 'url': url, 'url_txt': url_txt, } template_file = os.path.join(os.path.dirname(__file__), 'index.htm') self.response.out.write(template.render(template_file, to_template_values)) -- This is the final part: index.htm and Image app: -- html head link type=text/css rel=stylesheet href=/css/main.css / /head body {% for item in MsgRs %} img src=image?image_id={{ item.key() }}/img {% if item.user %} b{{ item.user.nickname }}/b wrote: {% else %} An anonymous person wrote: {% endif %} blockquote{{ item.content|escape }}/blockquote {% endfor %} form action=/sign method=post divtextarea name=content rows=3 cols=60/textarea/div divinput type=file name=image//div divinput type=submit value=Sign Guestbook/div /form a href={{ url }}{{ url_txt }}/a /body /html -- class Image (webapp.RequestHandler): def get(self): item = db.get(self.request.get(image_id)) if item.image: self.response.headers['Content-Type'] = image/png self.response.out.write(item.image) else: self.response.out.write(No image) -- If I delete this line: img
[google-appengine] ERROR: NOT_FOUND
Hi all, I have finished a test project for google app. But i met a problem: when i run my project in local host ,run directly with Eclipse, it's ok (Win Vista). But when i deployed my project in Google App it only could run the index.html file. with the other file it not found (ERROR: NOT_FOUND) example: currently, i'm at index.html. I enter submit button to send a construction. So, controller (Servlet) sendRedirects to test.jsp file. and the webpage displays : ERROR:NOT_FOUND could somebody help me !! -- 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] Seemingly arbitrary 404s and 500s ...
I'm running my app via a CNAME record from my main domain. I'm seeing a worrying number of 404s in the logs and I received a 500 in-browser when I was looking at the site earlier. The app is at http://photography.martindoyle.com and martindoylephotography.appspot.com and seems to work fine most of the time, but if I can't be certain that the website will be always up then I'll have to look to another hosting solution. The stuff that's coming back with 404s definitely exists, and both earlier and later requests have succesfully retrieved the resources (JPEGs, via SimpleViewer SWFs). The 500 is on a massively simple page with very little Java in it. Anyone have 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.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] calendar via app engine
I've found this example and a similar thread from this group- both from late 2008. I was wondering, has anything changed? Is this still the best way to access calendar from appengine? I guess I'm curious to know why I have to define events in the data store even though they already have a formal definition elsewhere. Also, do I have to use the data store? Is it just to make querying easier? The calendar API appears to have some functionality (re: querying for events). Can I just read the events and display them (gwt)? http://code.google.com/appengine/articles/more_google_data.html#gcal http://groups.google.com/group/google-appengine/browse_thread/thread/98bd0e2af6e961d6/5a91d13bb8e37243?lnk=gstq=calendar+appengine#5a91d13bb8e37243 -- 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: Templates in subfolders
Hello, try path = os.path.join(os.path.dirname(__file__),'flash','index.htm') On 17 mar, 13:23, Kenchu sweken...@gmail.com wrote: /Users/swekenchu/Dropbox/Development/GoogleAppEngine/google proj/flash/ index.htm On Mar 16, 3:05 pm, djidjadji djidja...@gmail.com wrote: What is the value of 'path' after the os.path.join()? 2010/3/15 Kenchu sweken...@gmail.com: Displaying a template that resides in the main folder together with the script works just fine, but as soon as I try to display one in a subfolder, I get an error: TemplateDoesNotExist: index.htm It's weird that it doesn't display the full path. This is the code I use: path = os.path.join(os.path.dirname(__file__), 'flash/index.htm') self.response.out.write(template.render(path,{})) Are you not allowed to display templates in subfolders? -- 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.
[google-appengine] Entity Index vs. Cursors
All, With the introduction of Query Cursors, do we still need to implement entity indexes for rigid ordering and efficient paging? In Brett Slatkin's talk on Building Scalable Web Apps with GAE, he discussed how to create a blog - and uses the index technique; however, query cursors seem to go a long way in fulfilling the need - ? Thoughts? Thanks, John -- 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: anybody success with blobstore upload via JS / iframe
I made it work using an ajax jquery file upload plugin: http://valums.com/ajax-upload/ On Mar 18, 6:38 am, Roberto Saccon rsac...@gmail.com wrote: I am experimenting with large blob uploads. Everything works fine as long as I submit a form to do the upload. But I would prefer to use a page-refresh-less solution. So I tried no noswfupload.js and iframe approach ajaxupload.js, but none of them seem to work out of the box, and I get the following error message. SEVERE: Must only return a redirect from a Blobstore upload callback. if I look at the development server admin panel, the __BlobInfo__ table entry actually gets created, but not the entry containing the actual file Anybody got ajax blob upload working ? Or has suggestion why it fails in my case ? -- 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: anybody success with blobstore upload via JS / iframe
thanks, will try that. On Mar 18, 5:15 pm, Mehmet rax...@gmail.com wrote: I made it work using an ajax jquery file upload plugin:http://valums.com/ajax-upload/ On Mar 18, 6:38 am, Roberto Saccon rsac...@gmail.com wrote: I am experimenting with large blob uploads. Everything works fine as long as I submit a form to do the upload. But I would prefer to use a page-refresh-less solution. So I tried no noswfupload.js and iframe approach ajaxupload.js, but none of them seem to work out of the box, and I get the following error message. SEVERE: Must only return a redirect from a Blobstore upload callback. if I look at the development server admin panel, the __BlobInfo__ table entry actually gets created, but not the entry containing the actual file Anybody got ajax blob upload working ? Or has suggestion why it fails in my case ? -- 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 view question : how to sort
While using the datastore viewer, to find a particular record, I use a gql query, for eg: Select * from table where name = 'myname' or to sort it in descending order: Select * from table ORDER BY score DESC My question is how to I find a record with id = 22 Also how do I sort and find out the last added entry. (so I would sort it by id in desc order). Thanks for reading. -- 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] Filter's static variable is lost
If your app isnt receiving traffic, after a while it'll get shut down. Then, when needed again it gets spun back up. Also, if your app starts getting lots of traffic more instances can be spun up to deal with it, and then shut down when not needed any more. On 17 March 2010 09:25, Ali Ok al...@aliok.com.tr wrote: Hi all, I am trying to run Myfaces on App Engine. I wrote a filter for initialization of the framework, since current ServletContextListener initializer is not working correctly because of appengine issue 1828 (http://code.google.com/p/googleappengine/issues/detail?id=1828). It works like: * Check static boolean initialized is true * If true, continue * Else, init the framework and set initialized to true At the first call, I see that the framework is initialized, and static initialized field is set to true. However, after some time (ie. 5 minutes), my filter is recreated, instance variables are gone and most interesting part is, static initialized field is set to its default value(false). Thus, framework is initialized again with a call after 5 minutes. I think my filter class is reloaded or something. Why that can happen? Thanks, -- 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] Increase in Task Queue quotas?
Hello, In an effort to reduce the number of Deadline Exceeded Errors we are seeing in our Task Queue processes, we have chopped our tasks up into a large number of small, sequential tasks. This has resulted in far less Deadline Exceeded Errors but has, understandably, greatly increased the number of tasks we are creating and churning through. We have attempted to maximize throughput by using a number of queues and adding the tasks to these, chosen at random. While this seems to be working, we have a couple of issues looming. We are in all likelihood going to exceed the 1,000,000 tasks we are allotted in a single day and the size of the queues is increasing, indicating that we are falling behind in our processing. So, could we possibly get the 1,000,000 tasks limit increased and, possibly the maximum task rate increased as well? The app ids affected are steprep and steprep-demo. Any assistance is greatly appreciated! Thanks, 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] Can't read admin log, can't deploy
When I tried to deploy version of my app mybharatbyrail, I get an error Unable to update: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=mybharatbyrailversion=2; 500 Internal Server Error So I tried to look at the admin log via the Administration section of the web based account console: I get a SERVER error 500 when I try to look at the admin log. This happens to all 3 versions of the app. My other apps - pestalozzi-village and bharatbyrail are ok - in terms of being able to see the admin log. Its only all versions of mybharatbyrail that's gives me an error. The Google APP Engine system status doesn't show anything for the Java version. Is this me or you ? This has been happening for the last 1 hour. Ideas -skk -- 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: lms4milano uses Google Accounts for Sign In.
I saw that the bug is fixed without any URL parameter but using the browser headers: http://code.google.com/p/googleappengine/issues/detail?id=514 [ Comment 11 ] Our login page is now translated into 40 languages, including es, zh- CH, and zh-TW (sorry -- no Klingon). There is no way for your application to force a particular language -- currently we only look at the languages requested by the user's browser -- but if you need this functionality please open and/or star a new bug. On Mar 18, 3:49 am, Petru jorge.pe...@gmail.com wrote: Replace the character by ? (question mark); i.e: hl=it by ?hl=IT 2010/3/17 lms4milano davide.rogn...@gmail.com Hi All, I see an error when I try to add hl=it here: https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http... adding hl=it for the italian language https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http... the error in italian is: La pagina richiesta non è valida. the error in english is: The page you requested is invalid. adding hl=en https://www.google.com/accounts/ServiceLogin?service=ahcontinue=http... Is this a bug? Thank you -- Davide -- 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: Can't read admin log, can't deploy
+1 On 19 мар, 00:55, skk shantanu.ka...@gmail.com wrote: When I tried to deploy version of my app mybharatbyrail, I get an error Unable to update: java.io.IOException: Error posting to URL:http://appengine.google.com/api/appversion/create?app_id=mybharatbyra... 500 Internal Server Error So I tried to look at the admin log via the Administration section of the web based account console: I get a SERVER error 500 when I try to look at the admin log. This happens to all 3 versions of the app. My other apps - pestalozzi-village and bharatbyrail are ok - in terms of being able to see the admin log. Its only all versions of mybharatbyrail that's gives me an error. The Google APP Engine system status doesn't show anything for the Java version. Is this me or you ? This has been happening for the last 1 hour. Ideas -skk -- 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] Re: Can't read admin log, can't deploy
+1 2010/3/19 Pavel Kaplin pavel.kap...@gmail.com +1 On 19 мар, 00:55, skk shantanu.ka...@gmail.com wrote: When I tried to deploy version of my app mybharatbyrail, I get an error Unable to update: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=mybharatbyra... 500 Internal Server Error So I tried to look at the admin log via the Administration section of the web based account console: I get a SERVER error 500 when I try to look at the admin log. This happens to all 3 versions of the app. My other apps - pestalozzi-village and bharatbyrail are ok - in terms of being able to see the admin log. Its only all versions of mybharatbyrail that's gives me an error. The Google APP Engine system status doesn't show anything for the Java version. Is this me or you ? This has been happening for the last 1 hour. Ideas -skk -- 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.
Re: [google-appengine] Crawler service / Connection to services in the outside world ?
Came across the sandbox restrictions w.r.t sockets and the urlfetchservice (in the gae api ) that can do this. On Wed, Mar 17, 2010 at 9:01 PM, Karthik K oss@gmail.com wrote: Would it be possible to connect to a service running in a known dns in a data center and do some processing from within the app-engine (say, a crawler / web app on top of a service ) ? What are the limitations around this space ( as applicable to the google app engine from a security perspective and to the java runtime, in particular) ? -- 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] Error 500 on Application Settings page and Admin Logs page. Can't deploy.
Hi there, On the appengine admin panel of one of my app, when I try to access the pages : - Admin Logs - Application Settings I got: Server Error A server error has occurred. Return to Applications screen » When I try to deploy the app I also got something similar: Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- I tried to rollback manually without success. I don't know if there's something wrong with my code or if it's a problem on GAE side? Help appreciated! Thanks! -- Jeremy -- 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: Can't read admin log, can't deploy
+1 On Mar 18, 7:00 pm, Николай Тенев tenev.niko...@gmail.com wrote: +1 2010/3/19 Pavel Kaplin pavel.kap...@gmail.com +1 On 19 мар, 00:55, skk shantanu.ka...@gmail.com wrote: When I tried to deploy version of my app mybharatbyrail, I get an error Unable to update: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=mybharatbyra... 500 Internal Server Error So I tried to look at the admin log via the Administration section of the web based account console: I get a SERVER error 500 when I try to look at the admin log. This happens to all 3 versions of the app. My other apps - pestalozzi-village and bharatbyrail are ok - in terms of being able to see the admin log. Its only all versions of mybharatbyrail that's gives me an error. The Google APP Engine system status doesn't show anything for the Java version. Is this me or you ? This has been happening for the last 1 hour. Ideas -skk -- 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: Late Cron Execution
Anyone from google care to comment? I noticed this again tonight and I rely on cron to start my cache refresh task. When cron fails to run my data becomes stale and this is unacceptable. My understanding was that cron is a reliable service with maybe +/- 2 minutes error rate. What level of service should I expect from cron? and is it reasonable to kickstart critial processes via cron? or is this not recommended? On Mar 17, 11:39 pm, stumpy ianmcgrath.m...@gmail.com wrote: Has anyone else noticed recently that the cron service has became unreliable, often executing 10 minutes late and sometimes skipped entirely for periods of several hours? Prehaps an entry should be added to the status page for cron, task queue and other similar services. -- 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: Can't read admin log, can't deploy
+1 On Mar 19, 12:10 am, Anekdotz anekdotz.se...@gmail.com wrote: +1 On Mar 18, 7:00 pm, Николай Тенев tenev.niko...@gmail.com wrote: +1 2010/3/19 Pavel Kaplin pavel.kap...@gmail.com +1 On 19 мар, 00:55, skk shantanu.ka...@gmail.com wrote: When I tried to deploy version of my app mybharatbyrail, I get an error Unable to update: java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/create?app_id=mybharatbyra... 500 Internal Server Error So I tried to look at the admin log via the Administration section of the web based account console: I get a SERVER error 500 when I try to look at the admin log. This happens to all 3 versions of the app. My other apps - pestalozzi-village and bharatbyrail are ok - in terms of being able to see the admin log. Its only all versions of mybharatbyrail that's gives me an error. The Google APP Engine system status doesn't show anything for the Java version. Is this me or you ? This has been happening for the last 1 hour. Ideas -skk -- 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: Post-mortem for February 24th, 2010 outage
Han Z, Chris,G gae team I do agree splitting datastore operations is not a good idea. I was also going to post and argue about this but I realized it was too late since it seems there was a definite decision from google as described in this same post mortem and implemented in zero time some hours later in last SDK. The question now (post mortem unfortunately !) is that G should at least try and consult a little with developers here before committing to such things. So G please try engage us (poor developers) into the loop before such decisions are made, probably we are just stupid developers but still may be we have an idea or something worth considering More so as I do not see any relevant issue - ticket request been filled about this. Hapy coding ;) Nick Athens - Greece -- 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: Can't read admin log, can't deploy
+1 -- 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: Error 500 on Application Settings page and Admin Logs page. Can't deploy.
Everything seems back to normal for me, the 2 pages are working and I've been able to deploy my app. -- Jeremy On Mar 19, 12:09 am, Anekdotz anekdotz.se...@gmail.com wrote: Hey there, I just experienced the same issue. Looks like a GAE-side problem On Mar 18, 7:06 pm, Jérémy Selier jerem.sel...@gmail.com wrote: Hi there, On the appengine admin panel of one of my app, when I try to access the pages : - Admin Logs - Application Settings I got: Server Error A server error has occurred. Return to Applications screen » When I try to deploy the app I also got something similar: Error 500: --- begin server output --- Server Error (500) A server error has occurred. --- end server output --- I tried to rollback manually without success. I don't know if there's something wrong with my code or if it's a problem on GAE side? Help appreciated! Thanks! -- Jeremy -- 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: Late Cron Execution
To provide a little more information: I have a cron that is set up to run every one minute to initialise a cache refresh. However over the past few nights during the time of 4pm-11pm GMT the logs show there to be gaps of 10 minutes or greater between some invocations. On Mar 18, 11:15 pm, stumpy ianmcgrath.m...@gmail.com wrote: Anyone from google care to comment? I noticed this again tonight and I rely on cron to start my cache refresh task. When cron fails to run my data becomes stale and this is unacceptable. My understanding was that cron is a reliable service with maybe +/- 2 minutes error rate. What level of service should I expect from cron? and is it reasonable to kickstart critial processes via cron? or is this not recommended? On Mar 17, 11:39 pm, stumpy ianmcgrath.m...@gmail.com wrote: Has anyone else noticed recently that the cron service has became unreliable, often executing 10 minutes late and sometimes skipped entirely for periods of several hours? Prehaps an entry should be added to the status page for cron, task queue and other similar services. -- 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] Re: Can't read admin log, can't deploy
Yep, we had a bad admin console push and deploys were affected from 3:10pm PST until 4:30pm PST. All better now. Apologies. On Thu, Mar 18, 2010 at 4:23 PM, Staz steve.le...@yahoo.com wrote: +1 -- 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: Can't read admin log, can't deploy
Agreed - all ok now. for mybharatbyrail app. Thx. -skk On Mar 18, 5:46 pm, Jon McAlister jon...@google.com wrote: Yep, we had a bad admin console push and deploys were affected from 3:10pm PST until 4:30pm PST. All better now. Apologies. On Thu, Mar 18, 2010 at 4:23 PM, Staz steve.le...@yahoo.com wrote: +1 -- 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] Session Data must be in DataStore?
Guy, Memcache is shared across instances. But it is a cache... so items may be cleared at any time. If you have short lived sessions and having one or more get cleared from time to time is not a problem use memcache. Check out gaeutilities. It makes working with sessions pretty easy. Robert On Mar 18, 2010, at 8:41, Guy Smith g...@multiniche.org wrote: “If a web application wants to store session data, then it must be stored in the DataStore rather than static variables or MemCache.” - is that correct? I understand the reasoning behind it – that separate requests in a session may go to different servers, which will not have the same values in static variables or MemCache, only the DataStore is shared between servers. But it is expensive (in developer time and DataStore writes), so I’d just like to double check. NB: I have a fair bit of session data – encoding it in the cookie is not feasible. -- 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] datastore view question : how to sort
You could order by _key_. However, as I recall key values are not guaranteed to be strictly increasing, only unique. I do not think there is a way to use the key name or id to access a record in the viewer. But, if you know the encoded value you can using: _key_ = encoded key Robert On Mar 19, 2010, at 6:25, observer247 prem...@gmail.com wrote: While using the datastore viewer, to find a particular record, I use a gql query, for eg: Select * from table where name = 'myname' or to sort it in descending order: Select * from table ORDER BY score DESC My question is how to I find a record with id = 22 Also how do I sort and find out the last added entry. (so I would sort it by id in desc order). Thanks for reading. -- 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] How can I efficiently retrieve entities for a list of keys? (Java)
Hi, I'd like to use the low-level datastore API (Java) to deference a (potentially long) list of keys into their respective Entities. I've scoured the API and searched messages in this group, and don't see any answers. I primarily looked for a method on Query that takes a Collection or Array of Keys. Didn't find it. For now I can get by with a for loop. Ghetto but it works. I'd like to do better. Thanks. -- 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: How can I efficiently retrieve entities for a list of keys? (Java)
BTW in python this would be db.get(keys). :) On Mar 18, 5:32 pm, JavaJosh javaj...@gmail.com wrote: Hi, I'd like to use the low-level datastore API (Java) to deference a (potentially long) list of keys into their respective Entities. I've scoured the API and searched messages in this group, and don't see any answers. I primarily looked for a method on Query that takes a Collection or Array of Keys. Didn't find it. For now I can get by with a for loop. Ghetto but it works. I'd like to do better. Thanks. -- 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: How can I efficiently retrieve entities for a list of keys? (Java)
look in DatastoreService get() On Mar 18, 7:33 pm, JavaJosh javaj...@gmail.com wrote: BTW in python this would be db.get(keys). :) On Mar 18, 5:32 pm, JavaJosh javaj...@gmail.com wrote: Hi, I'd like to use the low-level datastore API (Java) to deference a (potentially long) list of keys into their respective Entities. I've scoured the API and searched messages in this group, and don't see any answers. I primarily looked for a method on Query that takes a Collection or Array of Keys. Didn't find it. For now I can get by with a for loop. Ghetto but it works. I'd like to do better. Thanks. -- 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] datastore view question : how to sort
you can do this neat little trick: Select * From table Where __key__ = Key('table',22) If the id was really a key_name, then you'd use '22' instead of an int. On Thu, Mar 18, 2010 at 5:25 PM, observer247 prem...@gmail.com wrote: While using the datastore viewer, to find a particular record, I use a gql query, for eg: Select * from table where name = 'myname' or to sort it in descending order: Select * from table ORDER BY score DESC My question is how to I find a record with id = 22 Also how do I sort and find out the last added entry. (so I would sort it by id in desc order). Thanks for reading. -- 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: how to clean appengine datastore in eclipse plugin ?
go to war/WEB-INF/appengine-generated and delete file called local_db.bin On Mar 17, 4:02 am, V.Chalmel vchal...@gmail.com wrote: Hi ! I'm currently working on an initialization script for my application, and I need my training datastore, in appengine eclipse plugin, to be totally empty, how to easily clean it ? I didn't found in eclipse menu anything concerning the appengine plugin datastore. -- 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: unable to update my app (authentication issue)
I'm able to update some of my other apps, but I still can't update the 'apodemail' app. As I look at the list of developers listed in the admin panel for each of my apps, there is clearly a disconnect. Some apps have multiple entries with the same email address. Some apps have no administrators listed. Just developers. I would appreciate it if someone on the app engine team could look at this. I believe something got disconnected when the email address for the google account was changed. Thanks. On Mar 18, 1:59 pm, Greg Tracy g...@gregtracy.com wrote: Since changing the email address on my Google account, I have not been able to update my application. Command line and SDK updates fail with the following... Password for greg@hidden.com: Invalid username or password. Error 401: --- begin server output --- Must authenticate first. --- end server output --- 2010-03-18 13:57:32 (Process exited with code 1) Is this a caching issue in app engine? The email was changed yesterday afternoon... This is happening for the app, apodemail.appspot.com Thanks. -- 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] Re: How can I efficiently retrieve entities for a list of keys? (Java)
Thanks! Knew it had to be in there somewhere. :) http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/datastore/DatastoreService.html#get(java.lang.Iterable) On Thu, Mar 18, 2010 at 5:39 PM, Tristan tristan.slomin...@gmail.comwrote: look in DatastoreService get() On Mar 18, 7:33 pm, JavaJosh javaj...@gmail.com wrote: BTW in python this would be db.get(keys). :) On Mar 18, 5:32 pm, JavaJosh javaj...@gmail.com wrote: Hi, I'd like to use the low-level datastore API (Java) to deference a (potentially long) list of keys into their respective Entities. I've scoured the API and searched messages in this group, and don't see any answers. I primarily looked for a method on Query that takes a Collection or Array of Keys. Didn't find it. For now I can get by with a for loop. Ghetto but it works. I'd like to do better. Thanks. -- 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.
Re: [google-appengine] Session Data must be in DataStore?
For whatever its' worth, I have HTTP Basic auth implemented in my web service and it fetches the user's account details from the datastore each time a request is made and it doesn't seem to be a huge problem. On Wed, Mar 17, 2010 at 4:41 PM, Guy Smith g...@multiniche.org wrote: “If a web application wants to store session data, then it must be stored in the DataStore rather than static variables or MemCache.” - is that correct? I understand the reasoning behind it – that separate requests in a session may go to different servers, which will not have the same values in static variables or MemCache, only the DataStore is shared between servers. But it is expensive (in developer time and DataStore writes), so I’d just like to double check. NB: I have a fair bit of session data – encoding it in the cookie is not feasible. -- 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. -- Patrick H. Twohig. Namazu Studios P.O. Box 34161 San Diego, CA 92163-4161 -- 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: unable to update my app (authentication issue)
update... when i add a new developer to the app, i am able to run update on the app when i authenticate using the new user. however, the app is functionally broken at the moment because it can't send email. i've tried setting the sender using the owner of the app as well as the new developer account noted above, but neither of them work. the mail.send() call will fail with the following... InvalidSenderError: Unauthorized sender this is now much worse then simply an update problem. my app is now broken. On Mar 18, 9:23 pm, Greg Tracy g...@gregtracy.com wrote: I'm able to update some of my other apps, but I still can't update the 'apodemail' app. As I look at the list of developers listed in the admin panel for each of my apps, there is clearly a disconnect. Some apps have multiple entries with the same email address. Some apps have no administrators listed. Just developers. I would appreciate it if someone on the app engine team could look at this. I believe something got disconnected when the email address for the google account was changed. Thanks. On Mar 18, 1:59 pm, Greg Tracy g...@gregtracy.com wrote: Since changing the email address on my Google account, I have not been able to update my application. Command line and SDK updates fail with the following... Password for greg@hidden.com: Invalid username or password. Error 401: --- begin server output --- Must authenticate first. --- end server output --- 2010-03-18 13:57:32 (Process exited with code 1) Is this a caching issue in app engine? The email was changed yesterday afternoon... This is happening for the app, apodemail.appspot.com Thanks. -- 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: Image.getHeight throws UnsupportedOperationException when Image instanced from Blobstore
I'll take that as a yes! Bug filed: http://code.google.com/p/googleappengine/issues/detail?id=2990 Feel free to vote for it. :) On Mar 16, 1:58 pm, Josh Rehman j...@joshrehman.com wrote: Do you think I should file a bug? On Sun, Mar 14, 2010 at 1:24 PM, JavaJosh javaj...@gmail.com wrote: Hi there, I'm new to Google App Engine, and was wondering what I'm doing wrong. In my application, users upload (potentially large) images into the Blobstore. I also need to create a thumbnail image that is 300px wide (and high enough to maintain aspect ratio). Although ImagesServiceFactory.makeImageFromBlob(blobKey) returns an Image that's not null, when I try to access width and height properties of the returned image I get an UnsupportedOperationException No image data is available.. Here is the simplest code I can think of to reproduce (this is based on blobstore example; to make it work setup that example, then add a web.xml entry for this servlet and then change the upload servlet mapping to point to it): import java.io.IOException; import java.util.Map; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.blobstore.BlobKey; import com.google.appengine.api.blobstore.BlobstoreService; import com.google.appengine.api.blobstore.BlobstoreServiceFactory; import com.google.appengine.api.images.Image; import com.google.appengine.api.images.ImagesServiceFactory; public class ImageBlobBug extends HttpServlet { private static final long serialVersionUID = 1L; private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); private static final Logger log = Logger.getLogger(ImageBlobBug.class.getName()); public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { MapString, BlobKey blobs = blobstoreService.getUploadedBlobs(req); BlobKey blobKey = blobs.get(myFile); Image image = ImagesServiceFactory.makeImageFromBlob(blobKey); res.sendRedirect(#+ (image == null ? Image could not be made from blob:Image successfully retrieved with height: + image.getHeight())); } } Here is the stacktrace: java.lang.UnsupportedOperationException: No image data is available. at com.google.appengine.api.images.ImageImpl.updateDimensions(ImageImpl.java: 130) at com.google.appengine.api.images.ImageImpl.getHeight(ImageImpl.java: 63) at ImageBlobBug.doPost(ImageBlobBug.java:27) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: 216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: 181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: 712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: 405) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: 70) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java: 368) at com.google.appengine.api.blobstore.dev.UploadBlobServlet.access $000(UploadBlobServlet.java:72) at com.google.appengine.api.blobstore.dev.UploadBlobServlet $1.run(UploadBlobServlet.java:100) at java.security.AccessController.doPrivileged(Native Method) at com.google.appengine.api.blobstore.dev.UploadBlobServlet.doPost(UploadBlobServlet.java: 98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 487) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1093) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: 51) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1084) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) at org.mortbay.jetty.servlet.ServletHandler
[google-appengine] Serialized List not saving on insert, only update?
I thought this was working before, so I'm not sure if this is a PEPCAK problem... I'm inserting an entity with a serialized collection of other serialized objects. This stores correctly on updates, but when I set the serialized collection on insert, it forgets the collection. Any ideas? Would you expect insert and update to handle the serialized collection of objects differently? Thanks! Here's how I'm doing it: public class Foo{ ... @Persistent(serialized=true) private SetSomeSerializedObject myObj; ... } Foo f = new Foo(); f.setSomeSerializedObject(new SomeSerializedObject(foo bar)); Transaction tx = pm.currentTransaction(); try { tx.begin(); pm.makePersistent(f); tx.commit(); } finally { if(tx.isActive()) { tx.rollback(); } } -- 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.