Re: [google-appengine] Datastore write costs
On Thursday, 27 December 2012 01:27:47 UTC+13, aschmid wrote: even if a property is not indexed is needs to be written to the datastore so it costs 1 write instead of 2 (one to the datastore and one to the index). Unindexed properties do not cost anything to write. They are included in the one write operation that writes the entity data. Basically, all properties are serialised and written as a single opaque unit. It costs no more to write 1000 unindexed properties as 1 - however the latency to read and write will be higher which will cost you in terms of instance hours. An indexed property costs 2 writes because each index (ASC, DESC) is a separate write. vlad UNEXISTING props do not add any write cost ;) What do you mean by UNEXISTING? Be careful here because null values will also cost 2 writes if they are indexed. Twig (prob also Objectify) can be configured store null values as indexed or not indexed (also or stored or not stored) while still storing non-null values. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SDxdWsxYrC4J. To post to this group, send email to google-appengine@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: Pull task leasing question
On Wednesday, 26 December 2012 19:26:35 UTC+13, Mahron wrote: Hi, I would like to know what happens if two simultaneous lease_tasks are called, is it possible that both get returned the same tasks ? or is there something to prevent that scenario ? The recommendation from Google about pull queues is Tasks should be idempotent, so even if a task lease expires and another client leases the task, performing the same task twice should not cause an error. With push queues (standard task queues) there is also no guarantee that a task will not be executed more than once so probably the same caveat is true when you manage the queue yourself. How likely is this? The push queue docs say: App Engine's Task Queue API is designed to only invoke a given task once; however, it is possible in exceptional circumstances that a task may execute multiple times (such as in the unlikely case of major system failure). Thus, your code must ensure that there are no harmful side-effects of repeated execution. However I have seen it happen more frequently than major system failures. I have a task chain that uses named tasks (can only be added once) and roughly 1 / 500,000 tasks gets repeated. If you truly need to ensure tasks execute only once you can give each a serial number (in a task chain increment the value for each new task) and at the start of your task do a transactional check and increment operation on the datastore. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/WqFUEfLAinoJ. To post to this group, send email to google-appengine@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: NoSuchFieldError - TypedValue.clinit(TypedValue.java:31) when Running GWT Appengine webapp
You probably have a different Spring jar in your WEB-INF/lib to the one on your project classpath On Saturday, 3 November 2012 12:38:23 UTC+7, xybrek wrote: I'm getting this exception when running my GWT-AppEngine application: java.lang.NoSuchFieldError: NULL at org.springframework.expression.TypedValue.clinit(TypedValue.java:31) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70) at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64) at org.springframework.expression.spel.support.StandardEvaluationContext.setRootObject(StandardEvaluationContext.java:85) at org.springframework.expression.spel.support.StandardEvaluationContext.init(StandardEvaluationContext.java:74) at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:124) at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1272) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:224) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:311) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106) at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:125) at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:125) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:353) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:153) at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at
[google-appengine] Bounding box spatial queries
The new Full Text Search API allows a find within X meters type search but I need a bounding box search. Are there plans to implement this? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/8NRFJlDHJ90J. To post to this group, send email to google-appengine@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: [appengine-java] GeoPt vs. two floats
You can actually store a coordinate accurate to about 1 meter in a single long value (32 bits each axis). This can be an important saving if you are indexing a lot of locations. Think of the long value as pointing to a block of earth at any degree of accuracy you want. You can then query for all entities that are in the same 1KM block or 10KM block using a normal query which you cannot do if you store two floats. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/U3oKICdkgBQJ. To post to this group, send email to google-appengine-java@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: Loading requests timeout with DeadlineExceededException while reading classes
Hi Googlers, I was wondering if someone could answer the 3 questions below regarding slow resource file loading. I am getting a bit tired of jarring up all classes and resource files (and removing WEB-INF/classes) every time I want to update my app with GEP. On Wednesday, 31 August 2011 20:15:03 UTC+7, John Patterson wrote: Why is the time for file system access so erratic? As this is a major performance/stability variable then perhaps it should be covered in the system status pages. Is this file system access problem somehow linked to the recent memcache issues? Will this problem be addressed? Is it even considered a bug? Or is the advice from Googlers to always put local resources (incl classes) into a jar now and in the future? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/sdyS_fTxgO4J. To post to this group, send email to google-appengine-java@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: Loading requests timeout with DeadlineExceededException while reading classes
I have started getting deadlock exceptions thrown from code that uses Guavas ConcurrentHashMap http://code.google.com/p/googleappengine/issues/detail?id=5384 Aside from this problem, loading requests frequently seem to block on something (resource access?). Normally they complete in 5-8 seconds but sometimes (~25%) they take 20 - 60 seconds or just time-out (DEEx). I was not getting either of these problems with thread-safe=false but latency was higher so I don't want to switch back to that mode. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/GVNEEEAazngJ. To post to this group, send email to google-appengine-java@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: min. charge under new pricing
You are right: 9 bucks is the minimum *if *you want to be able to automatically scale beyond the free limits. Your app is either free to run (under 50,000 datastore ops a day etc) or at least 9 dollars a month. Nothing in-between. Its the fear of showing a quota error page to users that will force many small sites to pay this scaling fee. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/DJ5D68t_XzUJ. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: The JavaScript file is not found to the JSF2 application that has been deployed
Do you have caching set up for static files in your appengine-web.xml? This can mean that when you deploy a new version the old scripts are still served for a while. You can verify what scripts are available on the server by requesting them directly in your browser. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/hKcDVj5oMsAJ. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[google-appengine] Re: Google App Engine Leaving Preview
You must increase it past your current authorized weekly limit so that you are taken to Google Checkout. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/29VwYNpxZJkJ. To post to this group, send email to google-appengine@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: GAE development team rebelling against GAE
You will need to post questions about specific problems in order to get helpful answers. Do you have Javascript files that are cachable and out of date? Do you have Google Maps using a development server key? That sort of thing can stop other scripts from executing. At the end of the day your app serves up HTML, JavaScript and CSS... it makes no difference to the browser if that is coming from GAE or a linux rack. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Jf9jm9YFcAsJ. To post to this group, send email to google-appengine@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: Even the HR Datastore is (slightly) having performance issue now.
On Friday, 2 September 2011 23:10:30 UTC+7, Robert Kluin wrote: As for the SLA, see the exclusions section. SLAs are fairly worthless in my honest opinion anyway, so this probably isn't really something to worry about though. http://code.google.com/appengine/sla.html The SLA does not really offer me any peace of mind. If the datastore slows down to the point where requests are taking 5 seconds to return then my app is as good as dead. But the SLA doesn't cover performance problems - only errors. If my app becomes so slow that it starts to throw DEE's then that is probably considered a problem with the application code rather than an infrastructure error. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/vaMwJ2LpSUoJ. To post to this group, send email to google-appengine@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: Could I pay my GAE hosting fee from AdSense revenue?
After the new pricing takes effect my AdSense revenue will be about 200x the higher hosting costs. So yes, it is very possible to pay for your running costs with AdSense and still retain 99% as profit. If you are starting a new site from zero the only tricky thing is estimating when to start paying the 9 bucks a month to enable scaling or risk having quota error messages shown to your users. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/McwQcJDisJUJ. To post to this group, send email to google-appengine@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.
[appengine-java] Re: threads per instance (Java)
Three months ago instances were limited to 10 concurrent requests but apparently this restriction will be completely removed (may already be removed) and the CPU usage of your app will be the sole determinant of concurrency. So if your app handles requests very efficiently it will handle a higher number of simultaneous requests before requests linger in the pending queue. There will be some CPU limit for front end instances such as 600Mhz. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/hZMakuEUqbUJ. To post to this group, send email to google-appengine-java@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] Loading requests timeout with DeadlineExceededException while reading classes
I've changed the topic name from this thread but the issue is the same: https://groups.google.com/d/topic/google-appengine-java/nU1c9tHbG60/discussion I want to know if this is a recognised problem with threads-safe=true apps and if work is being done to improve the situation. Can I expect a solution soon or should I revert to thread-safe=false in the mean time. Currently it is causing havoc with one of my sites and traffic has dropped very significantly over the last week. Using thread-safe=false raises the latency on average (but without the long loads) so that is not really ideal. To reiterate the problem, loading requests frequently time-out with DeadlineExceededException or HardDeadlineExceededError while loading classes. As my app uses Guice, this usually happens while creating the Injector from a ContextListener. Usually loading requests take 4 - 8 seconds. Recently (last week or more) they take either the normal time or an excessive amount of time (not in between), often causing a time-out. When they do time-out the exception is thrown while waiting for file system access which makes me think that this is the cause of the long delays and exceptions. This problem *only *occurs during loading requests - never during normal requests. This reinforces the theory that it is due to class loading or other initialisation work. The exception is never thrown while trying to read from memcache or the datastore so I don't think the recent memcache problems can be blamed. Below are some example stack traces from loading requests that time-out Caused by: com.google.apphosting.api.DeadlineExceededException: This request (87a9b70d2e6454ce) started at 2011/08/30 21:35:23.631 UTC and was still executing at 2011/08/30 21:36:07.688 UTC. at com.google.appengine.runtime.Request.process-87a9b70d2e6454ce(Request.java) at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:231) at sun.misc.Resource.getBytes(Resource.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:273) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Caused by: com.google.apphosting.runtime.HardDeadlineExceededError: This request (5d47b3fba3dc9418) started at 2011/08/30 21:35:53.131 UTC and was still executing at 2011/08/30 21:36:28.003 UTC. at com.google.appengine.runtime.Request.process-5d47b3fba3dc9418(Request.java) at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:231) at sun.misc.Resource.getBytes(Resource.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:273) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) Caused by: com.google.apphosting.runtime.HardDeadlineExceededError: This request (969d70b821181c7d) started at 2011/08/30 04:05:53.874 UTC and was still executing at 2011/08/30 04:06:34.552 UTC. at com.google.appengine.runtime.Request.process-969d70b821181c7d(Request.java) at java.util.zip.ZipFile.read(Native Method) at java.util.zip.ZipFile.access$1200(ZipFile.java:57) at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:476) at sun.misc.Resource.getBytes(Resource.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:273) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) When the loading request take so long, many instances are started to handle the pending requests. This results in a lot of instances created that are not needed and they just sit there once the app eventually gets back on its feet again: https://lh5.googleusercontent.com/-9ehwmZDo0ys/Tl3Aevbh45I/ADg/VJfOXow4Rk8/Capture.PNG I've seen related issues in the tracker but one discussion suggested that the problem was fixed in 1.5.2: https://groups.google.com/d/topic/google-appengine-java/6tnyfJLBIXM/discussion One issue in the tracker is Started but no update and it is now a couple of months old: http://code.google.com/p/googleappengine/issues/detail?id=5214 I hope someone can shed some light on this problem. Thanks, John -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/eKUvh_zhZScJ. To post to this group, send
[appengine-java] Re: Loading requests timeout with DeadlineExceededException while reading classes
I should add that some loading requests take an excessive amount of time (20+ seconds) but do not time out. Those are the ones that result in the unneeded front-end instances shown above. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/CIx4uK_t1zkJ. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
[appengine-java] Re: GAE domains not resolving
When I try your link from Thailand it resolves to Google but gives this error https://lh3.googleusercontent.com/-sO3H5YHOxdY/Tl4UFX-zLHI/ADk/ukA7hBPg_TY/Capture.PNG So it looks like your domain issues are local but you have not added the domain to your app correctly. BTW, I also experienced such a local DNS problem that resolved itself within a day. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/o7xlizvSHHMJ. To post to this group, send email to google-appengine-java@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: GAE domains not resolving
On 31/08/2011 18:36, footy wrote: That is the 404 error page from Google which is what led me to believe that there is a probelm with ghs.google.com and CNAME resolution. The fact that your browser shows this google page indicates that the name resolution is working but that perhaps you have not added the subdomain to your app. -- 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-java@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: Loading requests timeout with DeadlineExceededException while reading classes
On 31/08/2011 19:48, Simon Knott wrote: Another developer posted that they had a massive performance improvement deploying their classes in a JAR file - see https://groups.google.com/d/msg/google-appengine/Gl7OaMOHJD8/i_ti0KceockJ for the relevant thread. A ha!!! I have not tested as a jar yet but this sounds like exactly the problem causing some loading requests to stall. Thanks for the link :) More questions: Why is the time for file system access so erratic? As this is a major performance/stability variable then perhaps it should be covered in the system status pages. Is this file system access problem somehow linked to the recent memcache issues? Will this problem be addressed? Is it even considered a bug? Or is the advice from Googlers to always put local resources (incl classes) into a jar now and in the future? If so then it should be plastered all over the docs and every developer called up on the telephone and told to jar their apps up tight. Now! -- 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-java@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] Task queue locking up
I switched back to thread-safetrue/threadsafe , upgraded to SDK 1.5.2 and for a week the number of deadlocks seems to be greatly reduced. I do still get deadlocks but now the error reporting is MUCH better. They normally occur in some Google generated method com.google.appengine.runtime.Request.process-XXX. Often they are due to the class loader accessing the file system concurrently. There doesn't seem to be anything my code can do to protect against these. They usually occur while an instance is spinning up - loading classes etc. In fact, last night for a period, almost every loading request caused a dead lock. Not good. Normal loading requests complete in 6 seconds. Here are a few example stack traces: com.google.apphosting.runtime.HardDeadlineExceededError: This request (fa381c78a3815eac) started at 2011/08/24 23:52:33.115 UTC and was still executing at 2011/08/24 23:53:04.127 UTC. at com.google.appengine.runtime.Request.process-fa381c78a3815eac(Request.java) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.init(FileInputStream.java:139) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Caused by: com.google.apphosting.runtime.HardDeadlineExceededError: This request (fd3fb35c7fd41f00) started at 2011/08/25 00:00:41.072 UTC and was still executing at 2011/08/25 00:01:14.736 UTC. at com.google.appengine.runtime.Request.process-fd3fb35c7fd41f00(Request.java) at java.io.UnixFileSystem.getBooleanAttributes0(Native Method) at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:243) at java.io.File.exists(File.java:807) com.google.apphosting.runtime.HardDeadlineExceededError: This request (c7de12e8c6c87de3) started at 2011/08/25 00:01:17.557 UTC and was still executing at 2011/08/25 00:01:48.517 UTC. at com.google.appengine.runtime.Request.process-c7de12e8c6c87de3(Request.java) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.init(FileInputStream.java:139) at java.lang.Class.getGenericSuperclass(Class.java:386) at com.google.inject.TypeLiteral.getSuperclassTypeParameter(TypeLiteral.java:97) at com.google.inject.TypeLiteral.init(TypeLiteral.java:77) Caused by: com.google.apphosting.api.DeadlineExceededException: This request (5cb100e4cb6e2818) started at 2011/08/25 00:13:55.275 UTC and was still executing at 2011/08/25 00:14:26.967 UTC. at com.google.appengine.runtime.Request.process-5cb100e4cb6e2818(Request.java) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.init(FileInputStream.java:139) at java.lang.Class.forName(Class.java:110) -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/TDMIg2gMovwJ. To post to this group, send email to google-appengine-java@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] GWT + GAE pom?
I haven't read your exact setup but some things that might help: Add this to your pom.xml build outputDirectory${project.build.directory}/${project.build.finalName}/WEB-INF/classes/outputDirectory I use the Eclipse plugin FileSync to keep src/main/webapp synchronised with /target/myapp-1.0/ In Eclipse preferences, under Google Web Application I have ticked This project has a war directory and set it to src/main/webapp I do not include any of the App Engine jars in my pom because the Eclipse plugin seems to depend on the location of some of them to find other bits and pieces in the SDK - at least it did a number of releases back. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/q4oahoP4Y48J. To post to this group, send email to google-appengine-java@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: Datastore access deadlock
Do you normally see the DeadlineExceededException? If not then perhaps you are running into this dead-lock issue : http://code.google.com/p/googleappengine/issues/detail?id=5384 Try turning off thread-safe mode - that fixed the problem for me while I wait for a proper fix for multi threaded apps. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/tgtrc2G3CgsJ. To post to this group, send email to google-appengine-java@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: Mining logs for performance data
On 30/07/2011 08:50, Kesava Neeli wrote: Thanks for the pointer. I wasn't aware of the the 'download logs' tool. I will give that a try. It doesn't contain the time information. That only shows in the console -- 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-java@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] Task queue locking up
On Tuesday, 26 July 2011 04:03:44 UTC+7, Ikai L (Google) wrote: John, yeah, it's a deadlock, possibly in userspace code. Can you look into this? The only pattern I could detect was the dead-lock with concurrent file access - I had my web framework in dev mode so each request was loading templates. I do a lot of reflective reads and writes (Method.get Method.set) and annotation reading, which makes me suspect the GAE security manager. I've run a load test on the dev server and not seen the dead-locks locally. On our end we'll see if we can surface and more usable error message. Nice one, a stack trace would really help figure this one out. I'll turn on threadsafe mode again once its possible to get some more details on the problem. I think that running single threaded increases the variance of response times. I often now see a request take e.g. 600ms but my code competes in 50ms. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/YfJhHVZZo70J. To post to this group, send email to google-appengine-java@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: Mining logs for performance data
I've seen a couple of apps (iPad app) that can log into your account and monitor various things. I took a very low-tech approach to average the response time from logs: I filter logs by label (e.g. path:/place/.*) and set the limit to 200 (the maximum logs you can show in one page) and then copy and past the results into a file and run this to average the times: public class GetAverageTimeFromLogPage { public static void main(String[] args) throws MalformedURLException, IOException { FileReader reader = new FileReader(args[0]); String text = CharStreams.toString(reader); long total = 0; int count = 0; Pattern pattern = Pattern.compile( 200 (\\d+)ms); Matcher matcher = pattern.matcher(text); while (matcher.find()) { String time = matcher.group(1); long value = Long.parseLong(time); // remove restarts if (value = 1000) { count++; total += value; } } System.out.println(total / count + from + count); } } I hope someone has a nicer method!! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/lwLRH0p6XYkJ. To post to this group, send email to google-appengine-java@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: java.lang.NoClassDefFoundError: for sample project ( CodeLabEx2.zip.)
make sure you have all the app engine libs in /WEB-INF/lib -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/QTTGn-_VOmAJ. To post to this group, send email to google-appengine-java@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] Pending or not pending
Hi, I was wondering why in the logs some requests show pending=XXXms and others do not even though the request is clearly taking a lot of time in the plumbing before it gets to my first request Filter (which times total ms spent in my code)? As an example, below are samples from my logs timed in ms Total My code Pending 868 784 27ms Not specified In the last sample the request took a lot of time before hitting my code but no pending value was logged. In contrast the first sample shows a request which does specify the pending value but it is not really significant. Can a request be moved from the pending queue to a front end instance and then block while waiting for another single threaded request to complete? Cheers, John -- 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-java@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: New Pricing Model
No body can answer that without knowing exactly how your app uses billed resources. Latest details can be found here: https://groups.google.com/d/topic/google-appengine/Hluog1_a3n4/discussion BTW, 10 queries is too much - your goal should be zero or one query per page by using denormalisation, memcache and in-memory caching. 10 consecutive queries would result in a very slow website and if your requests don't complete in roughly 600ms or less then your app will not be auto-scaled which effectively kills it. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/9hGSoMRIKkMJ. To post to this group, send email to google-appengine-java@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] Task queue locking up
Oh also, I was previously getting deadlocks ( time-out without exception) as more than one thread tried to read a resource from the file system. I wonder if the wide variety of circumstances that this problem occurs in points to something fundamental like the security manager? -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/gKRRQMJfoxoJ. To post to this group, send email to google-appengine-java@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] Task queue locking up
I have a task which sometimes runs fine in a few seconds and other times locks up and times out after 10 mins. The logs do not show any exception just this message: 2011-07-21 01:38:06.983 A serious problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. If you see this message frequently, you may have a memory leak in your application. (Error code 201) it is logged at WARN level not critical. The instances console page shows memory use is only 80MB The problem is easily repeatable. As no exception is logged I cannot tell if it is locking up due to a problem in my code or in the SDK code. I'm running 1.5.0 on the high replication datastore. Cheers, John -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/QlTy5SkZ_o8J. To post to this group, send email to google-appengine-java@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] Big Entities vs Small Entities
Keep them all in one Entity so you only need to do a single datastore get() but embed a List of FormField (or something) in the main entity. Both Twig and Objectify support embedding collections of objects in a single Entity. Entity size is less important than the number of datastore calls you must make. class MyEntity { @Embed private ListFormField fields; } class FormField { String value; boolean modified; } -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/VgmHIl1m87QJ. To post to this group, send email to google-appengine-java@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] Optional custom index
Hi All, I just wanted to share some timings and a performance tip that I wasn't previously aware of on the HR datastore (should also apply to MS datastore). I had a query that was the limiting factor for my page load time. It was taking on avg 280ms to query with two equality filters across a dataset of about 600,000 records. A custom index is not needed because the query contains only equality filters. After adding a custom index on those fields the average query time dropped to about 50 milliseconds. Interestingly the api_cpu consumed remained exactly the same at 104ms. John -- 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-java@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: FileServiceFactory.getFileService().getBlobKey(file) is Broken, blobkey parser returns null
I'm finding the same problem. This worked for me: BlobKey key = files.getBlobKey(file); if (key == null) { Thread.sleep(2000); key = files.getBlobKey(file); } -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/fzW-7DGiCZkJ. To post to this group, send email to google-appengine-java@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: Entity.getKey() reliable for gets?
Hi Jay, yes you can use the Key that you have created - it is fully specified by the kind and id/name (automatically includes appId and namespace). It is worth noting that if you create a Key and Entity then keep a reference to the Key in a HashMap that after calling db.put() the has value of the Key will change if its id is set. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/OWISvPDLkPgJ. To post to this group, send email to google-appengine-java@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: Entity.getKey() reliable for gets?
.. that is the hash value will change. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine-java/-/uIMwryKZk9kJ. To post to this group, send email to google-appengine-java@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: how to persist a list of bytearray?
On 18/03/2011 15:29, Jeff Schnitzer wrote: I normally don't do this but... if you're using Objectify, it's just: @Serialized private Listbyte[] attachments; Jeff ... and for comparison, with Twig you use its type converter system to tell it to store the whole list as a single blob: @Type(Blob.class) private Listbyte[] attachments; John -- 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-java@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] Low-level API: EntityTranslator and DataTypeTranslator
These are unpublished classes so you should use them at your own risk. They may change in a future release in which case you will get NoSuchMethodError exceptions thrown. You can see how Twig uses them in AyncDatastoreHelper to implement async datastore commands. Twigs implementation protects against changes to these classes by capturing errors and retrying the normal synchronous commands instead. So if there are any problems due to server side upgrades Twig drops back to normal speed operations that are run serially rather than in parallel. John On 26 Oct 2010, at 18:02, dominity wrote: Hi, guys. Is there any information of how could I use these classes in my code? Best regards, Alexander. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Many to many relation ship
On 7 October 2010 05:15, hadf hadrien.for...@gmail.com wrote: how jpa or jdo knows that Car is associated to User ? public class Car { @OneToMany private SetKey users; //this relation ship is untyped } Two alternative datastore frameworks add typing in different ways. Twig uses direct references: class Car { SetUser users; } and Objectify uses generic Keys; class Car { SetKeyUser users; } http://code.google.com/p/twig-persist/ http://code.google.com/p/objectify-appengine/ -- 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] Size of Nearly Empty Entity
This should answer most of your questions about storage: http://code.google.com/appengine/articles/storage_breakdown.html Entities do not use any space for missing values but do use space for null values. In fact, because Entities are essentially a Map of name-value pairs, there is really no such thing as a missing value. If space is a concern it is better to not store nulls unless you want to query for them. Twig gives you the choice of whether you want to store null values or not but I don't think JDO-GAE (or other datastore frameworks?) can be configured to do this. Firstly, you should be certain it is worth the effort to optimise storage space. It is likely not worth the time to bother with deltas etc. http://code.google.com/appengine/articles/storage_breakdown.htmlWhen you view the datastore statistics page you might find most of your storage space used by meta data. You can reduce this by using small kind names, property names and even the app-id which are all included in every indexed value. Twig 2.0 can be configured to store short kind and property names without requiring you to rename your data model classes or fields. I don't think JDO-GAE can do this... but not certain about that. On 18 October 2010 12:07, Rud rudmerr...@gmail.com wrote: My app has a UserProfile class (entity) with many fields. These are your typical user demographics - age, marital status, etc. Over time users will change the fields, i.e. get married or divorced. I need to keep a history of changes. I am wondering if creating another entity of the entire class containing only the data in the changed field would be efficient. Ignore the mechanics of tracking how the new entity relates to the old since I think that is just detail chasing. The question is whether the new entity with only a single field populated is only the size of that field, or nearly so. Or is the stored entity have a default field for every field in the entity, basically making it as large as the original entity. The other approach would be to keep a name-value pair containing the change in a 'delta' entity. Which would be more efficient in the datastore? Rud http://www.mysticlakesoftware.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] Re: Web Hook - Asynchronous - Where is my response?
There is no public API for checking the status of tasks. A task is really nothing more than a normal http request which is monitored by GAE to retry it if it fails. The real brains is in the task queue which is simply a queue of URL's that app engine will fire off at a given rate and retry failed requests. The only public method to check tasks (http requests) in this queue is the console webpage. Its up to you to monitor your tasks yourself by storing some kind of status data in memcache or the datastore. On 7 Oct 2010, at 20:13, Andy wrote: Sorry I don't quite understand your answer, what do you mean by DataStore Operation? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Tell data store not to selected index properties on bulkupload
On 5 Oct 2010, at 19:44, Maxim Veksler wrote: Hi Peter, I used bulkloader.yaml. I can't find the non indexing configuration in the docs http://code.google.com/appengine/docs/python/tools/uploadingdata.html Should I just go back and user the deprecated method (python configuration?). What about the existing data? Should I reupload the same entries to after I configure no indexing to make the index go poof ? The implicit single property indexes can only be added or removed by re-putting the entities replacing the existing ones. Keep in mind that any property used in a composite index must also be indexed (single property index). Existing composite indexes will stay in the datastore until you run appcfg.py vacuum_indexes. This features is not available in the Java SDK appcfg.sh script. -- 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: Wicket/JPA application works locally but fails when deployed on GAE
Wicket works fine on GAE as long as you make sure your page instances do not contain non-Serializable instances - using detachable models follows this rule. Here is this base class I use to set up a Wicket / Engine App public abstract class EngineApplication extends WebApplication { @Override protected void init() { getResourceSettings().setResourceWatcher(new OnDemandModificationWatcher()); super.init(); } protected ISessionStore newSessionStore() { return new HttpSessionStore(this); } @Override protected WebRequest newWebRequest(HttpServletRequest servletRequest) { if (isDevelopmentEnvironment()) { ((OnDemandModificationWatcher) getResourceSettings().getResourceWatcher(true)).start(); } return super.newWebRequest(servletRequest); } public static boolean isDevelopmentEnvironment() { return System .getProperty (com.google.appengine.runtime.environment).equals(Development); } @Override public String getConfigurationType() { if (isDevelopmentEnvironment()) { return development; } else { return deployment; } } } On 6 Oct 2010, at 08:02, nico wrote: swapplace isn't a good example, it is too simple NM On Mon, Oct 4, 2010 at 5:19 AM, Ian Marshall ianmarshall...@gmail.com wrote: Mmmm: my link has been Googlised. If interested, try http://www.SwapPlace.co.uk instead. On Oct 4, 9:11 am, Ian Marshall ianmarshall...@gmail.com wrote: I disagree. I use Wicket and JDO on GAE/J; it works fine for me, including no serialisation problems. As a working example, I am satisfied with my Wicket/JDO/GAE/J proof-of- concept web application at www.SwapPlace.co.uk. I am using the lessons learnt for my commercial web site development, which is coming along nicely too. On Oct 3, 9:43 pm, nico nfmelen...@gmail.com wrote: Hey! don't use wicket + GAE!!! you will have lot of serialization problems and your project will FAIL! you will lose time and money! bug:http://code.google.com/p/googleappengine/issues/detail?id=2500 Bye! NM -- 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-java@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 . -- Nicolás Meléndez Java Software Developer Cell: +54 9 1157535454 1) Google App Engine works: 1.a) http://www.clasificad.com.ar (Local free classifieds for housing, sale, services, local community, curses,jobs, and events - GAE/J + Wicket + YUI) 1.b) http://www.chessk.com (Massive multiplayer chess online GAE/J + Applets + Wicket) 2) Linkedin: http://ar.linkedin.com/in/nicolasmelendez -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Select query using LIKE
Use a GREATER_THAN_OR_EQUAL and a LESS_THAN filter to match a prefix - thats the best you can do for a single stored term. You will need to break the term up into multiple n-grams if you want to query for a partial match within a term. On 4 Oct 2010, at 16:25, Ravi Dhanwate wrote: Hi All, Please provide inputs if we can use LIKE in GQL query or if any alternative is available for this. Thanks. Ravi -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] JDO unique Long ID keys across entity groups
You can use DatastoreService.allocateIds() to get a range of unique keys that you can then assign to the children. The kind name can be any old String - not just an existing kind. This method does not guarantee the ids will be sequential but they will be unique. If you really need sequential ids you can use memcache's atomic increment method. If the value is not found in memcache you can do a query to find the maximum sequence number in the datastore and use the memcache increment method that allows you to specify an initial missing value atomically. John On 30 Sep 2010, at 17:28, Fred wrote: Hi Group, I know key ids are only unique across entity groups so what GAE + JDO gives me is: /Parent[1]/Child[1] /Parent[1]/Child[2] /Parent[1]/Child[3] /Parent[2]/Child[1] /Parent[2]/Child[2] /Parent[3]/Child[1] etc. What I need to achieve (aka implement) is a way to assign keys in the following fashion: /Parent[1]/Child[1] /Parent[1]/Child[2] /Parent[1]/Child[3] /Parent[2]/Child[4] /Parent[2]/Child[5] /Parent[3]/Child[6] etc... so child ids are in sequence across entity groups (or at least unique). Does anyone have experience with this or any thoughts on how to go about it in a secure fashion? I can't seem to come up with a secure way of doing this, but don't want to give up on it because it would give my use case a lot of querying power. Hope someone can help. Thanks in advance, Fred -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Python and Java
Different versions are completely separate code bases that share a common datastore and other API services. One version could be written in Java and another in Python but only one can be the default version at a time (receiving traffic from your domain name). The other versions are accessible only from the appspot.com domain. On 26 Sep 2010, at 20:48, joradom wrote: hello I found this in the FAQ: http://code.google.com/intl/en/appengine/kb/java.html#pythonandjava Can I run Java and Python code in the same app? Yes, each version of the app must specify a runtime language and it is possible to have version x of your app running Java, while version y is running Python. It would also be possible to use Jython. But I'm not sure to understand it... Can I just create a python app and upload it to a java gae cloudr? or is there some more magidc not documented in the faq? thx -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] How to make GWT + App Engine application crawlable?
You will need to post the code you are using... rest assured, you can read query string parameters on both the development and production servers. On 25 Sep 2010, at 06:23, hezjing wrote: I'm still not able to retrieve the query string from my servlet filter. For example after application is deployed to Google App Engine, and then browse X.appspot.com/X.html?a=b. The query string is null. Can you help me on this, please? On Thu, Sep 23, 2010 at 1:21 PM, hezjing hezj...@gmail.com wrote: Probably that was a bad query string, but the servlet filter is not able to retrieve the query string from http://127.0.0.1:/Hello.html?A=Bgwt.codesvr=127.0.0.1:9997 too! On Thu, Sep 23, 2010 at 10:04 AM, John Patterson jdpatter...@gmail.com wrote: On 23 Sep 2010, at 07:47, hezjing wrote: When run in the GWT development mode, e.g. http://127.0.0.1:/X.html?_escaped_fragment_=gwt.codesvr=127.0.0.1:9997 , the application without App Engine is able to retrieve the query string as _escaped_fragment_=gwt.codesvr=127.0.0.1:9997. The problem is, the application with App Engine is always getting the null query string! You need to encode the query string - the character is not allowed in a value. http://download.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.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-java@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 . -- Hez -- Hez -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Namespace design issues
On 24 Sep 2010, at 02:55, Mouseclicker wrote: API. The need to set and later reset a global setting is dangerous and error-prone. Probably that's what Guillaume mentions with The fear I had was when seeing a static methods being used. I'm always afraid when I see 'static' somewhere. Me too! The namespace is not global or static but stored per-thread so it must be set for every request e.g. in a servlet Filter. There is no problem setting it for a single operation if it is reset in a finally block. I personally like the way that the namespace API is completely separated from other APIs. In fact, I would prefer it if the memcache API namespace did not override the namespace API namespace... that caused a subtle bug the other day. It really is very important to be able to see all the stored data in the datastore viewer without requiring the user to enter the namespace. Especially as the user could be billed for data they cannot delete. -- 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] How to make GWT + App Engine application crawlable?
On 23 Sep 2010, at 07:47, hezjing wrote: When run in the GWT development mode, e.g. http://127.0.0.1:/X.html?_escaped_fragment_=gwt.codesvr=127.0.0.1:9997 , the application without App Engine is able to retrieve the query string as _escaped_fragment_=gwt.codesvr=127.0.0.1:9997. The problem is, the application with App Engine is always getting the null query string! You need to encode the query string - the character is not allowed in a value. http://download.oracle.com/javase/1.4.2/docs/api/java/net/URLEncoder.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.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: A question about queries and composite indices
On 16 Sep 2010, at 21:18, Ikai Lan (Google) wrote: The way an AND query works is by making multiple queries and merging the results by zig-zagging between them. A solution to your problem may be simply to whittle down the result set to as small as you can reasonably get it, then traverse the entities in memory. If you end up needing to use multiple queries you can use Twigs parallel async queries to run them all at the same time then zig-zag the results yourself to filter out the matching results. This way you have fine control over the chunk size for each query (to tune performance) and can keep a cursor for each query. -- 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] Using the Python bulk exporter tool with a Java application
If you feel more comfortable working with Java, I use this code to bulk load and backup data: http://code.google.com/p/remote-datastore/ It intercepts the raw bytes sent to the local datastore and sends them to another remote datastore. Because it operates at this very low level it is very efficient. On 17 Sep 2010, at 12:23, megala dhinakaran wrote: i had created webappliccation project using java,I want to bulk load the data in google app engine datastore,But it shows the following error how to solve this appcfg.py create_bulkloader_config --filename=bulkloader.yaml -- url=http://logchecking1.appspot.com/remote_api appcfg.py:41: DeprecationWarning: the sha module is deprecated; use the hashlib module instead os.path.join(DIR_PATH, 'lib', 'antlr3'), /home/crimson/Desktop/google_appengine/google/appengine/tools/ dev_appserver_login.py:33: DeprecationWarning: the md5 module is deprecated; use hashlib instead import md5 Creating bulkloader configuration. [INFO] Logging to bulkloader-log-20100917.105157 [INFO] Throttling transfers: [INFO] Bandwidth: 25 bytes/second [INFO] HTTP connections: 8/second [INFO] Entities inserted/fetched/modified: 20/second [INFO] Batch Size: 10 [INFO] Opening database: bulkloader-progress-20100917.105157.sql3 [INFO] Opening database: bulkloader-results-20100917.105157.sql3 [INFO] Connecting to logchecking1.appspot.com/remote_api [ERROR ] Exception during authentication Traceback (most recent call last): File /home/crimson/Desktop/google_appengine/google/appengine/tools/ bulkloader.py, line 3167, in Run self.request_manager.Authenticate() File /home/crimson/Desktop/google_appengine/google/appengine/tools/ bulkloader.py, line 1176, in Authenticate remote_api_stub.MaybeInvokeAuthentication() File /home/crimson/Desktop/google_appengine/google/appengine/ext/ remote_api/remote_api_stub.py, line 533, in MaybeInvokeAuthentication datastore_stub._server.Send(datastore_stub._path, payload=None) File /home/crimson/Desktop/google_appengine/google/appengine/tools/ appengine_rpc.py, line 336, in Send f = self.opener.open(req) File /usr/lib/python2.6/urllib2.py, line 389, in open response = self._open(req, data) File /usr/lib/python2.6/urllib2.py, line 407, in _open '_open', req) File /usr/lib/python2.6/urllib2.py, line 367, in _call_chain result = func(*args) File /usr/lib/python2.6/urllib2.py, line 1146, in http_open return self.do_open(httplib.HTTPConnection, req) File /usr/lib/python2.6/urllib2.py, line 1121, in do_open raise URLError(err) URLError: urlopen error [Errno -2] Name or service not known [INFO] Authentication Failed How to solve this? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] SimpleDS 1.0 is out
Nice work Nacho! Some cool new features... love the meta-data reloader idea On 13 Sep 2010, at 18:53, Nacho Coloma wrote: We are excited to announce the 1.0 release of SimpleDS. SimpleDS is a simple persistence framework for Google AppEngine that provides an alternative to JDO or JPA. This release includes a lot of new features: Cached queries == This is the star feature of this release. Starting with 1.0, all query results can be cached. To maximize cache performance only the returned primary keys will be cached, so you still have to use @Cacheable to cache the entity itself. There are cases were this feature is killer, e.g. to retrieve a User given the email: User user = entityManager.createQuery(User.class) .equal(email, googleUser.getEmail()) .withCacheSeconds(3600) .asSingleResult() ; DEBUG CacheManagerImpl - Level 2 cache hit: qdata{kind=User,pred=[email = t...@example.com]} DEBUG CacheManagerImpl - Level 2 cache hit: User(5) DEBUG Level1Cache - Level 1 cache hit: User(5) Cached queries work with FetchOptions (cursors, limit and offset) and support only count(), asSingleEntity(), asList() and asPagedList(). Any invocation to asIterable() / asIterator() will ignore the cache. To clear cached data, just prepare the same query and invoke clearCache(). More about cache here [2]. Better fluent interfaces The syntax has been simplified from this (older version): SimpleQuery query = entityManager.createQuery(User.class).equal(name, foo); return entityManager.find(query); To this: return entityManager.createQuery(User.class) .equal(email, email) .equal(enabled, true) .sortAsc(email) .asList() ; Now we rarely use more than one line for most queries. In this example, if email is null it will just be ignored. Several methods have been added: asList(), asSingleResult(), asIterator(), asIterable() and PagedQuery.asPagedList(). The old EntityManager methods have been deprecated. More about queries here [3]. New Functions = We are also adding some new Functions for transforming persistent entities. Some examples of use: // save space for your relationships by storing SetLong instead of SetKey SetLong userIds = user.getFriends(); CollectionKey userKeys = Collections2.transform(userIds, new IdToKeyFunction(User.class)); CollectionUser users = entityManager.get(userKeys); // transform back CompositeFunctionUser, Long func = new CompositeFunction( new EntityToKeyFunction(User.class), new KeyToIdFunction() ); user.setFriends(Collections2.transform(users, func)); // just return a collection of email addresses return Collections2.transform(users, new EntityToPropertyFunction(User.class, email)); More about functions and transformations here [4] Added JRebel support I personally use JRebel for development, which means that I rarely restart my development server. This was a problem with SimpleDS, which was unable to detect changes such as new persistent attributes, etc. SimpleDS can now be used with JRebel just by adding this to your startup code: if (SystemProperty.environment.get().equals(Development)) ClassMetadataReloader.register(); Then in eclipse (Go to your launcher config - Arguments - VM Arguments) -javaagent:/usr/local/java/appengine-java-sdk/lib/agent/appengine- agent.jar -noverify -javaagent:${env_var:REBEL_HOME}/jrebel.jar Minor changes = * Added @Property.converter to override the default converter for one persistent property. You can, for example, store a String attribute as Text. * Added new methods SimpleQuery.withReadPolicy(ReadPolicy) and SimpleQuery.withDeadline(double) * Added new methods SimpleQuery.withStartCursor(Cursor) and SimpleQuery.withEndCursor(Cursor) * Cache settings will be ignored when invoked within a transaction. * We have moved from commons-logging to slf4j. This may break binary compatibility, but is a huge boost in performance. Next on the roadmap: we are already playing with appengine-mapper and expect to deprecate our own dirty hack (BackgroundTasks) for our next release. I hope you find it interesting. All feedback is welcome. Nacho. [1] http://code.google.com/p/simpleds/wiki/ReleaseAnnouncements [2] http://code.google.com/p/simpleds/wiki/Cache [3] http://code.google.com/p/simpleds/wiki/SimpleQuery [4] http://code.google.com/p/simpleds/wiki/Functions -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the
Re: [appengine-java] Problem starting a GWT (with jetty) app via LAN
Try adding the parameter -bindAddress 0.0.0.0 in the launch configuration. Since a few versions back the dev server will only bind to the local interface by default. On 13 Sep 2010, at 15:46, Thomas P. wrote: Hi all, Initially, I used GWT + GAE for my project and when compiled to Javascript I could start the project from everywhere in my home-lan over e.g. http://myip:. Then, after I found out, GAE doesn't support the java-classes I need, I created a new project without GAE, but still using the Jetty server which is included in a GWT/GAE hello-world application. But now, I got the problem, I can't access my project anymore. I just get an error message, the site hasn't been found. Running the app locally with http://localhost: works without problems - just running it from another computer doesn't work anymore. I changed nothing on my system and the IP is correct, because I have another apache on port 80 running and this site is accessible well, so this issue has to be connected with Jetty. Does someone know, what I can do in order to be able to run my compiled GWT project in my lan again? Thx for help! Best regards, Thomas -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Need help choosing a frontend framework for a GAEj app, GWT seems like overkill
You might want to look into Sitebricks which is a Google developed web app framework built on top of Guice. It is a simple request response processor with no fancy component abstractions like Wicket or Tapestry. This model fits in very well with GWT (or other client frameworks) which request data via RPC or small snippets of rendered html to assemble on the client. It is still very much in active development so you have to be prepared to dig into the code and figure out the plumbing yourself. The author, Dhanji, has built a fantastic API here - simple, powerful and clever. http://code.google.com/p/google-sitebricks/ John On 10 September 2010 05:35, tempy fay...@gmail.com wrote: Thanks for the explanation Chris! Guess I'm learning jquery, golly, I'll be a real web programmer yet. =) On Sep 9, 7:58 pm, Chris (Google Employee) api.ch...@google.com wrote: Hi Mike, I think the reason we don't explicitly publish a list of frontend frameworks that play well with App Engine is because there really is no technical barrier between front end frameworks that work in the browser such as JQuery, etc and the backend (App Engine). Many App Engine users make full use of a myriad of front end technologies/ frameworks for UI creation ranging from HTML5/JS/CSS to flash etc. JQuery is especially popular for a variety of Web app usages, so if that works for you, I'd definitely continue trying it out. Hope this helps, -Chris On Sep 9, 10:43 am, tempy fay...@gmail.com wrote: Hello all, A little background... I'm mostly new to web frontend development, I come from a mostly backend and desktop background. I have a GAEj app that provides the backend for a rather sophisticated desktop/mobile app. This backend will also drive a website in addition to the desktop/mobile app. The website will show a small subset of the data in the system. I started with GWT, but it doesn't seem to be quite right. The website is for presentation of a small subset of the system's data only, and users do not interact with the data in any way other than searching for it. As the data is mostly unstructured text and some images, I feel most comfortable formatting it with plain old html/css. In fact, the layout of the site will be minimal and look a lot like a blog. As such, the website should certainly not feel like a single-page web application a la gmail. With GWT, I have little use for widgets and find myself constantly fighting with it to get a non-application look- and-feel. The only functionality that I thus really need from GWT is the RPC component, the page should be AJAX, I don't want to do round trips to the server for every navigation event. So, I'm not quite sure which framework to use with the GAEj backend. At first GWT seemed like a natural fit, but now seems like overkill. I'm doing some research on jquery, but I haven't seen a list of frontend frameworks that play well on GAEj anywhere. Thanks for any advice, Mike -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.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: Need help choosing a frontend framework for a GAEj app, GWT seems like overkill
BTW, you can use GWT in a manor very similar to JQuery. Take a look a GQuery by Ray Cromwell. He has an incredible benchmark page which dynamically shows how GQuery out performs JQuery in almost every measure. On 10 September 2010 05:53, John Patterson jdpatter...@gmail.com wrote: You might want to look into Sitebricks which is a Google developed web app framework built on top of Guice. It is a simple request response processor with no fancy component abstractions like Wicket or Tapestry. This model fits in very well with GWT (or other client frameworks) which request data via RPC or small snippets of rendered html to assemble on the client. It is still very much in active development so you have to be prepared to dig into the code and figure out the plumbing yourself. The author, Dhanji, has built a fantastic API here - simple, powerful and clever. http://code.google.com/p/google-sitebricks/ John On 10 September 2010 05:35, tempy fay...@gmail.com wrote: Thanks for the explanation Chris! Guess I'm learning jquery, golly, I'll be a real web programmer yet. =) On Sep 9, 7:58 pm, Chris (Google Employee) api.ch...@google.com wrote: Hi Mike, I think the reason we don't explicitly publish a list of frontend frameworks that play well with App Engine is because there really is no technical barrier between front end frameworks that work in the browser such as JQuery, etc and the backend (App Engine). Many App Engine users make full use of a myriad of front end technologies/ frameworks for UI creation ranging from HTML5/JS/CSS to flash etc. JQuery is especially popular for a variety of Web app usages, so if that works for you, I'd definitely continue trying it out. Hope this helps, -Chris On Sep 9, 10:43 am, tempy fay...@gmail.com wrote: Hello all, A little background... I'm mostly new to web frontend development, I come from a mostly backend and desktop background. I have a GAEj app that provides the backend for a rather sophisticated desktop/mobile app. This backend will also drive a website in addition to the desktop/mobile app. The website will show a small subset of the data in the system. I started with GWT, but it doesn't seem to be quite right. The website is for presentation of a small subset of the system's data only, and users do not interact with the data in any way other than searching for it. As the data is mostly unstructured text and some images, I feel most comfortable formatting it with plain old html/css. In fact, the layout of the site will be minimal and look a lot like a blog. As such, the website should certainly not feel like a single-page web application a la gmail. With GWT, I have little use for widgets and find myself constantly fighting with it to get a non-application look- and-feel. The only functionality that I thus really need from GWT is the RPC component, the page should be AJAX, I don't want to do round trips to the server for every navigation event. So, I'm not quite sure which framework to use with the GAEj backend. At first GWT seemed like a natural fit, but now seems like overkill. I'm doing some research on jquery, but I haven't seen a list of frontend frameworks that play well on GAEj anywhere. Thanks for any advice, Mike -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.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: Any ETA for a backup/restore facility?
Great! There should be no problem storing objects on the production servers using JDO as the RemoteDatastore operates below the low-level API. I use it with Twig to send object data from my desktop to my live application and also to backup live object data locally to a file using XStream. On 7 Sep 2010, at 21:18, luka wrote: Thanks, now it's running smoothly. Next challenge is integrating it to JDO Is it doable ? On Aug 19, 9:01 pm, John Patterson jdpatter...@gmail.com wrote: Have you added appengine-testing-1.3.6.jar and appengine-api- stubs-1.3.6.jar to your project? On 18 Aug 2010, at 19:50, luka wrote: Hi John, The project http://code.google.com/p/remote-datastore/ No longer compiles, since Google newest SDK removed the following classes/interfaces: com.google.appengine.tools.development.ApiProxyLocalFactory com.google.appengine.tools.development.LocalServerEnvironment Can you workaround that ? What older SDK supports this project ? Thanks Uri On Jul 5, 12:32 am, John Patterson jdpatter...@gmail.com wrote: I have had success uploading data in bulk from Java using this RemoteDatastore code: http://code.google.com/p/remote-datastore/ It is very easy to use and because it operates at the binary protocol buffer level it is very fast Here is an example of using it to upload data: public class UploadData { public static void main(String[] args) { // only call install once - often in a static initializer RemoteDatastore.install(); // tell remote datastore where to connect RemoteDatastore.divert(http://myVersion.latest.myApp.appspot.com/remote-datastore , myApp, myVersion); // use standard datastore API to get a datastore service instance DatastoreService service = DatastoreServiceFactory.getDatastoreService(); // create some entities Entity entity1 = new Entity(myKindName); entity1.setProperty(property1, hello); Entity entity2 = new Entity(myKindName); entity2.setProperty(property1, there); // sends the data over http to your remote servlet and stores it in the live datastore datastore.put(Arrays.asList(entity1, entity2); } } -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group athttp://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Security problem with App Engine application
You can write a local Java application that reads data using the JDBC driver and inserts it into your datastore using the RemoteDatastore library: http://code.google.com/p/remote-datastore/ I use this code to read local data from a CSV file and push it to either my local App Engine environment for development or the production environment. On 2 Sep 2010, at 22:28, Andy Faulkner wrote: Hi, I'm trying to develop an AppEngine application in Java, that will read some values from a local MSSQL database on our internal network using Microsoft's JDBC driver, and then insert those values into a reference spreadsheet in our Google Docs domain. I'm falling at the first hurdle! I have Eclipse Helios, with Version 1.3.7 of the App Engine SDK Plugin installed. So, I create a new App Engine project (HelloWorld) and when I run this, it works just fine. And then, just to get things going, I have modified the doGet method so that it looks like this (I'm expecting that this will extract some records from my database, and then print them to the HTML page) - just want to get things going before I really get to work. @SuppressWarnings(serial) public class VisionConnectorServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType(text/plain); // Declare the JDBC objects. Connection con = null; Statement stmt = null; ResultSet rs = null; try { // Establish the connection. Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); SQLServerDataSource ds = new SQLServerDataSource(); ds.setUser(DeltekVision); ds.setPassword(Password1); ds.setServerName(server02); ds.setPortNumber(1433); ds.setDatabaseName(vision2); con = ds.getConnection(); String SQL = SELECT * FROM CL where status='A'; stmt = con.createStatement(); rs = stmt.executeQuery(SQL); // Iterate through the data in the result set and display it. while (rs.next()) { resp.getWriter().println(Client: + rs.getString(Name)); resp.getWriter().println(br/); } } // Handle any errors that may have occurred. catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) try { rs.close(); } catch(Exception e) {} if (stmt != null) try { stmt.close(); } catch(Exception e) {} if (con != null) try { con.close(); } catch(Exception e) {} System.exit(1); } } When I run the application the Jetty server fires up as expected (so everything builds OK) but when I access the web page, kaboom: java.security.AccessControlException: access denied (java.net.SocketPermission cc:1433 connect,resolve) at java .security .AccessControlContext.checkPermission(AccessControlContext.java: 323) at java.security.AccessController.checkPermission(AccessController.java: 546) at java.lang.SecurityManager.checkPermission(SecurityManager.java: 532) at com.google.appengine.tools.development.DevAppServerFactory $CustomSecurityManager.checkPermission(DevAppServerFactory.java:166) at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034) at com .microsoft .sqlserver .jdbc .SQLServerConnectionSecurityManager .checkConnect(SQLServerConnection.java: 3229) at com .microsoft .sqlserver .jdbc.ServerPortPlaceHolder.doSecurityCheck(FailOverInfo.java: 144) at com .microsoft .sqlserver.jdbc.ServerPortPlaceHolder.init(FailOverInfo.java: 135) at com .microsoft .sqlserver .jdbc .SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java: 968) at com .microsoft .sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java: 800) at com .microsoft .sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java: 700) at com .microsoft .sqlserver .jdbc .SQLServerDataSource.getConnectionInternal(SQLServerDataSource.java: 593) at com .microsoft .sqlserver .jdbc.SQLServerDataSource.getConnection(SQLServerDataSource.java: 57) at com .integrity .visionconnector .VisionConnectorServlet.doGet(VisionConnectorServlet.java: 31) at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: 511) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1166)
Re: [appengine-java] Re: can we use Web-services in Gooogle app engine
I needed to call a SOAP service using RPC style which is not supported by the Force.com connector. In the end it wasn't hard to roll my own system which simply uses URLFetchService and parses the XML ignoring (or adding) the SOAP envelope rubbish. On 3 Sep 2010, at 15:41, Francois Masurel wrote: I've successfully used some SOAP Services using the WSC library : http://code.google.com/p/sfdc-wsc/ Francois On 3 sep, 10:27, moissinac jcmoissi...@gmail.com wrote: No true/false response possible. 1) Response time: if a GAE application calls web services, each call must be ended in the limited response time offered by Google; so if there is some delay in the response of the called web service, you need to manage this finely; it could be a bit complex 2) Web service framework: if you implement web services by using a framework/library (Axis,...), it's possible/common that the framework uses a database and so that the framework is not directly compatible with GAE But, it's POSSIBLE to implement anf use web services with GAE -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: How we can read uncommitted data in same transaction.
On 2 Sep 2010, at 18:48, Arnold wrote: Subhash, You may want to use JDO if that is possible. It appears that you can read uncommitted data within the same transaction, I presume because the Entity does not get fetched from the Datastore every time you use PersisistenceManager.getObjectById(). The same may be applicable to JPA. Twig also works like this but only for load()s by id. If you run a find() command then it must go to the datastore which will return results based on the transaction snapshot. However, if the find() results return an item you have already loaded and modified then Twig does not overwrite your modified instance - i.e. you are reading uncommitted data. Because of the use of this session cache you get some extra degree of transaction isolation. -- 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: favicon.ico weirdness
On 26 August 2010 05:28, stanlick stanl...@gmail.com wrote: I do not have a frameset. Yes you do - view source on your page. You have probably set up a naked domain with your registrar who host this page and include your website as a frame within that page. If you cannot modify this container frameset then I don't think you will be able to define an icon for the page. Is that something being injected by GAE? Also, why the does this page icon work in 2 out of 3 cases? The frameset is only used in one case out of the 3 -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] favicon.ico weirdness
When I view source for your frameset there is no link tag like: link rel=shortcut icon href=/somepath/myicon.ico / On 25 Aug 2010, at 04:15, stanlick wrote: I am experiencing some crazy stuff with my browser icon: 1) shows up on development server 2) shows up fine once deployed and accessed from http://9.latest.gae-1or2clicks.appspot.com 3) does not show up when accessed from http://1or2clicks.com/ Any clues? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] sending HTTP GET with xml payload
On 20 Aug 2010, at 03:27, jwangatx wrote: I know it seems logical that GET's should only send a url with QS (Query String) params to qualify the get, but if I have a complex subscription/highly-directly query, I would prefer to send all the parameters as payload/XML. Why not just use POST? -- 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: Any ETA for a backup/restore facility?
Have you added appengine-testing-1.3.6.jar and appengine-api- stubs-1.3.6.jar to your project? On 18 Aug 2010, at 19:50, luka wrote: Hi John, The project http://code.google.com/p/remote-datastore/ No longer compiles, since Google newest SDK removed the following classes/interfaces: com.google.appengine.tools.development.ApiProxyLocalFactory com.google.appengine.tools.development.LocalServerEnvironment Can you workaround that ? What older SDK supports this project ? Thanks Uri On Jul 5, 12:32 am, John Patterson jdpatter...@gmail.com wrote: I have had success uploading data in bulk from Java using this RemoteDatastore code: http://code.google.com/p/remote-datastore/ It is very easy to use and because it operates at the binary protocol buffer level it is very fast Here is an example of using it to upload data: public class UploadData { public static void main(String[] args) { // only call install once - often in a static initializer RemoteDatastore.install(); // tell remote datastore where to connect RemoteDatastore.divert(http://myVersion.latest.myApp.appspot.com/remote-datastore , myApp, myVersion); // use standard datastore API to get a datastore service instance DatastoreService service = DatastoreServiceFactory.getDatastoreService(); // create some entities Entity entity1 = new Entity(myKindName); entity1.setProperty(property1, hello); Entity entity2 = new Entity(myKindName); entity2.setProperty(property1, there); // sends the data over http to your remote servlet and stores it in the live datastore datastore.put(Arrays.asList(entity1, entity2); } } -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Shared Datastore via Multiple App Versions Locally
Your approach works fine for me on OS X. But the datastore is held in memory so only one app can use it at a time. If you make changes to the datastore you also need to wait until you see the log message Time to persist datastore... before shutting down the app. On 13 Aug 2010, at 09:14, millr wrote: Hello, I am aware that it is possible to run different applications that share the same datastore by using different version strings for the two applications, as detailed here: http://googleappengine.blogspot.com/2009/06/10-things-you-probably-didnt-know-about.html Now that I have found this approach I am wondering how I could pool the data on the development versions of the app that I am running locally. I am using JRuby for a rack app and have found that the datastore data is stored in /WEB-INF/appengine-generated/local_db.bin, so I tried creating a symlink from the original app to the same location within the new app I wish to share the datastore with. This didn't work an produced the following error: INFO: Failed to load from the backing store, /WEB-INF/appengine- generated/local_db.bin java.io.StreamCorruptedException: invalid stream header: 626F6F6B at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java: 783) Does anyone know of ways I can share this data successfully on my local versions of apps? Thanks. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: HELP: My app is getting lots of HardDeadlineExceededError today.
On 14 Aug 2010, at 00:24, Ikai L (Google) wrote: index and the frequent updates the application needs to make in order to keep the data current. 71000 CPU to save 100 records seems rather expensive?. My App uses 600,000 CPUms to save 100 entities so I don't think that is expensive at all! However updating an existing entity takes much less cpu, presumably because the datastore only updates those indexes that have changed. I have split entities into parts that change often and parts that don't so updates are cheaper. -- 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: urlfetch and embedded gae usage error
On 9 Aug 2010, at 21:40, alesj wrote: See an example here which allows running GAE from a normal main() method http://code.google.com/p/remote-datastore/source/browse/src/main/ java... How should appId and warPath look like? (I see here are no-local-appid-set ands .) Or what's their purpose? AppId is... well what ever your app id is. warPath is normally war or target/youapp-1.0 if you are using maven. In the case of the datastore it is the directory relative to which your local_db.bin will be created. -- 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] appcfg bulkuploading Listkey values from csv
If you use this: http://code.google.com/p/remote-datastore/ you can upload Entities in a main(String[]) using the simple low-level API. If your data is in CSV format you'll need to parse the file lines to create your Entities. On 4 Aug 2010, at 16:51, Dani wrote: Hi, i'm trying to upload to my app an entity with a field which is a list of keys. How can i do it? I tryed to separate it with comas and wrap it with double quotes, like: key,extensions,name,number 1,34,56,John Doe,699 And the config.yml: kind: Zone connector: csv connector_options: property_map: - property: __key__ external_name: key export_transform: transform.none_if_empty(transform.key_id_or_name_as_string) - property: extensions external_name: extensions import_transform: transform.none_if_empty(transform.create_foreign_key('Extension')) export_transform: transform.key_id_or_name_as_string ... But it's interpreted like a single Key and not a list of Keys. Anybody knows? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Enter Data using Queues/Task
There is no way around the 30 second limit yet. You must break up your work into tasks - probably start one task for each for each URL. The Deferred library linked to below makes this easy to manage. On 2 Aug 2010, at 23:13, Sandeep Ghosh wrote: Hi, Twig is good but the problem i am facing is that from the browser i am passing a load command as parameter like this http://localhost:/sbphishlock?load which tells my code that i need to load the data. now in the logic i have written few logic to process in a loop 1)Reads a csv file containg a list of URL's(may be 3000) 2)downloads each URL HTML pages and tokenize it 3)Creating a Object and storing in the database Problem is first 2 points itself takes a lot of time I think i need to use Task/Queues so that i can start a task for each url But i dont know what i need to do for task/Queues moreover is there any other way of doing this Can u help me regarding this Thanx Sandeep On Sun, Aug 1, 2010 at 1:25 AM, John Patterson jdpatter...@gmail.com wrote: I mean bulk put - that is using DatastoreService.put(Iterable) or JDO's makePersistentAll(...) If you do one call with many instances instead of many calls with one instance it will be a lot faster. On 31 Jul 2010, at 14:49, Sandeep Ghosh wrote: Hi, can i do bulk load in Java. Can you Please give me a sample code. Thanx Sandeep On Fri, Jul 30, 2010 at 6:22 PM, John Patterson jdpatter...@gmail.com wrote: On 30 Jul 2010, at 18:10, Sandeep Ghosh wrote: Hi, I am facing promlem of entering many data into the Google App engine database as its taking more then 30 sec time limit. PersistenceManager pm = PMF.get().getPersistenceManager(); for(;;) { EnterData data = new EnterData(key,value,new Text(totaData));// EnterData is my class Entity pm.makePersistent(data); } How can i use the Tasks/Queues in this scenario You could try using bulk put rather than making a datastore call for every iteration. You can also do many store operations in parallel if you use Twig like this: for (...) { datastore.store().instance(data).later(); } this is an non-blocking async call that returns immediately and lets you run all your operations in parallel. Otherwise, to use task queues I would recommend using the Deferred library to chain tasks: http://groups.google.com/group/google-appengine-java/browse_thread/thread/6f736624cc820d5b -- 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-java@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 . -- Kind words can be short and easy to speak, but their echoes are truly endless. Mother Teresa -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@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 . -- Kind words can be short and easy to speak, but their echoes are truly endless. Mother Teresa -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Python bulk loader tool with local dev server of GAE Java
Hi Jan, I have used the Java RemoteDatastore to upload and download data in bulk. It allows you to use the low-level API, JDO, Twig, Objectify or whatever to store your data remotely or locally. http://code.google.com/p/remote-datastore/ On 1 Aug 2010, at 19:49, Jan wrote: Hi, I still did not find any solution to use the bulk uploader (now version 1.3.5) locally with GAE/Java. Communication with the production server works fine. As I cannot find any information about this issue, I assume that nobody else faces this problem. Can someone please post the steps necessary to make the Python bulk loader tool work locally with a Java app? Are there any alternatives available for the Python bulk uploader? Thank you, Jan. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Python bulk loader tool with local dev server of GAE Java
You need to check out the source code (or even just copy and past the classes) into your own project - no downloads or jars (as stated on the project homepage) http://code.google.com/p/remote-datastore/source/checkout To insert data locally just call: RemoteDatastore.install(myAppId, war/); from a static initializer (or some other place guaranteed to only run once) and then you can use the datastore APIs from any Java code e.g. from a main(String[]) method. There is example code on the homepage using the low-level datastore API to insert data. I have used Twig to insert data too and JDO should work. If you need to read data from a CSV file you will need to parse the file and create Entities from it - there is an Apache CSV file reader you can use for that. On 2 Aug 2010, at 03:33, emmanuel harel wrote: John, could you give more information about how to use your library please ? I am not sure it is obvious for anyone. What are the dependencies of your project : the jar used. Thanks a lot 2010/8/1 John Patterson jdpatter...@gmail.com Hi Jan, I have used the Java RemoteDatastore to upload and download data in bulk. It allows you to use the low-level API, JDO, Twig, Objectify or whatever to store your data remotely or locally. http://code.google.com/p/remote-datastore/ On 1 Aug 2010, at 19:49, Jan wrote: Hi, I still did not find any solution to use the bulk uploader (now version 1.3.5) locally with GAE/Java. Communication with the production server works fine. As I cannot find any information about this issue, I assume that nobody else faces this problem. Can someone please post the steps necessary to make the Python bulk loader tool work locally with a Java app? Are there any alternatives available for the Python bulk uploader? Thank you, Jan. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Enter Data using Queues/Task
I mean bulk put - that is using DatastoreService.put(Iterable) or JDO's makePersistentAll(...) If you do one call with many instances instead of many calls with one instance it will be a lot faster. On 31 Jul 2010, at 14:49, Sandeep Ghosh wrote: Hi, can i do bulk load in Java. Can you Please give me a sample code. Thanx Sandeep On Fri, Jul 30, 2010 at 6:22 PM, John Patterson jdpatter...@gmail.com wrote: On 30 Jul 2010, at 18:10, Sandeep Ghosh wrote: Hi, I am facing promlem of entering many data into the Google App engine database as its taking more then 30 sec time limit. PersistenceManager pm = PMF.get().getPersistenceManager(); for(;;) { EnterData data = new EnterData(key,value,new Text(totaData));// EnterData is my class Entity pm.makePersistent(data); } How can i use the Tasks/Queues in this scenario You could try using bulk put rather than making a datastore call for every iteration. You can also do many store operations in parallel if you use Twig like this: for (...) { datastore.store().instance(data).later(); } this is an non-blocking async call that returns immediately and lets you run all your operations in parallel. Otherwise, to use task queues I would recommend using the Deferred library to chain tasks: http://groups.google.com/group/google-appengine-java/browse_thread/thread/6f736624cc820d5b -- 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-java@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 . -- Kind words can be short and easy to speak, but their echoes are truly endless. Mother Teresa -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Enter Data using Queues/Task
On 30 Jul 2010, at 18:10, Sandeep Ghosh wrote: Hi, I am facing promlem of entering many data into the Google App engine database as its taking more then 30 sec time limit. PersistenceManager pm = PMF.get().getPersistenceManager(); for(;;) { EnterData data = new EnterData(key,value,new Text(totaData));// EnterData is my class Entity pm.makePersistent(data); } How can i use the Tasks/Queues in this scenario You could try using bulk put rather than making a datastore call for every iteration. You can also do many store operations in parallel if you use Twig like this: for (...) { datastore.store().instance(data).later(); } this is an non-blocking async call that returns immediately and lets you run all your operations in parallel. Otherwise, to use task queues I would recommend using the Deferred library to chain tasks: http://groups.google.com/group/google-appengine-java/browse_thread/thread/6f736624cc820d5b -- 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] Persistent Local Datastore
On 30 Jul 2010, at 07:09, Sydney wrote: I have a question that seems trivial but I can't figure out how to do it. I would like to be able to test my application but with persistent data. So I need to create a local environment to store the data. I read the documentation about unit testing but the default behavior is to store the data in memory and then wipe out everything. Is there a way to have an environment where the data would be persistent on the disk. I don't know if it matters but I am using twig-persist to deal with the datastore. private LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig().setBackingStoreLocation(DS_PATH)); You could copy the WEB-INF/appegine-generated/local_db.bin file with your data next to your test case and in a @Before method, delete the old copy and copy a new one to DS_PATH. You might also want to check out LocalDatastoreServiceTestConfig().setNoStrage(true) -- 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] Creating and storing unique values
On 29 Jul 2010, at 04:35, Sven wrote: I played around with a couple of ways to generate identifiers which do not look too simple (short integers, such as primary key values), not to complicated (too long or cryptic) and not too predictable (System time). My current favorite is to generate a random integer, to convert it to a alphabetical representation and to prefix it with a primary key value of a entity I store to the database when creating the identifier. You might want to instead use datastore's built in ability to efficiently create unique long ids and then when sending them to a client muddle them using a reversible hash function so they don't appear predictable. You will find that using long ids results in shorter Keys which saves space in the datastore. You can only guarantee a unique value in the datastore by creating an Entity with the value in its key. This does not need to be your main entity - just a special UniqueName type. Then you can start transaction load existing entity - fail if exists store new entity commit transaction Step 4 will fail if another request created an entity with the same key. when storing an entity with Twig its can check for existing entities automatically like: Transaction txn = datastore.beginTransaction(); datastore.store().instance(myUniqueName).ensureUniqueKey().now(); txn.commit(); The cool thing about .ensureUniqueKey() is that it also works for storing multiple instances in bulk. -- 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: Highly Frustrated By Entity Groups / Transactions
On 27 Jul 2010, at 21:18, Bill wrote: That's the way it is because that's the way we say it has to be is not an answer. There is no reason why selecting an object from one group is going to impact insert or update in a different entity group It doesn't! You just cannot do it in the same transaction like you are trying to. Do it outside of the transaction or in a different transaction. In order to insert the LineItem, you have to make sure the Product exists already. Not if you know it exists before the transaction and will not be deleted End of story. There's no way around this. In an RBDMs world, this would be accomplished by foreign key constraints. The GAE datastore can't do this. That's fine. I'm prepared for that. That's not what I'm complaining about. What I'm complaining about is really in three parts: 1. The LineItem can't contain a direct reference to Product. Product is not part of the LineItem entity group. Not a huge problem, becuase I can just use a key instead. If you use Twig it can - it supports unowned direct relationships. In fact in Twig you would probably be best to model the entire LineItem collection as @Embed'ded which will fetch the whole bunch in a single entity 2. As such, the underlying datastore has no concept of data integrity. Okay, fine, I'll have to do the bounds checking myself. The reality is that bounds checking is expensive and not friendly to distributed environments. . I'm asking for someone to rethink how it's made. Is that so unreasonable? Check out the Google I/O talks distributed transactions and transactions across data centers - you will see that there might be more to this than you assume. -- 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: Highly Frustrated By Entity Groups / Transactions
On 26 Jul 2010, at 19:21, Bill wrote: Good thought, but unforunately Elements already have a parent key in this manner. Elements are hierarchical, so that an Element's parent is another parent. Can an entity have more than one parent? I haven't tried that... An Entity can only have one parent as it is encoded into its key as a path of ancestors leading back to the root entity. Are all Element trees in the same domain? If so then you could make Domain implement Element and use it as the root of an element hierarchy. But this limits the concurrency of changes to Elements to a few writes per second per Domain. Do you update more than one element in a transaction? If not then an unowned relationship between entities would be fine. Are domains added and removed often? If not then is it sufficient to check that the domain exists before working on your elements outside of the transaction? Just never delete Domains - mark them as deleted instead. Your original problem Cannot operate on more than one was caused by trying to load an element in a different entity group. Even load operations on a non existent entities (e.g. Domain) are included in the transaction. That is how you can guarantee you don't clobber existing data when you do a put(...) in a transaction. You can think of starting a transaction as creating a timestamp on the root entity - any changes to any element in the entire entity group after that time and before the commit will cause a concurrency exception. I think of transactions on non-existing roots as making a kind of temporary place-holder root to which the timestamp is added. See this for more details: http://www.youtube.com/watch?v=tx5gdoNpcZM If non of those work arounds is sufficient then perhaps you need distributed transactions. The Slim3 project implements distributed transactions using the task queue and there was a project with the aim of making a generic solution: http://www.youtube.com/watch?v=IOtBlzsx0m8 Not sure what happened to that though. It is possible that you need a full RDBMS - in which case you will either need to patiently wait for the release of the App Engine one recently announced or run your own on a hosted server. Just don't expect the same scalability as you get from the datastore. -- 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: Highly Frustrated By Entity Groups / Transactions
On 27 Jul 2010, at 00:24, Bill wrote: This would completely disregard my business model. A Domain is not an Element, nor vice-versa. It's something analogous to making both classes Elephant and Corn implement the same interface because both have Ears. Ha ha well you would not actually need to have Domain implement Element to set up the same parent hierarchy. In fact a parent can be any Key - even one that does not exist. Not sure about JDO, but in Twig you can set the parent when you store the Element like this: datasore.store() .instances(someElements) .parent(theDomainOrElement) .returnKeysNow(); So the parent does not actually need to be referenced by the child or visa versa. And as you say, this limits the concurrency of changes to Elements to a few writes per second per Domain which would be very bad in an enterprise system. It all depends on the granularity of your element groups. If you can break them down sufficiently then you can still use transactions. I would advise using either the top level Element or a lower level element as your root entity. If you must use a lower level element you would need to remove the list of child keys from a Element to stop the cascade of updates. Every child has a reference to its parent encoded in its key which can be used to efficiently return the list of children using an ancestor query. Are domains added and removed often? If not then is it sufficient to check that the domain exists before working on your elements outside of the transaction? Just never delete Domains - mark them as deleted instead. No, they're not added and removed often, and as it happens the Domain does have an active flag. Nonetheless, I think you're missing the point. If I have to interleave a constraint check with transaction elements inside my destructive operations, I am defeating the principle of separation of concerns. I already have to manually verify foreign key relationships, which is blends concerns badly enough! Sounds like you have architected your solution to do too much in a single transaction which is just not performant (or possible) with the datastore. Time to re-think how you demarcate transactions. A succinct explanation for a transaction is that it is supposed to make different operations involving multiple resources atomic to the level of isolation specified. If you can only have one resource, or one small group of very tightly coupled resources, then transactions give you almost no benefit. At this point the only thing I can trust the transaction layer to do is to provide an optimistic locking version. Highly unsatisfactory, this is! The datastore is not an RDBMS. There are certain domain models which simply will not work on the datastore. If you cannot break down you data into small independent chunks your app will not work. I appreciate your goal of not compromising your data model and architecture for the practicalities of low-level concerns - but it just won't work here. GAE makes it impossible to ignore that fact that you are writing for a distributed system. You have to front up to these problems such as sharding and distributed transactions from day one. Even load operations on a non existent entities (e.g. Domain) are included in the transaction. Yeah. Why on earth? You can read a record a billion times and the it will not clobber an update. The load cannot clobber - its when you depend on the result of that load to do a write that you would hit a problem. In order to check that there is no existing entity with the same key before writing an entity the load must be a part of the transaction or another request could store an entity with the same key before you committed - clobber. Let me put it this way. I'm not looking for a way to hack this into working. I've already hacked it into working by adding an extra, very hacky layer to my architecture. What I would like is some sort of explanation, and hopefully some indication that at some point this is going to be fixed. I'd even be interested in helping out with said fix. Google, can you provide me with any answers? As I pointed out in my earlier reply - there is an RDBMS offering on the road map: http://code.google.com/appengine/business/roadmap.html That sounds like the fix you are looking for unless you can bash your data model into a shape more suited to a distributed system. -- 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: How to upload primary key as an id instead of name
I have used RemoteDatastore to upload and download data in bulk. You can set whatever id you want. http://code.google.com/p/remote-datastore/ On 23 Jul 2010, at 10:01, Subhash wrote: Hi Uberto, Otherwise if all your existing ids are numeric you can change bulkloader to create the id instead of name. How I can upload exiting data with id as numeric not with name as string. My .yaml file format is given below: transformers: - kind:User connector: csv connector_options: encoding: utf-8 columns: from_header property_map: - property: __key__ external_name: UserId export_transform: datastore.Key.id - property: UserName external_name: UserName Any help/suggestion in this regard will be highly appreciated. Regards, Subhash On Jul 22, 7:04 pm, Uberto Barbini ube...@ubiland.net wrote: On Thu, Jul 22, 2010 at 3:49 PM, MANISH DHIMAN manisd...@gmail.com wrote: Let me explain once again if I missed something earlier. I have an existing task management application wants to shift it now to google app engine. While I tried porting my existing data into google app engine using BulkLoader 1.3.5 with csv file, all my IDs saved as string (not as long). Suppose I was having a user withid=1 (long), it uploaded into google app engine withname=1(String). Now when I am saving new records directly on google app engine using my application running on google app engine, it saves an another record with id=1(this time it's long). So it's not possible for me to identifiy b/ w these two records (one withid=1 another withname=1). If you want to use names you have to put some logic in your app and create them also for new objects before saving. Otherwise if all your existing ids are numeric you can change bulkloader to create theidinstead ofname. I think gae behavior is clear, simple and consistent. cheers Uberto -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Invalid handle problem while using Transaction in Remote API.
On 22 Jul 2010, at 20:53, Subhash wrote: Hi I am using Remote API for connecing with my database while running code on my local machine. While I use transactions, it gives Invalid handle exception while saving my entity. If I don't use transaction. same code is running fine. Below is my code: I haven't used RemoteDatastore with transactions myself. This error looks similar to one thrown when using Iterators that need to fetch more data. It seems that there are some differences in the local and production servers that cannot be overcome. My only advice would be, don't use transactions! Sorry can't be more help. If this could be fixed with some help from a Googler with the inside know-how it would be really great. For me this is the ideal way to work with the datastore remotely - exactly the same way you do locally using the same APIs. -- 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: Entity relationship table
On 22 Jul 2010, at 02:53, dmetri333 wrote: private ListPerson friends = new ArrayListPerson(); You cannot have direct references for unowned relationships in JDO-GAE. Twig is the only datastore interface I know of that does allow this http://code.google.com/p/twig-persist/ -- 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: Length of member variable names contributes to storage space used?
Yes, the kind name is used in the key along with the id/name and ancestor path and all contribute to the size. Details: http://code.google.com/appengine/articles/storage_breakdown.html On 20 Jul 2010, at 15:41, Didier Durand wrote: @John Patterson, I did not mention the Class / Kind in my answer for the following reason: when I go to Datastore Viewer in the GAE Console and for every entity, I see Decoded key and Encoded key The encoded key is always - at least in my experience - a huge string whatever the size of the decoded key (including the string for Kind) is. So, does it really matter to have a short Kind name if the encoded version (probably the one used by Datastore) is huge? I would be interested to know this if anyone knows. regards didier On Jul 20, 8:27 am, John Patterson jdpatter...@gmail.com wrote: Also the class name is used in the Key as the kind. To get the shortest keys you would need to use short class names and numeric long ids (rather than Strings). Having small keys is important because they are stored many times per entity in indexes and more than once for the entity itself. I know that both Twig and Objectify have support for defining your own kind names without needing to actually rename your class to something incomprehensible. On 20 Jul 2010, at 11:11, Didier Durand wrote: Hi Mark, I would say yes: the datastore viewer shows the data with couples (name,value), name being the origianal attribute name in the java class. Moreover the doc says Each persistent field of the class represents a property of the entity, with the name of the property equal to the name of the field (with case preserved). at http://code.google.com/appengine/docs/java/datastore/dataclasses.html ... regards didier On Jul 19, 3:32 pm, Mark mar...@gmail.com wrote: Hi, I read in a post that the length of member variable names contributes to the amount of storage space your app uses, example: class Farm { private String mFarmersFavoriteCropToPlant; } would take more space to store than: class Farm { private String m; } might not matter for a handful of instances, but if I have thousands of records... is this true? Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group athttp://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: is there any solution/idea how blacklist IP in realtime ?
I believe some people maintain their own request count by ip address using memcache and restrict access using a filter. On 19 Jul 2010, at 20:09, Marcus Brody wrote: I am missing something ? So you guys are sitting in web console and watch how many requests came from given IP address ? This has to be done automatically ... somehow. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: rename a app-id
Yes you can transfer your data efficiently using the remote datastore: http://code.google.com/p/remote-datastore/ You basically read in bulk from one datastore then write in bulk to the other like this DatastoreService service = DatastoreServiceFactory.getDatastoreService(); RemoteDatastore.divert(http://aversion.latest.first-app-id.appsot.com/remote-datastore , first-app-id, aversion); QueryResultIteratable results = service.prepare(...); RemoteDatastore.bypass(); service.put(results); You need to use cursors to keep your place between reads and writes On 18 Jul 2010, at 20:34, aswath satrasala wrote: Any java tools to do this? On Sun, Jul 18, 2010 at 6:49 PM, Robert Lancer robert.lan...@gmail.com wrote: No, you have to create a new one and transfer everything. On Jul 18, 12:02 am, aswath satrasala aswath.satras...@gmail.com wrote: Hello, Is there any way I can rename my app-id. -Aswath -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] populate datastore with a new kind
On 18 Jul 2010, at 06:11, emmanuel harel wrote: Thanks John ! Is it possible to have a svn check out repository address ? Regards http://code.google.com/p/remote-datastore/ -- 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] populate datastore with a new kind
On 19 Jul 2010, at 01:23, emmanuel harel wrote: Thank you for the address but my tortoise svn is telling me this is not the address of the trunk Do i have to use TortoiseHG to check out this project ? Click on the link and all will be revealed -- 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] 500 Server Error. Please help
Look in the logs to see what is causing the error On 17 Jul 2010, at 19:37, jayati wrote: After much difficulty in deploying, (difficulty like: I was getting remote host closed connection many times and had to deploy again and again) It finally deployed correctly. But, I am getting error as follows: Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it The URL of the application is: jayati3644.appspot.com Could someone tell me why this is happening and what I should do to remove it. I have tried deploying the application a number of times and also making another application and deploying my project there but it doesn't work. Any help appreciated. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: memcache best practice or framework
On 17 Jul 2010, at 08:33, Shawn Brown wrote: Aaah, stick-cache has dependencies on twig and http://code.google.com/p/guava-libraries/ The utilities from twig can be pulled out easily but I haven't looked at guava-libraries/ Sorry the Twig ones slipped in by mistake. I'e just pushed an update to remove them. Mainly it was a class to help reduce the size of serialized instances by no including a class descriptor. Now it uses plain Java serialization. -- 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: Or filters cannot be applied to multiple properties
Yes, it is a replacement for Datanucleus designed specifically for the datastore. There are also other alternative frameworks such as Slim3, Objectify and SimpleDS all with their own unique features. Twig is the only one to support these merged OR queries you asked about. One more point - Twig executes the two branches of the OR query in *parallel* and then merges the results. It can do this because it has support for async (non-blocking) datastore operations. this means that even if you have hundreds of branches to your query they should return in roughly the same amount of time. On 15 Jul 2010, at 13:52, Vikas Hazrati wrote: Hi John, I quickly skimmed over the twig project, it seems that it works directly on top of the datastore. Does that mean that I do not need to use datanucleus or does twig work in conjunction with that and I would need both. On Jul 14, 9:30 pm, John Patterson jdpatter...@gmail.com wrote: Twig Persist has support for OR queries on multiple properties. http://code.google.com/p/twig-persist/ You example is coded like this: TypedFindCommand command = datastore.find().type(Person.class).addFilter)active, EQUAL, true); command.addChildQuery().addFilter(firstName, EQUAL, aFirstName); command.addChildQuery().addFilter(lastName, EQUAL, aLastName); IteratorPerson people = command.returnResultsNow(); On 14 Jul 2010, at 19:10, Vikas Hazrati wrote: Further to my previous question http://groups.google.com/group/google-appengine/browse_thread/ thread/... in which we were getting the following error 'or' filters can only check equality Now for the sake of datanucleus and datastore we changed the functionality to be equality for the time being so the query reads like @NamedQuery(name=User.findActiveByUsernamePattern, query=SELECT DISTINCT user + FROM User as user + WHERE (firstName = :pattern OR lastName = :pattern) + AND (active = true) + ORDER BY firstName, lastName) and now I get org.datanucleus.store.appengine.query.DatastoreQuery $UnsupportedDatastoreFeatureException: Problem with query SELECT FROM User as user WHERE (user.firstName = :pattern OR user.lastName = :pattern) AND (user.active = true) ORDER BY user.firstName, user.lastName: Or filters cannot be applied to multiple properties (found both firstName and lastName). A search on the net does not show too many results for the problem that we are facing. Are we the only ones facing this issue? No one else is trying to port a legacy application to GAE? Isn't this quite a normal routine query in JPA??? @datanucleus, @gae please respond. Regards | Vikas www.inphina.com www.thoughts.inphina.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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group athttp://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Or filters cannot be applied to multiple properties
Twig Persist has support for OR queries on multiple properties. http://code.google.com/p/twig-persist/ You example is coded like this: TypedFindCommand command = datastore.find().type(Person.class).addFilter)active, EQUAL, true); command.addChildQuery().addFilter(firstName, EQUAL, aFirstName); command.addChildQuery().addFilter(lastName, EQUAL, aLastName); IteratorPerson people = command.returnResultsNow(); On 14 Jul 2010, at 19:10, Vikas Hazrati wrote: Further to my previous question http://groups.google.com/group/google-appengine/browse_thread/ thread/... in which we were getting the following error 'or' filters can only check equality Now for the sake of datanucleus and datastore we changed the functionality to be equality for the time being so the query reads like @NamedQuery(name=User.findActiveByUsernamePattern, query=SELECT DISTINCT user + FROM User as user + WHERE (firstName = :pattern OR lastName = :pattern) + AND (active = true) + ORDER BY firstName, lastName) and now I get org.datanucleus.store.appengine.query.DatastoreQuery $UnsupportedDatastoreFeatureException: Problem with query SELECT FROM User as user WHERE (user.firstName = :pattern OR user.lastName = :pattern) AND (user.active = true) ORDER BY user.firstName, user.lastName: Or filters cannot be applied to multiple properties (found both firstName and lastName). A search on the net does not show too many results for the problem that we are facing. Are we the only ones facing this issue? No one else is trying to port a legacy application to GAE? Isn't this quite a normal routine query in JPA??? @datanucleus, @gae please respond. Regards | Vikas www.inphina.com www.thoughts.inphina.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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: How to upload primary key as an id instead of name
You can do this now using the RemoteDatastore Java utility http://code.google.com/p/remote-datastore/ For example, this code runs on your desktop and creates a single entity in your live datastore: // divert datastore operations to live application RemoteDatastore.install(); RemoteDatastore.divert(http://myVersion.latest.myApp.appspot.com/remote-datastore , myApp, myVersion); // create an entity with a numeric key Key key = KeyFactory.createKey(MyKindName, 35); Entity entity1 = new Entity(key); entity1.setProperty(property1, hello); // put entity to the remote datastore DatastoreService service = DatastoreServiceFactory.getDatastoreService(); datastore.put(entity1); This also works for bulk puts On 14 Jul 2010, at 03:37, Matthew Blain wrote: Sorry, this won't be available until 1.3.6. You should be able to do something like this: - property: __key__ external_name: CityId export_transform: datastore.Key.id import_transform: lambda value: datastore.Key.from_path('City', int(value)) --Matthew On Jul 10, 5:53 pm, Pasha pavel.selivers...@gmail.com wrote: Could you please post an example. Thank you in advance. On Jun 30, 1:18 pm, Matthew Blain matthew.bl...@google.com wrote: The 1.3.5 bulkloader client will allow you to specify a numeric key; you must use the Key constructor explicitly to do this, integers will still be converted into strings. On Jun 30, 12:12 am, MANISH DHIMAN manisd...@gmail.com wrote: Hi All When I upload data using CSV file on G A E. Primary key is stored there as a name instead of id. Example. Format of .yaml is Given below transformers: - kind: City connector: csv connector_options: encoding: utf-8 columns: from_header property_map: - property: __key__ external_name: CityId export_transform: datastore.Key.id - property: Name external_name: Name Primary key stored there is: ID/Name Name name=1Delhi name=2London Due to uploaded data with name=keyvalue, when I am try to get Key from any Fetched Entities, then Key contains only name value but id value is 0 and also name contains long value as a String instance. Is it possible to store primary key(Using CSV while uploading data) in a format given below : ID/Name Name id=1Delhi id=2London When data is stored with id=keyvalue, then Key contains id value is keyvalue as long instance. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: same application same datastore different subdomain
On 14 Jul 2010, at 01:39, Shyam Visamsetty wrote: You definitely cannot share the data store between two applications as of now. Technically you actually can share data between applications using RemoteDatastore - you can divert datastore operations to a different application. http://code.google.com/p/remote-datastore/ But you need to be careful not to break Googles terms of use by trying to spread you load between different applications to avoid fees. -- 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: Have to restart server to see changes when using Spring
JRebel woks well with App Engine to make restarting unnecessary most of the time. On 12 Jul 2010, at 19:53, Marcel Overdijk wrote: Anytime you change a Java file you have to restart the server to make the changes effective. On Jul 12, 7:59 am, decitrig rws...@gmail.com wrote: I have this controller set up right now, using Spring MVC 3.0: @Controller public class HelloController { @RequestMapping(/hello.htm) public String hello() { return helloView; } } It works fine - navigating to that link tries to call up the helloView view. However, if I want to make a change (like switching the return value to helloView1) I have to stop and restart the process in Eclipse. Making changes to e.g. index.jsp in the war/ directory are refreshed just fine. Is there something special I need to do for Spring? I'm just getting started with it with GAE, so I'm probably just doing something blinkered. Everything seems to *work* fine, I just have to restart for changes to be displayed. -- decitrig -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] How to upload primary key as an id instead of name
If you use the RemoteDatastore you have complete control in Java of what you key is. http://code.google.com/p/remote-datastore/ e.g. this code puts an entity with the id set in your remote datastore from your local machine: RemoteDatastore.install(); RemoteDatastore.divert(http://myVersion.latest.myApp.appspot.com/remote-datastore , myApp, myVersion); DatastoreService service = DatastoreServiceFactory.getDatastoreService(); Key key = KeyFactory.createKey(MyKindName, 35); Entity entity1 = new Entity(key); entity1.setProperty(property1, hello); datastore.put(Arrays.asList(entity1, entity2); On 30 Jun 2010, at 14:12, MANISH DHIMAN wrote: Hi All When I upload data using CSV file on G A E. Primary key is stored there as a name instead of id. Example. Format of .yaml is Given below transformers: - kind: City connector: csv connector_options: encoding: utf-8 columns: from_header property_map: - property: __key__ external_name: CityId export_transform: datastore.Key.id - property: Name external_name: Name Primary key stored there is: ID/Name Name name=1Delhi name=2London Due to uploaded data with name=keyvalue, when I am try to get Key from any Fetched Entities, then Key contains only name value but id value is 0 and also name contains long value as a String instance. Is it possible to store primary key(Using CSV while uploading data) in a format given below : ID/Name Name id=1Delhi id=2London When data is stored with id=keyvalue, then Key contains id value is keyvalue as long instance. -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Best performance for deleting and inserting entities
You can use the RemoteDatastore to do bulk puts directly from your desktop to the live datastore. It is extremely fast as it simply forwards on the binary protocol buffer data from one environment to another. http://code.google.com/p/remote-datastore/ On 10 Jul 2010, at 20:06, Robert Lancer wrote: What I would do is create a servlet that accepts a row or rows of the spreadsheet as params, and then create a local java app to read from the spreadsheet and gradually feed the spreadsheet to the servlet, app engine accepts up to 500 entities in a put. On Jul 10, 7:56 am, Ice13ill andrei.fifi...@gmail.com wrote: I want to upload big number of objects (from an xls file) into datastore. What is the best way (least time consuming) for inserting and deleting a collection of entities ? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Best performance for deleting and inserting entities
It is about the same speed. I've just uploaded 500,000 entities in about 4 hours (over a very slow connection) but my batch size was only 50 - perhaps larger batches would be faster. The new Mapping API sounds like the ideal solution but it is python only at the moment. You could use the Blobstore to roll your own using the Deferred class to process a byte range at a time. On 11 Jul 2010, at 01:35, Peter Ondruska wrote: John, is Remote Datastore faster than Python bulk insert? I tried to load millions of entities using Python but had to give up as it took about an hour to load just 100K. Peter On Jul 10, 4:22 pm, John Patterson jdpatter...@gmail.com wrote: You can use the RemoteDatastore to do bulk puts directly from your desktop to the live datastore. It is extremely fast as it simply forwards on the binary protocol buffer data from one environment to another. http://code.google.com/p/remote-datastore/ On 10 Jul 2010, at 20:06, Robert Lancer wrote: What I would do is create a servlet that accepts a row or rows of the spreadsheet as params, and then create a local java app to read from the spreadsheet and gradually feed the spreadsheet to the servlet, app engine accepts up to 500 entities in a put. On Jul 10, 7:56 am, Ice13ill andrei.fifi...@gmail.com wrote: I want to upload big number of objects (from an xls file) into datastore. What is the best way (least time consuming) for inserting and deleting a collection of entities ? -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group athttp://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: memcache best practice or framework
On 11 Jul 2010, at 09:12, Shawn Brown wrote: MemoryCacheString, Hotel mc = new MemoryCacheString, Hotel(50); but on Jun 22, 2010; that class was deleted revision ded84586e4Delete /src/main/java/com/vercer/cache/ MemoryCache.java Is it no longer supported? Try an update now - it is back. -- 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] Desarrollo de Aplicaciones con Eclipse
Es un pregunta muy amplio. Por eso no podemos ayudar mucho. On 9 Jul 2010, at 23:57, Edixon Polanco wrote: Buenas Tardes. Si quiero desarrollar la aplicación con Google App Engine. Me pueden ayudar? Gracias por su atención. Saludos, Edixon 2010/7/7 Guillermo Schwarz guillermo.schw...@gmail.com Edixon, ¿Lo quieres hacer en Google Application Engine? Saludos, Guillermo. 2010/7/6 Edixon Polanco edixon...@gmail.com Buenas Tardes. Como puedo empezar a desarrollar una aplicación que funcione como una biblioteca en la cual pueda subir mis archivos o libros y poder buscar dentro de ellos Nota: Espero me puedan dar alguna idea Gracias. -- 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-java@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 . -- Saludos cordiales, Guillermo Schwarz Sun Certified Enterprise Architect -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Error: The API package 'urlfetch' or call 'Fetch()' was not found.
This RemoteDatastore code does what you are after to allow you to upload and download data from the datastore from a normal JAva application. You can copy the Environment stuff from there: http://code.google.com/p/remote-datastore/source/browse/src/main/java/com/vercer/engine/proxy/RemoteDatastore.java#29 Line 29 sets the dummy environment On 7 Jul 2010, at 20:33, [jake] wrote: I'm using jetty outside of the dev_appserver.sh environment. When I try to use com.google.appengine.api.urlfetch package, I get the following error: The API package 'urlfetch' or call 'Fetch()' was not found. [Thrown class com.google.apphosting.api.ApiProxy $CallNotFoundException] I don't get any errors trying to import com.google.appengine.api.urlfetch so I think the problem lies in how I set up an ApiProxy Environment. I'm probably missing the relevant entries to enable urlfetch. Any tips on how to make this service available outside of the dev_appserver.sh environment? [jake] -- 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-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Re: Any ETA for a backup/restore facility?
I have had success uploading data in bulk from Java using this RemoteDatastore code: http://code.google.com/p/remote-datastore/ It is very easy to use and because it operates at the binary protocol buffer level it is very fast Here is an example of using it to upload data: public class UploadData { public static void main(String[] args) { // only call install once - often in a static initializer RemoteDatastore.install(); // tell remote datastore where to connect RemoteDatastore.divert(http://myVersion.latest.myApp.appspot.com/remote-datastore , myApp, myVersion); // use standard datastore API to get a datastore service instance DatastoreService service = DatastoreServiceFactory.getDatastoreService(); // create some entities Entity entity1 = new Entity(myKindName); entity1.setProperty(property1, hello); Entity entity2 = new Entity(myKindName); entity2.setProperty(property1, there); // sends the data over http to your remote servlet and stores it in the live datastore datastore.put(Arrays.asList(entity1, entity2); } } -- 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] Jetty binds to localhost and not my wireless IP
Try -bindAddress 0.0.0.0 It works for connecting to GWT from a different machine but I never had a problem connecting to the servlet engine. On 2 Jul 2010, at 03:25, keyeslabs wrote: I'm running GAE eclipse dev environment (GAE installed via the eclipse update mechanism). When I run my GAE application locally, it starts jetty, which seems to bind to localhost (127.0.0.1) rather than my machine's IP associated with my wireless card. When I try to connect to the running GAE app from another machine using, for example, http://192.168.1.100:, the connection fails. Things work from the machine on which the app is running by using http://localhost:. So... my question is, how can I make jetty bind to more than one IP, or perhaps to a different IP? Are there command-line params that I can pass to the Eclipse target? Thanks for the help! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
Re: [appengine-java] Jetty binds to localhost and not my wireless IP
Try -bindAddress 0.0.0.0 - it works for GWT, not sure about Jetty. On 2 Jul 2010, at 03:25, keyeslabs wrote: I'm running GAE eclipse dev environment (GAE installed via the eclipse update mechanism). When I run my GAE application locally, it starts jetty, which seems to bind to localhost (127.0.0.1) rather than my machine's IP associated with my wireless card. When I try to connect to the running GAE app from another machine using, for example, http://192.168.1.100:, the connection fails. Things work from the machine on which the app is running by using http://localhost:. So... my question is, how can I make jetty bind to more than one IP, or perhaps to a different IP? Are there command-line params that I can pass to the Eclipse target? Thanks for the help! -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en . -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.