Re: [appengine-java] 500 Internal Server Error:Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles?
either do I.. 7 failed retries today On Thu, Dec 16, 2010 at 9:49 PM, Sumi sumi...@gmail.com wrote: I am getting deployed error gaian...this is happening every other day and as big productivity sink...anyone knows what is going on and when this will be resolved? Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5; 500 Internal Server Error htmlhead meta http-equiv=content-type content=text/html;charset=utf-8 title500 Server Error/title /head body text=#00 bgcolor=#ff h1Error: Server Error/h1 h2The server encountered an error and could not complete your request.pIf the problem persists, please A HREF= http://code.google.com/appengine/community.html;report/A your problem and mention this error message and the query that caused it./h2 h2/h2 /body/html See the deployment console for more details Unable to update app: Error posting to URL: https://appengine.google.com/api/appversion/clonefiles?app_id=Xversion=5; 500 Internal Server Error htmlhead meta http-equiv=content-type content=text/html;charset=utf-8 title500 Server Error/title /head body text=#00 bgcolor=#ff h1Error: Server Error/h1 h2The server encountered an error and could not complete your request.pIf the problem persists, please A HREF= http://code.google.com/appengine/community.html;report/A your problem and mention this error message and the query that caused it./h2 h2/h2 /body/html -- 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. -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- 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: process large file in BlobStore?
Hi, I found this great tutorial from Ikai. it explains how to use the Mapper API to import large CSV files from the blob store to the datastore. So it is essentially what I was looking for. Here the link for those who might have the same need: http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-import Cheers, Toby On Dec 2, 6:53 pm, Didier Durand durand.did...@gmail.com wrote: Hi, you have to distinguish between a Blob stored in Datastore whose limit is 1 Mbyte and a blob stored in the blobstore whose limit is 2 Gbytes For the blob in the blobstore you access it by chunks via the api: see the byte range inhttp://code.google.com/appengine/docs/java/blobstore/overview.html#Se... To read those chunks, you have to use the BlobstoreInputStream and its read() method. Seehttp://code.googlecom/appengine/docs/java/javadoc/com/google/appengin... regards didier On Dec 2, 6:23 pm, Toby toby.ro...@gmail.com wrote: Hi, I am trying to figure out how to programatically process a file from the BlobStore. It is a CSV file of about 100MB. I read that the limit is 1MB but I have seen in Pyton that it can be read partially (they call it BlobReader). Is this a feature currently not available in Java? Or is there a way I can process this data step by step using the task-queue? Thank you, Toby -- 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 declare transactions type = optimistic
Hello, am developing an GAE java app using gwt and eclipse and wish to know whether all transactions in GAE app are optimistic or you need to define it somewhere? -- 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] Access to Subversion (SVN) from App Engine
Bonjour Didier Durand, Je me permets de vous solliciter via le forum, car je me pose la meme question que vous, comment utiliser SVN et Google App Engine ? Avez-vous de l'expérience de dev, test et prod ? Merci par avance de votre réponse, Maxime Mularz -- 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] Access to Subversion (SVN) from App Engine
Bonjour, Je suis en train de préparer les tests unitaires de SvnKit (c'est la meilleure librairie que j'aie trouvé) en environnement standard Java puis sur Gae: relancez moi dans qq semaines et je pourrais vous dire où j'en suis. Contactez-moi sur mon adresse et je vous donnerai plus de détails sur mon chantier actuel Bonne fin d'année 2010 et bon début 2011 ! didier Didier DURAND durand.did...@gmail.com blog: http://media-tech.blogspot.com Jougne - FR-25370 On Fri, Dec 17, 2010 at 2:10 PM, Maxime Mularz max...@mularz.fr wrote: Bonjour Didier Durand, Je me permets de vous solliciter via le forum, car je me pose la meme question que vous, comment utiliser SVN et Google App Engine ? Avez-vous de l'expérience de dev, test et prod ? Merci par avance de votre réponse, Maxime Mularz -- 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] Re: Cannot resize a .tif image using the ImagesService on the dev app server
I see a post from Nick Johnson of Google on StackOverflow.com dated 6th July 2010 about plug-ins. He said: You're trying to work with 'ico' and 'tif' images. Neither of these are supported on App Engine - only JPG, PNG and GIF. The GAE/J documentation Images Java API Overview at: http://code.google.com/intl/en/appengine/docs/java/images/overview.html#Image_Formats states that: The service accepts image data in the JPEG, PNG, GIF (including animated GIF), BMP, TIFF and ICO formats. Does this GAE/J documentation need to be corrected? On Dec 17, 7:35 am, Ian Marshall ianmarshall...@gmail.com wrote: No ideas, anyone? On Dec 16, 11:59 am, Ian Marshall ianmarshall...@gmail.com wrote: I refer to the related post entitled WARNING: No image reader found for format ico. An ImageIO plugin must be installed to use this format with the DevAppServer. dated 7th June 2009 at: http://groups.google.com/group/google-appengine-java/browse_thread/th... where a query about the dev app server warnings below was raised, but after Jason of Google asked a supplementary question he received no response from the original poster. My web app uploads an image file from a web browser user and then, if the file is larger than around 900kB I use the GAE/J ImagesService to reduce the image data size to this level. An extract of my relevant code is: byte[] baImageSource = [...]; // Data from an uploaded image file int nNewWidth = [...]; // Calculate correct shrinkage int nNewHeight = [...]; // Calculate correct shrinkage Image imgSource = ImagesServiceFactory.makeImage(baImageSource); ImagesService isService = ImagesServiceFactory.getImagesService(); Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth, nNewHeight); Image imgNew = isService.applyTransform(tfrm, imgSource); byte[] baResult = imgNew.getImageData(); // The shrunken image data When I run my ImagesService code on my GAE/J development server ((latest) version 1.4.0) I get the two warnings: 16-Dec-2010 10:40:18 com.google.appengine.api.images.dev.LocalImagesService init WARNING: No image reader found for format ico. An ImageIO plugin must be installed to use this format with the DevAppServer. 16-Dec-2010 10:40:18 com.google.appengine.api.images.dev.LocalImagesService init WARNING: No image reader found for format tif. An ImageIO plugin must be installed to use this format with the DevAppServer. My code runs well for shrinking .jpg files, but when I try this for a .tif file of size 6.11 MB I get an IllegalArgumentException on my call to ImagesService.applyTransform(...). (I set out a stack trace at the foot of this post.) I have a few questions for those interested: · How do I get a tif ImageIO plug-in for the ImagesService ()? · Should this plug-in be supplied with the GAE/J SDK in future releases? · Does this issue apply to the dev app server only (I have not yet deployed this to production)? Cheers, Ian Marshall STACK TRACE WHEN TRANSFORMING A .TIF FILE - java.lang.IllegalArgumentException: Failed to read image at com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java: 301) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 73) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 50) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 39) at [my package path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: 311) at [my package path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: 236) at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java: 1561) at org.apache.wicket.markup.html.form.Form.process(Form.java:958) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java: 920) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: 100) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java: 182) at org.apache.wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java: 73) at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java: 92) at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java: 1250) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436) at
[appengine-java] Re: How to declare transactions type = optimistic
Hi, Everything is detailled here: http://code.google.com/appengine/docs/java/datastore/transactions.html#Isolation_and_Consistency I also deeply recommend this article: http://code.google.com/appengine/articles/transaction_isolation.html regards didier On Dec 17, 1:19 pm, sagar misal sagar1982mi...@gmail.com wrote: Hello, am developing an GAE java app using gwt and eclipse and wish to know whether all transactions in GAE app are optimistic or you need to define it somewhere? -- 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] JSP runtime errors in Eclipse plugin
When I run my project using the eclipse plugin (g Web Application) I don't get any JSP runtime errors. If there is an NPE all I get is: HTTP ERROR 500 Problem accessing /. Reason: INTERNAL_SERVER_ERROR Powered by Jetty:// Is there a setting that I can allow JSP errors to show on the error page? -- 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: Channel API problem
The Channel API is working for me, but I don't see anything you are doing wrong in your code. Here is a link to another discussion containing the code that worked for me https://groups.google.com/d/topic/google-appengine-java/GfJQsf8OQ0I/discussion On Dec 16, 5:26 am, Tarun tarun.chha...@gmail.com wrote: I have been trying to use the newly launched Channel API on SDK 1.4 in my project. I try to push a message to client which actually pops up a notification but I am getting the ChannelFailureException. Here is the code: TestServlet Where the token is created: public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); resp.setContentType(text/html); // Creating the userID on the basis of the session id String userId = req.getSession().getId(); // Starting the ChannelService of the channel API ChannelService channelService = ChannelServiceFactory .getChannelService(); // Creating the client token String token = channelService.createChannel(userId); req.getSession().setAttribute(token, token); out.println(html); out.println(head); out.println(titleThis is a servlet which will be used to try the new Channel API/title); out.println(/head); out.println(body); out.println(a href=\/ChannelAPI.jsp\Click Here/a to recieve a notification on the next page using channel API); out.println(/body); } } Channel API.jsp script channel = new goog.appengine.Channel('%= userId%'); socket = channel.open(); //socket.onopen = onOpened; socket.onmessage = onMessage; socket.onerror = onError; socket.onclose = onClose; onMessage = function (message){ $.pnotify({ pnotify_title: 'Regular Notice', pnotify_text: message.data }); }; onError = function (description,code){ $.pnotify({ pnotify_title: 'Uh Oh!', pnotify_text: 'something went wrong', pnotify_type: 'error', pnotify_hide: false }); }; /script Send Message servlet: public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userId = (String) req.getSession().getAttribute(token); ChannelService channelService = ChannelServiceFactory.getChannelService(); channelService.sendMessage(new ChannelMessage(userId, This is the message that has been sent)); } } The stack trace I got Uncaught exception from servlet com.google.appengine.api.channel.ChannelFailureException: An unexpected error occurred. at com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServ iceImpl.java: 59) Can you tell me if there is something wrong with the code or with the Channel API? Thanks in advance, Tarun -- 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] App Engine Channel API - Cant send messages
Hi i want to use the channel api but everytime i try to send a message, i just get these exception: [ERROR] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract void de.dhbw.channeltest.client.GreetingService.greetServer(java.lang.String)' threw an unexpected exception: com.google.appengine.api.channel.ChannelFailureException: An unexpected error occurred. at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Caused by: com.google.appengine.api.channel.ChannelFailureException: An unexpected error occurred. at com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java:59) at de.dhbw.channeltest.server.GreetingServiceImpl.greetServer(GreetingServiceImpl.java:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562) ... 30 more Caused by: com.google.apphosting.api.ApiProxy$ApplicationException: ApplicationError: 2: at com.google.appengine.api.channel.dev.LocalChannelService.sendChannelMessage(LocalChannelService.java:91) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.callInternal(ApiProxyLocalImpl.java:387) at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:353) at com.google.appengine.tools.development.ApiProxyLocalImpl$AsyncApiCall.call(ApiProxyLocalImpl.java:332) at java.util.concurrent.Executors$PrivilegedCallable$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.util.concurrent.Executors$PrivilegedCallable.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at
Re: [appengine-java] Channel API problem
You're trying to connect with the userId in your script. You need to connect with the token. I made the same mistake the first time :) BTW, here's a collaborative whiteboard demo with the channel API : http://goo.gl/F5rb2 Luis On Thu, Dec 16, 2010 at 3:26 AM, Tarun tarun.chha...@gmail.com wrote: I have been trying to use the newly launched Channel API on SDK 1.4 in my project. I try to push a message to client which actually pops up a notification but I am getting the ChannelFailureException. Here is the code: TestServlet Where the token is created: public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); resp.setContentType(text/html); // Creating the userID on the basis of the session id String userId = req.getSession().getId(); // Starting the ChannelService of the channel API ChannelService channelService = ChannelServiceFactory .getChannelService(); // Creating the client token String token = channelService.createChannel(userId); req.getSession().setAttribute(token, token); out.println(html); out.println(head); out.println(titleThis is a servlet which will be used to try the new Channel API/title); out.println(/head); out.println(body); out.println(a href=\/ChannelAPI.jsp\Click Here/a to recieve a notification on the next page using channel API); out.println(/body); } } Channel API.jsp script channel = new goog.appengine.Channel('%= userId%'); socket = channel.open(); //socket.onopen = onOpened; socket.onmessage = onMessage; socket.onerror = onError; socket.onclose = onClose; onMessage = function (message){ $.pnotify({ pnotify_title: 'Regular Notice', pnotify_text: message.data }); }; onError = function (description,code){ $.pnotify({ pnotify_title: 'Uh Oh!', pnotify_text: 'something went wrong', pnotify_type: 'error', pnotify_hide: false }); }; /script Send Message servlet: public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userId = (String) req.getSession().getAttribute(token); ChannelService channelService = ChannelServiceFactory.getChannelService(); channelService.sendMessage(new ChannelMessage(userId, This is the message that has been sent)); } } The stack trace I got Uncaught exception from servlet com.google.appengine.api.channel.ChannelFailureException: An unexpected error occurred. at com.google.appengine.api.channel.ChannelServiceImpl.sendMessage(ChannelServiceImpl.java: 59) Can you tell me if there is something wrong with the code or with the Channel API? Thanks in advance, Tarun -- 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] Re: JSP compiling fails after upgrade from 1.3.8 to 1.4.0
I had the same issues with two projects after upgrade. If you are using the Eclipse Plugin, this steps may work for you: 1. Right click on Project - Build Path - Configure Build Path. 2. Go to Order and Export tab 3. Move your src folder to top, then put JRE, App Engine SDK, GWT SDK (if applicable) and Junit 4 (if applicable) above, and all other libs above them. After this, your local devserver may work as usual. Best Regards, On 16 dez, 02:57, Chris Keller xyl...@gmail.com wrote: Note that the previous post only applies to my local development environment. I just tried using the new version of the SDK on the production server, and it has no problems. -- 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] BlobstoreService has dependency on HttpServletRequest, my web framework does not
My web framework doesn't give access to the raw servlet request or response objects (stateless). This is obviously making it rather difficult to use the BlobstoreService. Is there any way to get the BlobKeys from a successful upload other than BlobstoreService.getUploadedBlobs? I suppose I could bounce the request off another server using servlets for handling but this is awfully hacky. On the flip side, can I use ByteArrayInputStream to fetch a blob and write it directly to a response without actually calling blobstoreService.serve? I know this isn't efficient, but I do not see a way to get a raw url to the blob meaning I can't access the store from a different server. It's looking like I will have to setup another GAE app to handle file uploads. -- 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: The API call mail.Send() required more quota than is available.
It's to slow down spammers. To have a higher limit, you can enable billing. You'll have up to 5,100 recipients a minute. http://code.google.com/appengine/docs/quotas.html#Mail -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango ron.difra...@gmail.comwrote: I figured this out, even though the recipient quota per day is 2,000, you can not send an email that has more than 8 recipients within a minute. I worked around this by using a mailing list service that emails are sent to instead. Why is there such a low er email recipient total? -- 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] Re: App Engine Channel API - Cant send messages
1. generate id on server and send to client: token = ChannelServiceFactory.getChannelService().createChannel(name); return token; 3. send message (on server) ChannelService cs = ChannelServiceFactory.getChannelService(); ChannelMessage cm = new ChannelMessage(token, message); cs.sendMessage(cm); but then i get the error :/ Any ideas? Thanks :) ChannelMessage cm = new ChannelMessage(token, message); must be ChannelMessage cm = new ChannelMessage(name, message); -- 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: process large file in BlobStore?
Glad it could be of help! I need to free up some time to write some more articles. I've got all these ideas in mind ... -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Fri, Dec 17, 2010 at 12:56 AM, Toby toby.ro...@gmail.com wrote: Hi, I found this great tutorial from Ikai. it explains how to use the Mapper API to import large CSV files from the blob store to the datastore. So it is essentially what I was looking for. Here the link for those who might have the same need: http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-import Cheers, Toby On Dec 2, 6:53 pm, Didier Durand durand.did...@gmail.com wrote: Hi, you have to distinguish between a Blob stored in Datastore whose limit is 1 Mbyte and a blob stored in the blobstore whose limit is 2 Gbytes For the blob in the blobstore you access it by chunks via the api: see the byte range inhttp:// code.google.com/appengine/docs/java/blobstore/overview.html#Se... To read those chunks, you have to use the BlobstoreInputStream and its read() method. Seehttp://code.googlecom/appengine/docs/java/javadoc/com/google/appengin... regards didier On Dec 2, 6:23 pm, Toby toby.ro...@gmail.com wrote: Hi, I am trying to figure out how to programatically process a file from the BlobStore. It is a CSV file of about 100MB. I read that the limit is 1MB but I have seen in Pyton that it can be read partially (they call it BlobReader). Is this a feature currently not available in Java? Or is there a way I can process this data step by step using the task-queue? Thank you, Toby -- 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.
Re: [appengine-java] Re: The API call mail.Send() required more quota than is available.
Ikai, I do understand that, but 8 seems like a somewhat arbitrary number. My site was just attempting to send an email to my immediate family which easily exceeds that number. And given my actual usage, there is no real reason for me to enable billing. Ron On Fri, Dec 17, 2010 at 12:44 PM, Ikai Lan (Google) ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote: It's to slow down spammers. To have a higher limit, you can enable billing. You'll have up to 5,100 recipients a minute. http://code.google.com/appengine/docs/quotas.html#Mail -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango ron.difra...@gmail.com wrote: I figured this out, even though the recipient quota per day is 2,000, you can not send an email that has more than 8 recipients within a minute. I worked around this by using a mailing list service that emails are sent to instead. Why is there such a low er email recipient total? -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Ron DiFrango http://rdifrango.blogspot.com/ -- 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] Entity relationship designing - best practice
i want to hear the best practice on establishing entity relationships in my case- Example, for sake of discussion:- User Exam Page Question Answer As you can see, from top, each entity has 1 - many relationship with entity immediately beneath it. Interesting case is a User can have any number of Exam and it can *scale* in whatever manner, but a Exam usually will have few Pages, a Page with few Questions, Questions with few Answers I saw this interesting post best practice to persist medium-large datahttp://www.mail-archive.com/google-appengine-java@googlegroups.com/msg06087.html (which is also a answer to this ques) and it made me to design like this: Also i plan to keep each entity in its own entity group, as recommended by AppEngine - totally eliminating Parent relationship, as far as possible class User{ String name; // ListKeyExam exams; NOT a good idea, as this will unnecessarily load bulk amt of Exam keys when i load User ... } So i would use a query to get all Exams created by any User. Fine. But class Exam{ String subject; // With this i can *quickly* retrieve all Pages with keys, but as Exam and Page are not in same Entity Group, // how do i maintain *consistency* when, say, i delete a Page and accordingly remove that Key entry in Exam. // Also as said earlier, no. of pages (hence keys) shouldn't be too high, so dont need to worry abt size ListKeyPage pages; } class Page{ String pageNo. KeyExam exam; // with this i can *only(?)* use query to get all Pages under a Exam, so *unnecessary index scan*[1] ListKeyQuestion questions; } The same extends to Page - Question - Answer [1] Retrieving via Keys are faster than queryinghttp://www.mail-archive.com/google-appengine@googlegroups.com/msg33846.html So what is your recommendation and why? I can suspect that it should be a trade-off between unnecessary loading of keys/extra scan of indices but want to get some thoughts and what about consistency? Thanks much in advance. p.s. though not relevant, most likely i will use low level framework, mainly Objectify.. -- 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: Not sending email with Javamail and no error
Straight zero utilizations means the email api is not accepting your requests rather than the message getting lost in transit. Where the error goes is not obvious due to Issue 1800 I suggest continuing to replace your fields with static values to see which one is not accepted. My gut says to check the character set - UTF-8 works fine for me. Otherwise you may be encountering a known issue with the mail server: http://code.google.com/p/googleappengine/issues/list?can=2q=component%3DMailcolspec=ID+Type+Component+Status+Stars+Summary+Language+Priority+Owner+Logcells=tiles Here is my code, I've embedded it into a queue task and it works thousands of times daily. Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(fromAddress, fromName)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress( toAddress, toName )); msg.setReplyTo( ADMIN_ADDRESSES ); msg.addHeader( Return-Path , ADMIN_ADDRESS ); if ( bccSupport != null !bccSupport.isEmpty() ) { // only add support bcc if specified msg.addRecipient( Message.RecipientType.BCC, new InternetAddress( bccSupport )); } msg.setSubject(subject); msg.setText( body ); Transport.send(msg); http://code.google.com/p/googleappengine/issues/list?can=2q=component%3DMailcolspec=ID+Type+Component+Status+Stars+Summary+Language+Priority+Owner+Logcells=tiles On Thu, Dec 16, 2010 at 10:01 PM, Moretto mala...@gmail.com wrote: As you see the first time i've deployed my app, 2 email were sent. It appeared at my cota details. Now Could you post your headers details? Mail API Calls 0% 0 of 7,000 Okay Recipients Emailed 0% 0 of 2,000 Okay Admins Emailed 0% 0 of 5,000 Okay Message Body Data Sent 0% 0.00 of 0.06 GBytes Okay Attachments Sent 0% 0 of 2,000 Okay Attachment Data Sent 0% 0.00 of 0.10 GBytes Okay On Dec 17, 2:21 am, A. Stevko andy.ste...@gmail.com wrote: I have much the same code although I set more headers. How about adding yourself as a BCC and/or CC? Also, do you see any utilization in your Quota details - Mail API Calls and Recipients Emailed ? On Thu, Dec 16, 2010 at 8:12 PM, Moretto mala...@gmail.com wrote: Still no messagesand no errors Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); // UserService userService = UserServiceFactory.getUserService(); //User user = userService.getCurrentUser(); try { Message msg = new MimeMessage(session); //msg.setFrom(new InternetAddress(user.getEmail())); msg.setFrom(new InternetAddress(mala...@gmail.com, [k- share])); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(email, destinatario)); msg.setSubject(titulo); msg.setText(texto); Transport.send(msg); } catch (AddressException e) { e.printStackTrace(); return false; } catch (MessagingException e) { e.printStackTrace(); return false; } catch (Exception e) { e.printStackTrace(); return false; } return true; On Dec 17, 2:03 am, Moretto mala...@gmail.com wrote: can send email messages on behalf of the app's administrators, and on behalf of users with Google Accounts. UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); These two lines of code retrieve the current google user logged in. i'll change it and test. On Dec 17, 1:52 am, A. Stevko andy.ste...@gmail.com wrote: I now recall the conditions... http://code.google.com/appengine/docs/java/mail/overview.html App Engine applications can send email messages on behalf of the app's administrators, and on behalf of users with Google Accounts. On Thu, Dec 16, 2010 at 7:49 PM, A. Stevko andy.ste...@gmail.com wrote: Does the email address used in your From have administrator privileges for your app? msg.setFrom(new InternetAddress(user.getEmail())); I read somewhere that system could only send email from registered email addresses. On Thu, Dec 16, 2010 at 7:13 PM, Moretto mala...@gmail.com wrote: I've changed the code to initialize the Session object passing properties as a parameter. Nothing changed. Still does not send emails and doesnt throws any exception. Ideias?? Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); try {
[appengine-java] Re: Cannot resize a .tif image using the ImagesService on the dev app server
I can confirm that my testing on the GAE/J dev app server has revealed that its images service can process formats as follows: JPG: Yes PNG: Yes GIF: Yes ICO: No TIFF: No BMP: Yes. Would Google consider updating their images service documentation? Regards, Ian Marshall On Dec 17, 3:43 pm, Ian Marshall ianmarshall...@gmail.com wrote: I see a post from Nick Johnson of Google on StackOverflow.com dated 6th July 2010 about plug-ins. He said: You're trying to work with 'ico' and 'tif' images. Neither of these are supported on App Engine - only JPG, PNG and GIF. The GAE/J documentation Images Java API Overview at: http://code.google.com/intl/en/appengine/docs/java/images/overview.ht... states that: The service accepts image data in the JPEG, PNG, GIF (including animated GIF), BMP, TIFF and ICO formats. Does this GAE/J documentation need to be corrected? On Dec 17, 7:35 am, Ian Marshall ianmarshall...@gmail.com wrote: No ideas, anyone? On Dec 16, 11:59 am, Ian Marshall ianmarshall...@gmail.com wrote: I refer to the related post entitled WARNING: No image reader found for format ico. An ImageIO plugin must be installed to use this format with the DevAppServer. dated 7th June 2009 at: http://groups.google.com/group/google-appengine-java/browse_thread/th... where a query about the dev app server warnings below was raised, but after Jason of Google asked a supplementary question he received no response from the original poster. My web app uploads an image file from a web browser user and then, if the file is larger than around 900kB I use the GAE/J ImagesService to reduce the image data size to this level. An extract of my relevant code is: byte[] baImageSource = [...]; // Data from an uploaded image file int nNewWidth = [...]; // Calculate correct shrinkage int nNewHeight = [...]; // Calculate correct shrinkage Image imgSource = ImagesServiceFactory.makeImage(baImageSource); ImagesService isService = ImagesServiceFactory.getImagesService(); Transform tfrm = ImagesServiceFactory.makeResize(nNewWidth, nNewHeight); Image imgNew = isService.applyTransform(tfrm, imgSource); byte[] baResult = imgNew.getImageData(); // The shrunken image data When I run my ImagesService code on my GAE/J development server ((latest) version 1.4.0) I get the two warnings: 16-Dec-2010 10:40:18 com.google.appengine.api.images.dev.LocalImagesService init WARNING: No image reader found for format ico. An ImageIO plugin must be installed to use this format with the DevAppServer. 16-Dec-2010 10:40:18 com.google.appengine.api.images.dev.LocalImagesService init WARNING: No image reader found for format tif. An ImageIO plugin must be installed to use this format with the DevAppServer. My code runs well for shrinking .jpg files, but when I try this for a .tif file of size 6.11 MB I get an IllegalArgumentException on my call to ImagesService.applyTransform(...). (I set out a stack trace at the foot of this post.) I have a few questions for those interested: · How do I get a tif ImageIO plug-in for the ImagesService ()? · Should this plug-in be supplied with the GAE/J SDK in future releases? · Does this issue apply to the dev app server only (I have not yet deployed this to production)? Cheers, Ian Marshall STACK TRACE WHEN TRANSFORMING A .TIF FILE - java.lang.IllegalArgumentException: Failed to read image at com.google.appengine.api.images.ImagesServiceImpl.convertApplicationException(ImagesServiceImpl.java: 301) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 73) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 50) at com.google.appengine.api.images.ImagesServiceImpl.applyTransform(ImagesServiceImpl.java: 39) at [my package path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: 311) at [my package path].business.MiscellaneousBusiness.compressImage(MiscellaneousBusiness.java: 236) at [my package path].wicket.stuff.MyPage$5.onSubmit(MyPage.java:1348) at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java: 1561) at org.apache.wicket.markup.html.form.Form.process(Form.java:958) at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java: 920) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: 100) at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java: 182) at
[appengine-java] Re: App Engine Channel API - Cant send messages
Problem solved :) Thank you ! On Dec 17, 6:46 pm, 9drag...@googlemail.com 9drag...@googlemail.com wrote: 1. generate id on server and send to client: token = ChannelServiceFactory.getChannelService().createChannel(name); return token; 3. send message (on server) ChannelService cs = ChannelServiceFactory.getChannelService(); ChannelMessage cm = new ChannelMessage(token, message); cs.sendMessage(cm); but then i get the error :/ Any ideas? Thanks :) ChannelMessage cm = new ChannelMessage(token, message); must be ChannelMessage cm = new ChannelMessage(name, message); -- 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: The API call mail.Send() required more quota than is available.
8 is fairly arbitrary, but there's always going to be a number that bothers people, be it 10, 20 or 50. You should enable billing. We only charge if you go above the daily free quota, and it raises the rate limit. That means that if you send 10 emails per minute and only do this once a month, you'll never hit this quota limit, and we'll likely not bill you since you'll still be well within our free quota. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Fri, Dec 17, 2010 at 10:28 AM, Ronald R. DiFrango ron.difra...@gmail.com wrote: Ikai, I do understand that, but 8 seems like a somewhat arbitrary number. My site was just attempting to send an email to my immediate family which easily exceeds that number. And given my actual usage, there is no real reason for me to enable billing. Ron On Fri, Dec 17, 2010 at 12:44 PM, Ikai Lan (Google) ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote: It's to slow down spammers. To have a higher limit, you can enable billing. You'll have up to 5,100 recipients a minute. http://code.google.com/appengine/docs/quotas.html#Mail -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Mon, Dec 13, 2010 at 7:14 PM, Ronald R. DiFrango ron.difra...@gmail.com wrote: I figured this out, even though the recipient quota per day is 2,000, you can not send an email that has more than 8 recipients within a minute. I worked around this by using a mailing list service that emails are sent to instead. Why is there such a low er email recipient total? -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Ron DiFrango http://rdifrango.blogspot.com/ -- 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.
Re: [appengine-java] Multiple Async get vs one Sync batch get?
Interesting results! I've run similar tests with writes (put and delete) and my results indicate that in most situations, multiple async writes will perform better than one batch sync call. I can't think of any reason this wouldn't be the case for reads as well. Are your entities all in different entity groups? Thanks, Max On Fri, Dec 17, 2010 at 4:11 PM, Ikai Lan (Google) ikai.l+gro...@google.comikai.l%2bgro...@google.com wrote: Very cool. Thanks for posting! What kind of processing are you doing after you retrieve the entities? I'm surprised it made a difference. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Fri, Dec 17, 2010 at 2:48 PM, Gal Dolber gal.dol...@gmail.com wrote: Even better :) [image: Screen shot 2010-12-17 at 7.48.44 PM.png] On Fri, Dec 17, 2010 at 7:31 PM, Gal Dolber gal.dol...@gmail.com wrote: Here are my results if anyone interested. The idea was splitting a batch into multiple async gets so I could start processing each results while the others were being fetched. With the batch get I need to wait until I get all the results to do the next operations. At the end (on my situation) batching won. * * *Multiple async gets* [image: MultipleAsyncs.png] *Batching* [image: Batch.png] On Thu, Dec 16, 2010 at 4:48 PM, Gal Dolber gal.dol...@gmail.comwrote: Yes, I am talking about datastore api. I made some isolated tests and the batch always wins (no by so much). But in my app, when I break the batch into multiple async gets, I can start processing each async get result (and doing another api calls) before... and it seems to be perform better. I'll keep doing tests and post if find anything interesting. Thanks! On Thu, Dec 16, 2010 at 2:42 PM, Ikai Lan (Google) ikai.l+gro...@google.com ikai.l%2bgro...@google.com wrote: You're talking about the datastore API? Underneath the hood, synchronous gets just make asynchronous calls and block on Future.get() anyway. Making a single synchronous batch get would translate to a single asynchronous RPC with multiple keys vs. multiple asynchronous get RPCs. I suspect the single batch call will perform better from a CPU cost/quota perspective, but I'd defer to AppStats benchmarks as the authoritative answer. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Wed, Dec 15, 2010 at 3:38 AM, Gal Dolber gal.dol...@gmail.comwrote: Should I expect the similar performance? or the batch will always be better? -- 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.comgoogle-appengine-java%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- 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.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
[appengine-java] Re: JSP compiling fails after upgrade from 1.3.8 to 1.4.0
Ronoaldo, that was exactly it! I went to Configure Build Path, Order and Export, and reordered the entries. I have my project's src and test folders first, then JRE System Library, App Engine SDK, GWT SDK, then my project's special libraries (google-api-client and gwt-maps). It runs great on my local server again. Thanks! On Dec 17, 4:20 am, Ronoaldo José de Lana Pereira ronoa...@gmail.com wrote: I had the same issues with two projects after upgrade. If you are using the Eclipse Plugin, this steps may work for you: 1. Right click on Project - Build Path - Configure Build Path. 2. Go to Order and Export tab 3. Move your src folder to top, then put JRE, App Engine SDK, GWT SDK (if applicable) and Junit 4 (if applicable) above, and all other libs above them. After this, your local devserver may work as usual. Best Regards, On 16 dez, 02:57, Chris Keller xyl...@gmail.com wrote: Note that the previous post only applies to my local development environment. I just tried using the new version of the SDK on the production server, and it has no problems. -- 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: Problem switching to 1.4.0 - JSP compilation fails
Hi Lorenzo, I was having this problem too. This will fix it in the development environment: 1) Open appengine-java-sdk-1.4.0.zip 2) Find el-api.jar, jsp-api.jar, servlet-api.jar and repackaged-appengine-jasper-6.0.29.jar 3) Copy them to war/WEB-INF/lib Thanks, Helder -- 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: The API call mail.Send() required more quota than is available.
... or enqueue your outgoing message on a task queue with a slow run frequency (let's say 5/minutes). I do that and I'm very happy. :) Fabrizio On Sat, Dec 18, 2010 at 1:15 AM, Ikai Lan (Google) ikai.l+gro...@google.comikai.l%2bgro...@google.com wrote: 8 is fairly arbitrary, but there's always going to be a number that bothers people, be it 10, 20 or 50. You should enable billing. We only charge if you go above the daily free quota, and it raises the rate limit. That means that if you send 10 emails per minute and only do this once a month, you'll never hit this quota limit, and we'll likely not bill you since you'll still be well within our free quota. -- 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: [google-appengine] Re: Newbie Q - Public IP address_DNS Server?
Thanks for your message Andrew. I know that the web service security whitelisting ip adress is poor, but it's hosted by another company who provide the service I need and only than can provide it... I don't think they gonna change their security for me! It's a shame because I really want to use Google app engine, but just because of this I will have to use AWS, which will be much more complex to manage... On Fri, Dec 17, 2010 at 01:17, A. Stevko andy.ste...@gmail.com wrote: Nope - the best I can think of ghs.google.com although that is where inbound traffic is going to and not necessarily where url fetch hits originate from. I can't imaging all the traffic from the url fetch pool coming from any single ip address. FWIW, A web service whitelisting an ip address is poor security because it is relatively easy for public relays to see where the traffic is coming from and then spoof hits to come from those sources. It is much better to sign your web service requests with a key like AWS SimpleDB does. On Thu, Dec 16, 2010 at 6:52 AM, jlancelot julien.lance...@gmail.comwrote: Hello everyone, I come back on this subject because I need to set a public IP on my GAE. I need to call a Web Service from the server but this web service need a IP to authorize anyone to call it. When I lauch GAE in local, there's no problem because I can identify my IP. Is there a solution to set a public IP on a Google App Engine? Thanks a lot for your answer! -- 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.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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011
Are you sure about this ? I have noticed that I did indeed get new additional instance, but are their automatic scaling algorithm so simple that uses only average latency time. Maybe this is truth for first 10 instances and then they add additional checking. Although they nowhere display average cpu_ms or api_cpu_ms per instance we can't be sure that they don't collect it and use it. Few bytes per instance and few mathematical operation. I would collect it. With low latency they are able to easily scale applications on application servers, but with high cpu/api cpu ms they are not able to easily scale datastore or any other api service. So we can't say that 160 ms request with 17000 cpu ms is nice scalable request, but is 160 ms request with 1700 cpu ms ok or not. So is there some good max cpu/api cpu policy that they didn't explained ? Or they did with this yellow and red coloring schema around 700/1000 ms cpu usage. -- 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: max_backoff_seconds - working?
Thanks Nick. That makes sense. Indeed, I have been running a single task chain which would result in at most 1 task being pending at a time. -- 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: Memcache broken with Always On?
Not sure if it is related, but I was getting some interesting memcache errors that I had to work around: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java: 378) ... Caused by: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 289) at com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java: 166) On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote: Certainly Ikai, Firstly, some of my logs (url and classes slightly modified to hide some app details) that show how only the same instance picks up the entry. I'm determining and logging the instance using a UUID that I assign to a static class variable. The key for the cache lookup is passed in as a request query parameter to the followup requests. Here are two runs of the code to follow. In each, the bottom log is the cache entry being added. The next two are subsequent requests that both look for the entry. The entry is only found when then instance matches, regardless of which follow-up request. This first run shows how the bottom instance is different from the one that services both followup requests. So they don't find the entry: 50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 619001 - building 50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder? key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT found in cache for 619001 - building 0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/ processreminders?state=new W 12-16 11:19AM 08.581 com.mycode.CallPhoneAdapter doSend: CACHING message from instance: e4d5452e-c744-4333-b1d4-38eb55f97445 W 12-16 11:19AM 08.585 com.mycode.CallPhoneAdapter doSend: Adding to cache with key:619001 W 12-16 11:19AM 08.604 com.mycode.CallPhoneAdapter doSend: Successfully cached reminder 619001 In this second run, the first followup request hits the same instance that added it, and finds it. The second isn't so lucky, hitting a different instance 184.73.13.122 - - [16/Dec/2010:11:22:39 -0800] GET /processg? key=620001 W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: ff6ef71c-a017-4316-aa81-e77db741702b W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 620001 - building 204.236.222.67 - - [16/Dec/2010:11:22:28 -0800] POST /startreminder? key=620001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman HTTP/1.1 200 683 - CallProxy/0.7,gzip(gfe) cliniconexdev.appspot.com ms=24 cpu_ms=23 api_cpu_ms=0 cpm_usd=0.000805 W 12-16 11:22AM 28.127 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:22AM 28.134 com.mycode.CallMLServlet doGet: Message for entry 620001 FOUND in cache - using 0.1.0.2 - - [16/Dec/2010:11:22:06 -0800] POST /tasks/voicereminder HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/ processreminders?state=new AppEngine-Google; (+http://code.google.com/appengine) cliniconexdev.appspot.com ms=506 cpu_ms=1664 api_cpu_ms=941 cpm_usd=0.046287 queue_name=reminder- queue task_name=17196018701084092971 W 12-16 11:22AM 05.964 com.mycode.CallPhoneAdapter doSend: CACHING message from instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:22AM 05.965 com.mycode.CallPhoneAdapter doSend: Adding to cache with key:620001 W 12-16 11:22AM 05.984 com.mycode.CallPhoneAdapter doSend: Successfully cached reminder 620001 Here is the code that creates the cache (if required) and adds the entry in the first request: Cache cache = null; log.warning(CACHING message from instance: + jvmId); try { cache = CacheManager.getInstance().getCache(cache_reminderVoice); } catch (final Exception e) { log.fine(Cache cache_reminderVoice not yet created); } if (cache == null) { try { cache =
[google-appengine] Re: Memcache broken with Always On?
Missed some more errors: Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local class incompatible: stream classdesc serialVersionUID = -6007756724690804603, local class serialVersionUID = -1398789866 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: 1600) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java: 1513) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 1749) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) at com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java: 163) at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 283) ... 43 more On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote: Not sure if it is related, but I was getting some interesting memcache errors that I had to work around: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java: 378) ... Caused by: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 289) at com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java: 166) On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote: Certainly Ikai, Firstly, some of my logs (url and classes slightly modified to hide some app details) that show how only the same instance picks up the entry. I'm determining and logging the instance using a UUID that I assign to a static class variable. The key for the cache lookup is passed in as a request query parameter to the followup requests. Here are two runs of the code to follow. In each, the bottom log is the cache entry being added. The next two are subsequent requests that both look for the entry. The entry is only found when then instance matches, regardless of which follow-up request. This first run shows how the bottom instance is different from the one that services both followup requests. So they don't find the entry: 50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 619001 - building 50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder? key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT found in cache for 619001 - building 0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder HTTP/1.1 200 105 http://cliniconexdev.appspot.com/cron/ processreminders?state=new W 12-16 11:19AM 08.581 com.mycode.CallPhoneAdapter doSend: CACHING message from instance: e4d5452e-c744-4333-b1d4-38eb55f97445 W 12-16 11:19AM 08.585 com.mycode.CallPhoneAdapter doSend: Adding to cache with key:619001 W 12-16 11:19AM 08.604 com.mycode.CallPhoneAdapter doSend: Successfully cached reminder 619001 In this second run, the first followup request hits the same instance that added it, and finds it. The second isn't so lucky, hitting a different instance 184.73.13.122 - - [16/Dec/2010:11:22:39 -0800] GET /processg? key=620001 W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: ff6ef71c-a017-4316-aa81-e77db741702b W 12-16 11:22AM 38.782 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 620001 - building 204.236.222.67 - - [16/Dec/2010:11:22:28 -0800] POST /startreminder? key=620001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman HTTP/1.1 200 683 - CallProxy/0.7,gzip(gfe) cliniconexdev.appspot.com ms=24 cpu_ms=23 api_cpu_ms=0 cpm_usd=0.000805 W 12-16 11:22AM 28.127 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:22AM 28.134 com.mycode.CallMLServlet doGet: Message for entry 620001 FOUND in cache - using
[google-appengine] Re: Newbie Q - Public IP address_DNS Server?
You might want to star the following issue http://code.google.com/p/googleappengine/issues/detail?id=1269 -- 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] C2DM Rate Limiting
Hey all, We're running into an odd issue, and not sure if it's us, the AppEngine group, or the C2DM Android group at Google so I thought I'd post here to start and see where we can get. We have implemented a C2DM server on AppEngine servicing several hundred of our clients' Android applications, sending a lot of messages. It was working quite well for a while, but now we're seeing a lot of Error=QuotaExceeded returns from the C2DM server. Seems like one of three causes: -Our back-off algorithms aren't correct. Hard to tell though as the google docs are very light on what's an acceptable rate: http://code.google.com/android/c2dm/index.html I have turned off all retry logic, only sending original messages and it still triggers, so guessing it's not a back-off problem. -We're just plain hitting a C2DM limit, but would be great to be able to talk to someone at Google-Android about raising it. -Google is limited based on source IP and lumping all GAE requests together in a DDoS prevention bucket. Which would mean that over time our ability to send messages from GAE would only become worse. At this point I'm just looking to eliminate possibilities and the third one there seems to be the easiest to rule out. Does anyone on the AppEngine team have insight into whether that might be what's happening? Thanks, -Casey -- 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: Newbie Q - Public IP address_DNS Server?
On 17 December 2010 08:02, Julien Lancelot julien.lance...@gmail.com wrote: Thanks for your message Andrew. I know that the web service security whitelisting ip adress is poor, but it's hosted by another company who provide the service I need and only than can provide it... I don't think they gonna change their security for me! It's a shame because I really want to use Google app engine, but just because of this I will have to use AWS, which will be much more complex to manage... Why do you *have* to use AWS - there are other solutions You could even stick with AppEngine and just proxy the API calls. Could use a cheep VM elsewhere - or even a Tiny Instance on AWS. Or apigee.com gives you more control over IPs used. . On Fri, Dec 17, 2010 at 01:17, A. Stevko andy.ste...@gmail.com wrote: Nope - the best I can think of ghs.google.com although that is where inbound traffic is going to and not necessarily where url fetch hits originate from. I can't imaging all the traffic from the url fetch pool coming from any single ip address. FWIW, A web service whitelisting an ip address is poor security because it is relatively easy for public relays to see where the traffic is coming from and then spoof hits to come from those sources. It is much better to sign your web service requests with a key like AWS SimpleDB does. On Thu, Dec 16, 2010 at 6:52 AM, jlancelot julien.lance...@gmail.com wrote: Hello everyone, I come back on this subject because I need to set a public IP on my GAE. I need to call a Web Service from the server but this web service need a IP to authorize anyone to call it. When I lauch GAE in local, there's no problem because I can identify my IP. Is there a solution to set a public IP on a Google App Engine? Thanks a lot for your answer! -- 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. -- 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] Re: Newbie Q - Public IP address_DNS Server?
Thanks, it's done! Hope Google could do something sooner... On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.com wrote: You might want to star the following issue http://code.google.com/p/googleappengine/issues/detail?id=1269 -- 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] App Engine Limit on Index Entries per Entity
I know that there is a limit of 5000 index entries per entity, which means I can't do things like this: class Foo(db.Model): x = db.ListProperty(int) y = db.ListProperty(int) foo1 = Foo(x = range(5001)) foo1.put() Furthermore, if I have the index in index.yaml - kind: Foo properties: - name: x - name: y then I also see from this thread: http://groups.google.com/group/google-appengine/browse_thread/thread/d5f4dcb7d00ed4c6 that I can't do this: foo2 = Foo(x = range(100), y=range(100)) foo2.put() because that would give me 10,000 index entries. However, my question is: if I DON'T have any entries in index.yaml for Foo and try: foo3 = Foo(x = range(100), y=range(100)) foo3.put() will that still raise the BadRequestError:Too many indexed properties for entity exception? From my tests, it looks like it won't cause any errors. Is this correct? How many index entries would foo3 have in this case? Is it 200 (the sum of the lengths of each list)? Or something else? -- 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: Memcache broken with Always On?
Hit Erik, From your stack trace, I think you are seeing something else. Have you got an explicit serialVersionUID set in the com.WikiHop.jdo.Pi class (your key is OK I think) that you are putting into Memcache? And if so has it changed at some point? It looks like you may be either trying to read out a different class entirely than was inserted into the cache, or have changed or added the serialVersionUID in the value class since an entry was inserted and it is now stale. serialVersionUID is a way of identifying a class (or version of a class) to the java serialization framework - if you change it you are telling it that it is effectively no longer compatible for serialization with previous instances, even if you have change nothing else in the class. So it's a good idea to set it early, and never change it for a class unless you have a good reason to invalidate older serialized entries. I'm not having any problems reading values out of the cache. The problem I'm seeing is that the entire entry can only be found if it was inserted by the same JVM (or instance') that inserted it. A scoping problem where it appears to be less global than it should be. You may want to start a separate thread on your issue if you are still seeing it and the above doesn't shed any light on it. Thanks, Tom On Dec 17, 4:11 am, Erik erik.e.wil...@gmail.com wrote: Missed some more errors: Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local class incompatible: stream classdesc serialVersionUID = -6007756724690804603, local class serialVersionUID = -1398789866 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: 1600) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java: 1513) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 1749) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) at com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java: 163) at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 283) ... 43 more On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote: Not sure if it is related, but I was getting some interesting memcache errors that I had to work around: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java: 378) ... Caused by: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 289) at com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java: 166) On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote: Certainly Ikai, Firstly, some of my logs (url and classes slightly modified to hide some app details) that show how only the same instance picks up the entry. I'm determining and logging the instance using a UUID that I assign to a static class variable. The key for the cache lookup is passed in as a request query parameter to the followup requests. Here are two runs of the code to follow. In each, the bottom log is the cache entry being added. The next two are subsequent requests that both look for the entry. The entry is only found when then instance matches, regardless of which follow-up request. This first run shows how the bottom instance is different from the one that services both followup requests. So they don't find the entry: 50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 619001 - building 50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder? key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: Message NOT found in cache for 619001 - building 0.1.0.2 - - [16/Dec/2010:11:19:08 -0800] POST /tasks/voicereminder
[google-appengine] Re: Memcache broken with Always On?
Sorry, don't Hit Erik. Say Hi to him ;) On Dec 17, 10:46 am, Tom Phillips tphill0...@gmail.com wrote: Hit Erik, From your stack trace, I think you are seeing something else. Have you got an explicit serialVersionUID set in the com.WikiHop.jdo.Pi class (your key is OK I think) that you are putting into Memcache? And if so has it changed at some point? It looks like you may be either trying to read out a different class entirely than was inserted into the cache, or have changed or added the serialVersionUID in the value class since an entry was inserted and it is now stale. serialVersionUID is a way of identifying a class (or version of a class) to the java serialization framework - if you change it you are telling it that it is effectively no longer compatible for serialization with previous instances, even if you have change nothing else in the class. So it's a good idea to set it early, and never change it for a class unless you have a good reason to invalidate older serialized entries. I'm not having any problems reading values out of the cache. The problem I'm seeing is that the entire entry can only be found if it was inserted by the same JVM (or instance') that inserted it. A scoping problem where it appears to be less global than it should be. You may want to start a separate thread on your issue if you are still seeing it and the above doesn't shed any light on it. Thanks, Tom On Dec 17, 4:11 am, Erik erik.e.wil...@gmail.com wrote: Missed some more errors: Caused by: java.io.InvalidClassException: com.WikiHop.jdo.Pi; local class incompatible: stream classdesc serialVersionUID = -6007756724690804603, local class serialVersionUID = -1398789866 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: 1600) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java: 1513) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 1749) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) at com.google.appengine.api.memcache.MemcacheSerialization.deserialize(MemcacheSerialization.java: 163) at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 283) ... 43 more On Dec 17, 3:56 am, Erik erik.e.wil...@gmail.com wrote: Not sure if it is related, but I was getting some interesting memcache errors that I had to work around: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.WikiHop.client.SearchPath.find(java.lang.String,java.lang.String) throws java.lang.IllegalArgumentException' threw an unexpected exception: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java: 378) ... Caused by: com.google.appengine.api.memcache.InvalidValueException: IO exception parsing value of '3434143' at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java: 289) at com.google.appengine.api.memcache.jsr107cache.GCache.get(GCache.java: 166) On Dec 16, 2:53 pm, Tom Phillips tphill0...@gmail.com wrote: Certainly Ikai, Firstly, some of my logs (url and classes slightly modified to hide some app details) that show how only the same instance picks up the entry. I'm determining and logging the instance using a UUID that I assign to a static class variable. The key for the cache lookup is passed in as a request query parameter to the followup requests. Here are two runs of the code to follow. In each, the bottom log is the cache entry being added. The next two are subsequent requests that both look for the entry. The entry is only found when then instance matches, regardless of which follow-up request. This first run shows how the bottom instance is different from the one that services both followup requests. So they don't find the entry: 50.16.21.20 - - [16/Dec/2010:11:19:40 -0800] GET /processg?key=619001 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: LOOKING IN CACHE on Instance: b7c866f2-d74b-45df-9993-1d2c4705d3d1 W 12-16 11:19AM 40.373 com.mycode.CallProcessGatherServlet doGet: Message NOT found in cache for 619001 - building 50.16.21.20 - - [16/Dec/2010:11:19:35 -0800] POST /startreminder? key=619001pname=Optimal+Physio+Devatime=Friday+December+17%2C +2%3A18+PMrlang=enrvoice=woman W 12-16 11:19AM 33.173 com.mycode.CallMLServlet doGet: LOOKING IN CACHE on Instance:
[google-appengine] How to setup Goddady CNAMES to have usernames on subdomains for a djangoapp on Google App Engine
I have a django app that is hosted in google app engine. I would like to have usernames in subdomains to show a personal page for a user in my app. Like this: *username*.*example.com* I know how to get the username from the url and work on it on my app but i don't know how to setup the cnames on godaddy for it. Right now the cnames are: *Host* - *Points to* www - ghs.google.com #it redirects to the app on appengine mail - ghs.google.com #it redirects to the mail service for my domain I want that every subdomain goes to CNAME *www* and keep the CNAME for mail. I have tried: *Host* - *Points to* www - ghs.google.com mail - ghs.google.com * - www but godaddy does not allow me to save HOST with * it tells me that it is not a valid host. Is there someway to do it? anyone has done something similar? Thanks, Jose Maria -- Jose Maria Zambrana Web Developer/Designer -- 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 setup Goddady CNAMES to have usernames on subdomains for a djangoapp on Google App Engine
You have to change nameservers to another provider, which allows wildcard CNAMEs, you can define non-godaddy nameserver in the godady control panel. DnsMadeEasy and dynDNS (if I remember properly) have been mentioned in a very similar thread I started some days ago. -- 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: Channel API CPU usage
Right now my only application using the Channel API only use it for a few minutes at a time. Also, I recall from the Google presentation on Channel API one of the selling points was that it wouldn't use our application quota for the constant polling. Charging for two hours up-front rather defeats that. We may as well use a custom long-polling solution or one of the 3rd- party push APIs (pusher, beacon, etc) since it would be cheaper, and the 3rd-party APIs have more features (like shared channels). My point is, if you want to see any sort of wide-spread adoption of this API, you're going to need to solve this somehow. On Dec 11, 7:37 pm, Moishe mois...@google.com wrote: Assuming that a channel setup costs 2.77 seconds, having just 10,000 active users setup 4 channels per day would cost $92.30 per month. That's not counting any CPU costs for actually sending messages. At that rate, I can't really use the channel API as much as I'd like and I have to look at alternatives such as Beacon now that I know how cool this technology is. Better docs on Channel API quota use are coming, but the reason the CPU charge is so high is that the CreateChannel charges up-front for 2 hours of connect time by clients. It is true that if you have the same user connecting repeatedly for a short time but spread out over periods of time longer than two hours (obviously degenerate case would be connecting for a couple of minutes every two hours and one second), the charge will be high. One thing I'm looking at is the ability to create a token that expires after an application-specified period, if your application's usage patterns warrant it. Note that you can store the token for re-use in eg. a cookie so you don't need to regenerate it more frequently than every two hours. Sending a message doesn't charge any CPU time at all (since the connection's already established), just outbound bandwidth. -- 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 ask to add a new MIME types for file attachments to an email message?
I want to create a service, that send an email with .mobi fle format attachment. I can't do it with the current allowed MIME types and file format extensions. How can i ask (or where can i post a suggestion) to add MIME Type: application/x-mobipocket-ebook and file extension .mobi or .prc Thanks, Dmitriy. -- 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] Mail reply headers remove
Hi, I'm building an application that will receive some mails and reply to them. I've been trying to set the headers used by mail applications to diplay threaded conversations but it looks like App Engine (Java, 1.4.0) is removing them. I'm trying to set In-Reply-To and References headers but none of them are received for the response. I've found this related issue: http://code.google.com/p/googleappengine/issues/detail?id=2802 But I'm already using MimeMessage's msg.reply(false) and setting the headers. Has anyone solved this problem to get replies in the same thread conversation? Any plan to allow these headers? Any list of allowed/forbidden headers? Thanks! Jorge -- 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] Deployment failures during clonefiles
Beginning about 5:30PT, we've been unable to deploy to Appengine for Java. We get a 500 error on clonefiles in most cases. We did make a change to add some 0.5MB media files to the deployment. Is there a problem with deployment? -- 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] Documentation on AppEngine's caching reverse proxy
Given the numerous issues (in the issue tracker, GAE mailing-lists and in speculative blog posts in the wild) surrounding cache headers and the GAE reverse proxy, is there definitive documentation on how it handles headers and best-practice interactions? It is surprising that such an important part of the request-response cycles is rather opaque. saidimu -- 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 convert db.Model to search.Searchable model
I have a big datastore in my page. When i have created it, i din't know the Searchable Model. All of my rows constructed on db.Model. Now, i want make searchable my datastore but i can't. How i convert from db.Model to search.Searchable model -- 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] Billing Disabled
Hi, I'm new gae developer, now I'm developing adlinkshopsafe.appspot.com I have a problem, about the billing setting, I had disable the billing, my status now is must wait 7 day, now I want to re-enable the billing, is there any way to re-enable imediately? -- 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: C2DM Rate Limiting
If you post your message to the C2DM list, the moderator can increase your limit. (http://groups.google.com/group/android-c2dm) Or you can refer to the original email from that granted your C2DM account sender id. That email makes reference to the soft, informal email process of increasing your C2DM quota. This took under one business day (pacific working hours) for us. Oli On Dec 17, 12:56 pm, Millisecond millisec...@gmail.com wrote: Hey all, We're running into an odd issue, and not sure if it's us, the AppEngine group, or the C2DM Android group at Google so I thought I'd post here to start and see where we can get. We have implemented a C2DM server on AppEngine servicing several hundred of our clients' Android applications, sending a lot of messages. It was working quite well for a while, but now we're seeing a lot of Error=QuotaExceeded returns from the C2DM server. Seems like one of three causes: -Our back-off algorithms aren't correct. Hard to tell though as the google docs are very light on what's an acceptable rate:http://code.google.com/android/c2dm/index.html I have turned off all retry logic, only sending original messages and it still triggers, so guessing it's not a back-off problem. -We're just plain hitting a C2DM limit, but would be great to be able to talk to someone at Google-Android about raising it. -Google is limited based on source IP and lumping all GAE requests together in a DDoS prevention bucket. Which would mean that over time our ability to send messages from GAE would only become worse. At this point I'm just looking to eliminate possibilities and the third one there seems to be the easiest to rule out. Does anyone on the AppEngine team have insight into whether that might be what's happening? Thanks, -Casey -- 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: Documentation on AppEngine's caching reverse proxy
App Engine's edge cache is not guaranteed. It's best effort caching, caching that any ISP downstream could also have implemented. What you'd do is set the cache-control headers to public and set a max-age, and App Engine's edge caches may cache your content. There's also no way to flush your content, but the cache is key off the URL, so use a cache buster. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote: This would be nice to have. -- 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: Storing properties dict as db.Model field
http://stackoverflow.com/questions/3203543/how-to-make-persistent-a-python-dictionary-on-google-appengine/3203672#3203672 I'm still pretty convinced my answer was the best - especially since it borrows nick johnson's code :) Cheers, Colin -- 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] Static files cached even after update with changes
I just pushed an update to my app in which a bunch of the static files changed and were important for the app behavior. What I'm seeing is that any requests for those static files return an old version of the file! I did some digging around and it seems that other people are seeing this and GAE caches things very aggressively. Two things: - Unless I'm missing something GAE shouldn't do that. When I submit changes with appcfg.py update, it knows exactly what has changed, so there's no reason it can't invalidate the caches for the static files that have changed. - Is there a way I can force it from here to start serving the latest version of a static file? I can't change the app because it's an iPhone app. Is it true that in the future, the best way to avoid this might be something like adding ?timestamp=[hour] to the URL request? That way files won't be cached for more than an hour? Is there a better method? Thanks. --Noel -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] How to convert db.Model to search.Searchable model
You'll probably need to iterate over the old models, load them, convert them to a searchable model, then put the new searchable model. You might look into the mapper to help you out with this task: http://code.google.com/p/appengine-mapreduce/ Robert On Fri, Dec 17, 2010 at 03:16, suatatan suata...@gmail.com wrote: I have a big datastore in my page. When i have created it, i din't know the Searchable Model. All of my rows constructed on db.Model. Now, i want make searchable my datastore but i can't. How i convert from db.Model to search.Searchable model -- 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] Static files cached even after update with changes
Hi Noel, People often want static content cached -- it reduces the load on your app. Also, there might be other intermediate caches to worry about too, so it may not be only Google caching your content. Yes, you should use some type of cache busting strategy. It depends on how your iPhone app is implemented, but perhaps you can use a version number on your assets so they can be changed between versions? Robert On Fri, Dec 17, 2010 at 12:57, Noel llo...@gmail.com wrote: I just pushed an update to my app in which a bunch of the static files changed and were important for the app behavior. What I'm seeing is that any requests for those static files return an old version of the file! I did some digging around and it seems that other people are seeing this and GAE caches things very aggressively. Two things: - Unless I'm missing something GAE shouldn't do that. When I submit changes with appcfg.py update, it knows exactly what has changed, so there's no reason it can't invalidate the caches for the static files that have changed. - Is there a way I can force it from here to start serving the latest version of a static file? I can't change the app because it's an iPhone app. Is it true that in the future, the best way to avoid this might be something like adding ?timestamp=[hour] to the URL request? That way files won't be cached for more than an hour? Is there a better method? Thanks. --Noel -- 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: how can i write Arabic in app engine
You're just encoding the filename in utf-8 (which is identical to its ASCII encoding as it doesn't comain non-ASCII characters) and then passing that encoded filename to django's template engine.) On Dec 16, 5:11 pm, fatimah mujallid f.mujal...@gmail.com wrote: Ok this code works great: self.response.out.write(u' السلام عليكم'.encode('utf-8')) but when i use an html page instead of a string just like this: self.response.out.write(template.render(u'test.html'.encode('utf-8'))) it displays arabic characters rabish in the html page i tried to write this: meta http-equiv=Content-Type content=text/html; charset=utf-8 and tried with out it both displays arabic characters rabish 2010/12/17 fatimah mujallid f.mujal...@gmail.com Ok this code works great: self.response.out.write(u'السلام عليكم'.encode('utf-8')) but when i use an html page instead of a string just like this: self.response.out.write(template.render(u'test.html'.encode('utf-8'))) it displays arabic characters rabish in the html page i tried to write this: meta http-equiv=Content-Type content=text/html; charset=utf-8 and tried with out it arabic characters rabish both displays 2010/12/16 风笑雪 kea...@gmail.com I suggest you always use UTF-8, not windows-1256. However, if you insist on using windows-1256, you should encode your unicode output to str: self.response.out.write(u'some unicode string'.*encode*('windows-1256')) or: self.response.out.write('some windows-1256 string') # don't decode it -- keakon My blog(Chinese):www.keakon.net Blog source code:https://bitbucket.org/keakon/doodle/ -- 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] Re: This request used a high amount of CPU and may soon exceed its quota - 2010/2011
If I remember right, think the coloring scheme is left over from when there were other quotas in place. On Fri, Dec 17, 2010 at 03:09, Matija matija.jerko...@gmail.com wrote: Are you sure about this ? I have noticed that I did indeed get new additional instance, but are their automatic scaling algorithm so simple that uses only average latency time. Maybe this is truth for first 10 instances and then they add additional checking. Although they nowhere display average cpu_ms or api_cpu_ms per instance we can't be sure that they don't collect it and use it. Few bytes per instance and few mathematical operation. I would collect it. With low latency they are able to easily scale applications on application servers, but with high cpu/api cpu ms they are not able to easily scale datastore or any other api service. So we can't say that 160 ms request with 17000 cpu ms is nice scalable request, but is 160 ms request with 1700 cpu ms ok or not. So is there some good max cpu/api cpu policy that they didn't explained ? Or they did with this yellow and red coloring schema around 700/1000 ms cpu usage. -- 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: Documentation on AppEngine's caching reverse proxy
The biggest undocumented features of the edge cache we've had to deal with is that it does not honor the Vary header, and that it is turned on when you enable billing for an app. I agree, however, that regardless of what details are posted in this group, the edge cache behavior should be documented in the official docs. -Mike -=- On Dec 17, 9:31 am, Ikai Lan (Google) ikai.l+gro...@google.com wrote: App Engine's edge cache is not guaranteed. It's best effort caching, caching that any ISP downstream could also have implemented. What you'd do is set the cache-control headers to public and set a max-age, and App Engine's edge caches may cache your content. There's also no way to flush your content, but the cache is key off the URL, so use a cache buster. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger:http://googleappengine.blogspot.com Reddit:http://www.reddit.com/r/appengine Twitter:http://twitter.com/app_engine On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote: This would be nice to have. -- 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: Anyone see a bounce forwarded from the mail service?
Digging thru the tickets, My guess is nobody has seen an email bounce since mid 2009. If you want to be a good responsible email citizen please star http://code.google.com/p/googleappengine/issues/detail?id=1800 so that you can handle address typos. On Thu, Dec 16, 2010 at 9:09 PM, A. Stevko andy.ste...@gmail.com wrote: Does anyone get bounced email delivered to the From: address as per the spec the error message is sent by email to the address of the sender for the message. Ever since my public launch, I've been sending out lots (many thousands) of emails but have never seen a bounce from the mail service. The app is set up to BCC certain messages to our supp...@ninuku.com google apps account so that we can track the site's activity. The email below definitely has a bad TO address. Here are the headers: Delivered-To: supp...@ninuku.com Received: by 10.216.244.140 with SMTP id m12cs59454wer; Wed, 15 Dec 2010 15:21:03 -0800 (PST) Received: by 10.150.97.1 with SMTP id u1mr10964756ybb.74.1292455262592; Wed, 15 Dec 2010 15:21:02 -0800 (PST) Return-Path: 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com Received: from mail-gw0-f71.google.com (mail-gw0-f71.google.com[74.125.83.71]) by mx.google.com with ESMTP id h21si3751294yha.107.2010.12.15.15.21.02; Wed, 15 Dec 2010 15:21:02 -0800 (PST) Received-SPF: pass (google.com: domain of 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates 74.125.83.71 as permitted sender) client-ip=74.125.83.71; Authentication-Results: mx.google.com; spf=pass (google.com: domain of 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.comdesignates 74.125.83.71 as permitted sender) smtp.mail= 3xu0jtrajbweojovlv-bsdijwjtuhnbjm.dpntvqqpsuojovlv@m3kw2wvrgufz5godrsrytgd7.apphosting.bounces.google.com Received: by gwj18 with SMTP id 18so1928582gwj.10 for supp...@ninuku.com; Wed, 15 Dec 2010 15:21:02 -0800 (PST) MIME-Version: 1.0 Received: by 10.42.164.9 with SMTP id e9mr406464icy.63.1292455261780; Wed, 15 Dec 2010 15:21:01 -0800 (PST) Reply-To: Ninuku Support supp...@ninuku.com X-Google-Appengine-App-Id: ninuku-archivist Message-ID: 90e6ba6e8ab0c4398004977b3...@google.com Date: Wed, 15 Dec 2010 23:21:01 + Subject: Your Ninuku Archivist Chapter is Ready to view. From: Ninuku Archivist supp...@ninuku.com To: southernt...@aol.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes I have another test account on our system with the email address j...@plumber.test Again, supp...@ninuku.com has never seen a bounce report for any email sent to this obviously dummy address. -- 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] apps mail lists are bounceing from my apps mail
I am sending to my apps mail group lists account from my apps mail and it bounces?? this has just started in the past month after years of no problems -- 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: Newbie Q - Public IP address_DNS Server?
I agree with Barry - setting up a proxy forwarder is the simplest work-around when compared to porting a self managed app instance. Folks with apps serving China and Turkey are doing exactly that. There are plenty of cheap/free apache mod_rewrite hosts that can be configured to give you a static ip and check the sender's ip so they are only as vulnerable as the destination service. On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot julien.lance...@gmail.comwrote: Thanks, it's done! Hope Google could do something sooner... On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.comwrote: You might want to star the following issue http://code.google.com/p/googleappengine/issues/detail?id=1269 -- 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.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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011
Yes, I remember this. But after removal of 'high cpu quota' there was no (spoken) penalty for over 1000 ms request latency (beside bad user UI experience) and now it is inability to get new instances. If you look at Quotas and Limitshttp://code.google.com/appengine/docs/java/runtime.html#Quotas_and_Limits there is statement: 'Applications that are heavily CPU-bound may also incur some additional latency in order to efficiently share resources with other applications on the same servers.' So what are heavily CPU-bound applications. Currently only information that we have are yellow and red warnings. I hope that somebody from GAE team will give us more 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] Re: This request used a high amount of CPU and may soon exceed its quota - 2010/2011
I had a thread saved where Nick or someone else on the team confirmed the 1000 ms boundary, however it seems my saved thread collection has grown ridiculously big and I can't find it. I did find this thread discussing it however: http://groups.google.com/group/google-appengine/browse_thread/thread/a5d1aeb359ff03ab -- 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: max_backoff_seconds - working?
Nick, Your edge case definitely confused at least 2 of us. I imagine that people will often be testing their queues on a low volume queue initially. You might want to put something in the documentation, or at least the code. j On Dec 16, 4:59 pm, Nicholas Verne nve...@google.com wrote: Vlad, Your case is a bit of an edge case for us. At the time your task is dispatched, do you have any other tasks still in the queue scheduled to execute within the next twenty seconds? If not, your queue is considered empty and will next be checked for tasks to dispatch in twenty seconds time. If, during this interval, your task that was running now fails, the task's retry won't be able to run until after this twenty seconds has elapsed. If there were other tasks in the queue scheduled to execute during the twenty seconds after your task's eta, you might find your task meeting its 7 second retry backoff more precisely. Nick Verne On Thu, Dec 16, 2010 at 2:58 PM, vlad vlad.troyan...@gmail.com wrote: Hi Nick, Task schedule delays (best effort) are expected but this is not the case. Take a look at the log excerpt below which shows a task with 6 reties. Retries are perfectly timed on flat 20sec back off schedule. In other words I have never seen task reties follow what I put in my queue.yaml. Instead they *always* do 20 sec backoff. Another fact that might help is this has not changed at all with SDK 1.4.0 release. This picture was exactly the same before the release. My queue.yaml queue: - name: default rate: 20/s bucket_size: 100 retry_parameters: task_age_limit: 120s min_backoff_seconds: 1 max_backoff_seconds: 7 12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb AppEngine-Google; (+http://code.google.com/appengine) See details 0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1 500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google; (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63 api_cpu_ms=17 cpm_usd=0.001856 queue_name=default task_name=9640193529655285671 I 12-14 11:56PM 14.867 X-Appengine-Taskretrycount:6, X-Appengine-Queuename:default, X-Appengine-Taskname:9640193529655285671, X-Appengine-Current-Namespace: I 12-14 11:56PM 14.868 running task: {'player': 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'who': 'dealer', 'type': 'action', 'hand-snapshot': u'flop-50 I 12-14 11:56PM 14.921 Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing, table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw) I 12-14 11:56PM 14.921 pre-action-dealer (force-fold) 12-14 11:56PM 14.864 /_ah/queue/deferred 500 71ms 63cpu_ms 16api_cpu_ms 0kb AppEngine-Google; (+http://code.google.com/appengine) See details 0.1.0.2 - - [14/Dec/2010:23:56:14 -0800] POST /_ah/queue/deferred HTTP/1.1 500 124 http://ace-poker.appspot.com/_ah/queue/deferred; AppEngine-Google; (+http://code.google.com/appengine) ace-poker.appspot.com ms=71 cpu_ms=63 api_cpu_ms=17 cpm_usd=0.001856 queue_name=default task_name=9640193529655285671 I 12-14 11:56PM 14.867 X-Appengine-Taskretrycount:6, X-Appengine-Queuename:default, X-Appengine-Taskname:9640193529655285671, X-Appengine-Current-Namespace: I 12-14 11:56PM 14.868 running task: {'player': 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'who': 'dealer', 'type': 'action', 'hand-snapshot': u'flop-50-chj8szUM', 'hand': 'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw'} I 12-14 11:56PM 14.921 Hand=aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw, state=playing, table=Medes (aglhY2UtcG9rZXJyDQsSBVRhYmxlGPODOAw) I 12-14 11:56PM 14.921 pre-action-dealer (force-fold) I 12-14 11:56PM 14.921 pre-action: (force-fold) pot=50 round=flop board=[u'Td', u'Ac', u'Ad'] current_bet=0 next_to_act=0 players: aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM: bet=0 total=10 acted=False in-game=True aglhY2UtcG9rZXJyDgsSBlBsYXllchispDUM: bet=0 total=10 acted=False in-game=True I 12-14 11:56PM 14.928 notify-multi: ['hjygzgM-33', 'hixwjgM-33', 'hiZyjgM-33', 'hiLhTUM-33', 'hispDUM-33', 'hj8szUM-33', 'bserver-33'] I 12-14 11:56PM 14.928 {'pot': 50L, 'who': 'dealer', 'hand': 'aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw', 'player': 'aglhY2UtcG9rZXJyDgsSBlBsYXllchj8szUM', 'action': 'force-fold', 'type': 'action', 'stack': 1685L, 'hand-snapshot': u'flop-50-chj8szUM'} D 12-14 11:56PM 14.928 hand action: {'pot': 50L, 'who': 'dealer', 'hand': datastore_types.Key.from_path(u'Table', 918003L, u'Hand', 330015L, _app=u'ace-poker'), 'player': datastore_types.Key.from_path(u'Player', 875004L, _app=u'ace-poker'), 'action': 'force-fold', 'type': 'action', 'stack': 1685L, 'hand-snapshot': 'flop-50-chj8szUM'} I 12-14 11:56PM 14.928 hand = aglhY2UtcG9rZXJyGQsSBVRhYmxlGPODOAwLEgRIYW5kGJ-SFAw,
Re: [google-appengine] Re: Newbie Q - Public IP address_DNS Server?
If you route every request through a proxy, you are giving up all the scalability benefits? On Fri, Dec 17, 2010 at 12:17 PM, A. Stevko andy.ste...@gmail.com wrote: I agree with Barry - setting up a proxy forwarder is the simplest work-around when compared to porting a self managed app instance. Folks with apps serving China and Turkey are doing exactly that. There are plenty of cheap/free apache mod_rewrite hosts that can be configured to give you a static ip and check the sender's ip so they are only as vulnerable as the destination service. On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot julien.lance...@gmail.com wrote: Thanks, it's done! Hope Google could do something sooner... On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.comwrote: You might want to star the following issue http://code.google.com/p/googleappengine/issues/detail?id=1269 -- 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.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.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: how can i write Arabic in app engine
Finally it works perfect Thank you all for replying and you support 2010/12/17 Geoffrey Spear geoffsp...@gmail.com You're just encoding the filename in utf-8 (which is identical to its ASCII encoding as it doesn't comain non-ASCII characters) and then passing that encoded filename to django's template engine.) On Dec 16, 5:11 pm, fatimah mujallid f.mujal...@gmail.com wrote: Ok this code works great: self.response.out.write(u' السلام عليكم'.encode('utf-8')) but when i use an html page instead of a string just like this: self.response.out.write(template.render(u'test.html'.encode('utf-8'))) it displays arabic characters rabish in the html page i tried to write this: meta http-equiv=Content-Type content=text/html; charset=utf-8 and tried with out it both displays arabic characters rabish 2010/12/17 fatimah mujallid f.mujal...@gmail.com Ok this code works great: self.response.out.write(u'السلام عليكم'.encode('utf-8')) but when i use an html page instead of a string just like this: self.response.out.write(template.render(u'test.html'.encode('utf-8'))) it displays arabic characters rabish in the html page i tried to write this: meta http-equiv=Content-Type content=text/html; charset=utf-8 and tried with out it arabic characters rabish both displays 2010/12/16 风笑雪 kea...@gmail.com I suggest you always use UTF-8, not windows-1256. However, if you insist on using windows-1256, you should encode your unicode output to str: self.response.out.write(u'some unicode string'.*encode*('windows-1256')) or: self.response.out.write('some windows-1256 string') # don't decode it -- keakon My blog(Chinese):www.keakon.net Blog source code:https://bitbucket.org/keakon/doodle/ -- 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.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.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: This request used a high amount of CPU and may soon exceed its quota - 2010/2011
Somebody (Ikai L if I remember well) even mentioned sub-400ms as optimal number. I agree we need more light on this. For the complete (almost) story of those numbers you can take a look at my post here: http://gaengine.blogspot.com/2010/09/app-engine-scalability-issues.html Happy coding :-) Nick On Dec 17, 10:43 pm, Darien Caldwell darien.caldw...@gmail.com wrote: I had a thread saved where Nick or someone else on the team confirmed the 1000 ms boundary, however it seems my saved thread collection has grown ridiculously big and I can't find it. I did find this thread discussing it however: http://groups.google.com/group/google-appengine/browse_thread/thread/... -- 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: Newbie Q - Public IP address_DNS Server?
Unless its an API from one of the 'big players' then its unlikly that the proxy would become a performance bottleneck. ie the proxy will likely out perform the API itself. Or do you mean a problem as a SPOF (single point of failure) - if worried about that then could get two proxies :) And hope the API provider allows you to specify multiple IPs. (its unlikly you would get a redunant system - including from Google - using a single outgoing IP anyway) On 17 December 2010 22:18, Baz b...@thinkloop.com wrote: If you route every request through a proxy, you are giving up all the scalability benefits? On Fri, Dec 17, 2010 at 12:17 PM, A. Stevko andy.ste...@gmail.com wrote: I agree with Barry - setting up a proxy forwarder is the simplest work-around when compared to porting a self managed app instance. Folks with apps serving China and Turkey are doing exactly that. There are plenty of cheap/free apache mod_rewrite hosts that can be configured to give you a static ip and check the sender's ip so they are only as vulnerable as the destination service. On Fri, Dec 17, 2010 at 5:01 AM, Julien Lancelot julien.lance...@gmail.com wrote: Thanks, it's done! Hope Google could do something sooner... On Fri, Dec 17, 2010 at 13:43, Erwin Streur erwin.str...@gmail.com wrote: You might want to star the following issue http://code.google.com/p/googleappengine/issues/detail?id=1269 -- 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. -- 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. -- 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] Problem deleting an application
I have an application that I no longer want to pay for. When I go to the disabling administration page it tells me that I can't request permanent deletion because my billing status is enabled. When I try to disable my billing, the status changes to changing daily budget for about 10 minutes and then it goes directly back to enabled. In short there is no way for me to delete this application. Anyone have any ideas? -- 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: Newbie Q - Public IP address_DNS Server?
the proxy will likely out perform the API itself. This addresses my concern, and I agree, thank you :) On Fri, Dec 17, 2010 at 3:47 PM, Barry Hunter barrybhun...@gmail.comwrote: the proxy will likely out perform the API itself. -- 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: Documentation on AppEngine's caching reverse proxy
Actually, the cache will be refresh after re-deploy. But I suggest not to set too long max-age for dynamic pages. Also be noticed that the edge cache is only available for Google Apps domains, no affect on appspot.com. -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ On Sat, Dec 18, 2010 at 1:31 AM, Ikai Lan (Google) ikai.l+gro...@google.comikai.l%2bgro...@google.com wrote: App Engine's edge cache is not guaranteed. It's best effort caching, caching that any ISP downstream could also have implemented. What you'd do is set the cache-control headers to public and set a max-age, and App Engine's edge caches may cache your content. There's also no way to flush your content, but the cache is key off the URL, so use a cache buster. -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Fri, Dec 17, 2010 at 9:28 AM, Matt H matt2...@gmail.com wrote: This would be nice to have. -- 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.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] Why not SELECT single_property FROM model?
As I know, there are 4 bigtables used for store indexes. So when I try to fetch a single property or a tuple of (single property, key), datastore can only scan the index table, no need to fetch the corresponding entities. That would also be useful when I fetch several properties via composite index or even merge-join. Is my thought right? -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ -- 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 not SELECT single_property FROM model?
That is something I have wondered about too Keakon. Actually, I thought there was already a feature request for it but don't see it now. It would be really cool to be able to only get the data from the index returned, and not the entire entity. Anyway, if you make an feature request (issue) for this be sure post the link so we can star it. Robert On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote: As I know, there are 4 bigtables used for store indexes. So when I try to fetch a single property or a tuple of (single property, key), datastore can only scan the index table, no need to fetch the corresponding entities. That would also be useful when I fetch several properties via composite index or even merge-join. Is my thought right? -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ -- 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 not SELECT single_property FROM model?
I think the problem is at the underlaying appengine.db implementation (which acts as an ORM) that property belongs to an entity, you will have to have away to know when that model is not fully loaded. Common ORM/Data Gateways problems. (PS: but yeah, performance wise it would be great) On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote: That is something I have wondered about too Keakon. Actually, I thought there was already a feature request for it but don't see it now. It would be really cool to be able to only get the data from the index returned, and not the entire entity. Anyway, if you make an feature request (issue) for this be sure post the link so we can star it. Robert On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote: As I know, there are 4 bigtables used for store indexes. So when I try to fetch a single property or a tuple of (single property, key), datastore can only scan the index table, no need to fetch the corresponding entities. That would also be useful when I fetch several properties via composite index or even merge-join. Is my thought right? -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ -- 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. -- http://about.me/david.mora -- 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 not SELECT single_property FROM model?
It should be workable using the (or something like the) low-level interface -- just return the result as a dict. On Fri, Dec 17, 2010 at 22:41, David Mora dla.m...@gmail.com wrote: I think the problem is at the underlaying appengine.db implementation (which acts as an ORM) that property belongs to an entity, you will have to have away to know when that model is not fully loaded. Common ORM/Data Gateways problems. (PS: but yeah, performance wise it would be great) On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote: That is something I have wondered about too Keakon. Actually, I thought there was already a feature request for it but don't see it now. It would be really cool to be able to only get the data from the index returned, and not the entire entity. Anyway, if you make an feature request (issue) for this be sure post the link so we can star it. Robert On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote: As I know, there are 4 bigtables used for store indexes. So when I try to fetch a single property or a tuple of (single property, key), datastore can only scan the index table, no need to fetch the corresponding entities. That would also be useful when I fetch several properties via composite index or even merge-join. Is my thought right? -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ -- 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. -- http://about.me/david.mora -- 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 not SELECT single_property FROM model?
agreed and how would you distribute this dict in your application? using it by index key is just a bad practice imho i guess the other option is to have a simplified version of your model, e.g: UserModel (entire model loaded using LazyLoading - pretty much what appengine.db does) IndexedUserModel (just with properties returned by the index) extending http://code.google.com/appengine/docs/python/datastore/keyclass.html ? On 17 December 2010 21:48, Robert Kluin robert.kl...@gmail.com wrote: It should be workable using the (or something like the) low-level interface -- just return the result as a dict. On Fri, Dec 17, 2010 at 22:41, David Mora dla.m...@gmail.com wrote: I think the problem is at the underlaying appengine.db implementation (which acts as an ORM) that property belongs to an entity, you will have to have away to know when that model is not fully loaded. Common ORM/Data Gateways problems. (PS: but yeah, performance wise it would be great) On 17 December 2010 21:22, Robert Kluin robert.kl...@gmail.com wrote: That is something I have wondered about too Keakon. Actually, I thought there was already a feature request for it but don't see it now. It would be really cool to be able to only get the data from the index returned, and not the entire entity. Anyway, if you make an feature request (issue) for this be sure post the link so we can star it. Robert On Fri, Dec 17, 2010 at 22:15, 风笑雪 kea...@gmail.com wrote: As I know, there are 4 bigtables used for store indexes. So when I try to fetch a single property or a tuple of (single property, key), datastore can only scan the index table, no need to fetch the corresponding entities. That would also be useful when I fetch several properties via composite index or even merge-join. Is my thought right? -- keakon My blog(Chinese): www.keakon.net Blog source code: https://bitbucket.org/keakon/doodle/ -- 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. -- http://about.me/david.mora -- 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. -- http://about.me/david.mora -- 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 not SELECT single_property FROM model?
One major problem I see will be with list properties, I assume each value in the list when indexed will have its own position in the index along with the Key, So if what you describe was implemented you find you could only get a single value from the index that matched. In fact in all cases you could probably only get properties for matches from the index(es) unless you retrieve the whole entity. A lazily loaded entity, ie match the entity, get the key, create a lazy entity, will still have to fetch the full entity to get any property other than those used to find the entity in the indexes. I think ;-) So I am not sure there is a lot to be gained. T -- 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 not SELECT single_property FROM model?
I figured it might be of value on things like range scans. Think about uses like this: SELECT key, first_name FROM People WHERE first_name = 'alb' AND first_name 'ablz'; You could have the entity id _and_ the name from the index. Aside from this type of use case, you are probably right -- not much value for equality-only queries. I'm not sure I see an issue with list properties, wouldn't the expectation be to only return the matching element? On Fri, Dec 17, 2010 at 23:43, Tim Hoffman zutes...@gmail.com wrote: One major problem I see will be with list properties, I assume each value in the list when indexed will have its own position in the index along with the Key, So if what you describe was implemented you find you could only get a single value from the index that matched. In fact in all cases you could probably only get properties for matches from the index(es) unless you retrieve the whole entity. A lazily loaded entity, ie match the entity, get the key, create a lazy entity, will still have to fetch the full entity to get any property other than those used to find the entity in the indexes. I think ;-) So I am not sure there is a lot to be gained. T -- 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] App Engine cannot vacuum indexes - stuck in building state for weeks - need google help
Hi, My app is romanceapp, and I hope that someone from google might be able to have a look at the indexes to see why I cannot remove them. They have been stuck in a Building state for more than a week, which I believe was caused by the fact that I uploaded incorrect indexes and then tried to vacuum them before they completed building. As a result I have used all 200 indexes and have no room to make modifications to my data structures. I am hoping that someone from Google might be able to clear out these stuck indexes from my application: romanceapp. Kind Regards Alexander -- 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] my app has been disabled
Hi. I've been running my URL shortener, urlborg.com, on appengine since 2008. Suddenly, yesterday, the app was marked as DISABLED by google, and no one can access it. How do I get in contact with someone that can explain what's going on? I feel really bad for the users that relied on my service. I really, really like AppEngine, I mean, if you are offering a hosting environment, and people are paying for it, you can't just switch off an account, without a warning, or a notice or something... Panayotis -- 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 cannot vacuum indexes - stuck in building state for weeks - need google help
Sorry, I meant to say application: LingoLocus (romanceapp is a different one of my apps) regards On Dec 18, 12:20 am, Alexander M alexander.marqua...@gmail.com wrote: Hi, My app is romanceapp, and I hope that someone from google might be able to have a look at the indexes to see why I cannot remove them. They have been stuck in a Building state for more than a week, which I believe was caused by the fact that I uploaded incorrect indexes and then tried to vacuum them before they completed building. As a result I have used all 200 indexes and have no room to make modifications to my data structures. I am hoping that someone from Google might be able to clear out these stuck indexes from my application: romanceapp. Kind Regards Alexander -- 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] my app has been disabled
It may have been disabled because it competes with Google's URL shortening offering (http://goo.gl/). Nick On 18/12/2010, at 1:21 PM, vrypan vry...@gmail.com wrote: Hi. I've been running my URL shortener, urlborg.com, on appengine since 2008. Suddenly, yesterday, the app was marked as DISABLED by google, and no one can access it. How do I get in contact with someone that can explain what's going on? I feel really bad for the users that relied on my service. I really, really like AppEngine, I mean, if you are offering a hosting environment, and people are paying for it, you can't just switch off an account, without a warning, or a notice or something... Panayotis -- 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.