Re: [appengine-java] ANN: BatchFB 2.1, a Java Facebook library with automatic batching
Nice job, thanks for sharing! On Tue, Jul 12, 2011 at 2:55 AM, Jeff Schnitzer j...@infohazard.org wrote: This is the first time I've announced this opensource project in this forum because until now there wasn't anything GAE-specific about it. You can still use BatchFB outside of GAE, but now BatchFB will use asynchronous fetching on App Engine to issue multiple batches to Facebook in parallel. This is *the* fastest way to pull down significant quantities of data from Facebook. http://batchfb.googlecode.com/ Here is a quick snippet of code: --- Batcher batcher = new FacebookBatcher(accessToken); LaterUser me = batcher.graph(me, User.class); LaterUser mark = batcher.graph(markzuckerberg, User.class); LaterListUser myFriends = batcher.query( SELECT uid, first_name, pic_square FROM user WHERE uid IN + (SELECT uid2 FROM friend WHERE uid1 = + myId + ), User.class); LaterUser bob = batcher.queryFirst(SELECT timezone FROM user WHERE uid = + bobsId, User.class); PagedLaterPost feed = batcher.paged(me/feed, Post.class); // No calls to Facebook have been made yet. The following get() will execute the // whole batch as a single Facebook call. String timezone = bob.get().timezone; --- You can stack up hundreds of Graph and FQL requests using the Future?-like interface; BatchFB will group them into batches and execute the batches in parallel on App Engine. Enjoy, Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-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. -- Guit: Elegant, beautiful, modular and *production ready* gwt applications. http://code.google.com/p/guit/ -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-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: Multi-threaded datastore test in JUnit
I was looking to do this with the datastore actually. I just found a nice way of doing it (this will probably also work for memcache...?) At the beginning of you test case (in the main thread) put: final Environment testEnvironment = ApiProxy.getCurrentEnvironment(); And then inside your other thread(s) put: ApiProxy.setEnvironmentForCurrentThread(testEnvironment); No Need to build a fake test environment from scratch :). Cheers, Gabriel On Jul 11, 9:46 am, Frank Leon Rose frankleonr...@gmail.com wrote: Gabriel, All the code is in my two prior posts. What happens when you run the test code above? -- 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] Retreive Domain Name of Google Apps Api
Hi, I am trying to retreive Domain name but the code i have written it returning gmail.com. package com; import java.io.IOException; import com.google.appengine.api. users.UserService; import com.google.appengine.api.users.UserServiceFactory; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.oauth.OAuthRequestException; import com.google.appengine.api.oauth.OAuthService; import com.google.appengine.api.oauth.OAuthServiceFactory; import com.google.appengine.api.users.User; import com.google.gwt.core.client.GWT; @SuppressWarnings(serial) public class GetDomainServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType(text/plain); resp.getWriter().println(Hello, world); resp.getWriter().println(Hllo); UserService userService = UserServiceFactory.getUserService(); String thisURL = req.getRequestURI(); if (req.getUserPrincipal() != null) { resp.getWriter().println(In if); resp.getWriter().println(pHello, + req.getAuthType()); } else { resp.getWriter().println(In else); resp.getWriter().println(pPlease a href=\ + userService.createLoginURL(thisURL) + \sign in/a./p); resp.getWriter().println(pHello, + req.getQueryString()); } OAuthService oauth = OAuthServiceFactory.getOAuthService(); try { User user = oauth.getCurrentUser(); resp.getWriter().println(br/Get Current Domain : + user.getAuthDomain()); } catch (OAuthRequestException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } -- 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/-/iAkRdP6pspUJ. 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: How to ensure two entities are updated WITHOUT using transactions?
Here's an implementation. You might want to add checks for read staleness, and think about using a task structure for the operations to make retry easier. The unit test structure is from from http://code.google.com/appengine/docs/java/howto/unittesting.html package com.climbwithyourfeet.events.dao; import java.util.ArrayList; import javax.jdo.Transaction; import javax.jdo.PersistenceManagerFactory; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import java.util.logging.Logger; import com.google.appengine.tools.development.LocalDatastoreTestCase; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TwoOperationPseudoTransactionTest extends LocalDatastoreTestCase { private Logger log = Logger.getLogger(this.getClass().getName()); private UserGameCredits userGameCredits = new UserGameCredits(); private UserAccount userAccount = new UserAccount(); public TwoOperationPseudoTransactionTest() { super(); } @Before public void setUp() throws Exception { super.setUp(); } @After public void tearDown() throws Exception { super.tearDown(); } public class UserGameCredits { public boolean add(int credits) { return true; } } public class UserAccount { public double getBalance() { return 123456789.00; } public boolean add(int credits) { return true; } public boolean subtractAmount(double balance, double amount, long timestamp) { return true; } } private void handleRetry(UserGameCredits userGameCredits, UserAccount userAccount) { } @Test public void testCredits() throws Exception { /* * Goal: * Update 2 entities which reside in 2 different entity groups. * The updates must both pass or both fail. * * Example: * The updates are 2 operations wrapped in a try/catch/ finally block. * The entities are UserGameCredits and UserAccount and are in diff entity groups. * One transaction, the current transaction, is available for the application, *so only one transaction-wrapped-operation can be rolled back in the *finally clause if needed. * * GameCredits update has higher priority as the user may need to see *it immediately. The payment processing may take longer - so UserAccount consistency *can have slightly less priority. */ PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory(transactions-optional); PersistenceManager pm = null; Transaction tx = null; final ListBoolean completedOp1 = new ArrayListBoolean(); final ListBoolean completedOp2 = new ArrayListBoolean(); int credits = 10; final double cost = 1; final double accountBalance = userAccount.getBalance(); final long timestamp = System.currentTimeMillis(); try { // change to simulate pass or fail boolean testShouldPass = false; pm = pmfInstance.getPersistenceManager(); tx = pm.currentTransaction(); tx.setIsolationLevel(read-committed); tx.begin(); tx.setSynchronization(new javax.transaction.Synchronization() { public void beforeCompletion() { // before commit or rollback log.info(before transaction); } public void afterCompletion(int status) { if (status == javax.transaction.Status.STATUS_ROLLEDBACK) { // rollback log.severe(rollback transaction: userGameCredits failed to update. submitting retry); handleRetry(userGameCredits, userAccount); } else if (status == javax.transaction.Status.STATUS_COMMITTED) { // commit log.info(commit: userGameCredits are updated); completedOp1.add(Boolean.TRUE); // TODO: possibly replace this w/ start in a task // The update task should have logic to assert state before applying operation boolean done = userAccount.subtractAmount(accountBalance, cost, timestamp); completedOp2.add(done); } } }); log.info(updating user game credits); //pm.refresh(userAccount); userGameCredits.add(10); pm.flush(); if (testShouldPass) { log.info(committing); tx.commit(); } else { log.info(rollback); tx.rollback(); }
[appengine-java] Re: 1.5.2 SDK Prerelease
Great job! May I know more about *t**he datastore now never requires an exploding index *? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. 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: [google-appengine] Re: 1.5.2 SDK Prerelease
exactly the same question ;) On Tue, Jul 12, 2011 at 11:21 AM, Max thebb...@gmail.com wrote: Great job! May I know more about *t**he datastore now never requires an exploding index*? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine 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: How to ensure two entities are updated WITHOUT using transactions?
That's awesome, many thanks for taking the time to explain that. On Jul 12, 9:37 am, Nichole nichole.k...@gmail.com wrote: Here's an implementation. You might want to add checks for read staleness, and think about using a task structure for the operations to make retry easier. The unit test structure is from fromhttp://code.google.com/appengine/docs/java/howto/unittesting.html package com.climbwithyourfeet.events.dao; import java.util.ArrayList; import javax.jdo.Transaction; import javax.jdo.PersistenceManagerFactory; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import java.util.logging.Logger; import com.google.appengine.tools.development.LocalDatastoreTestCase; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TwoOperationPseudoTransactionTest extends LocalDatastoreTestCase { private Logger log = Logger.getLogger(this.getClass().getName()); private UserGameCredits userGameCredits = new UserGameCredits(); private UserAccount userAccount = new UserAccount(); public TwoOperationPseudoTransactionTest() { super(); } @Before public void setUp() throws Exception { super.setUp(); } @After public void tearDown() throws Exception { super.tearDown(); } public class UserGameCredits { public boolean add(int credits) { return true; } } public class UserAccount { public double getBalance() { return 123456789.00; } public boolean add(int credits) { return true; } public boolean subtractAmount(double balance, double amount, long timestamp) { return true; } } private void handleRetry(UserGameCredits userGameCredits, UserAccount userAccount) { } @Test public void testCredits() throws Exception { /* * Goal: * Update 2 entities which reside in 2 different entity groups. * The updates must both pass or both fail. * * Example: * The updates are 2 operations wrapped in a try/catch/ finally block. * The entities are UserGameCredits and UserAccount and are in diff entity groups. * One transaction, the current transaction, is available for the application, * so only one transaction-wrapped-operation can be rolled back in the * finally clause if needed. * * GameCredits update has higher priority as the user may need to see * it immediately. The payment processing may take longer - so UserAccount consistency * can have slightly less priority. */ PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory(transactions-optional); PersistenceManager pm = null; Transaction tx = null; final ListBoolean completedOp1 = new ArrayListBoolean(); final ListBoolean completedOp2 = new ArrayListBoolean(); int credits = 10; final double cost = 1; final double accountBalance = userAccount.getBalance(); final long timestamp = System.currentTimeMillis(); try { // change to simulate pass or fail boolean testShouldPass = false; pm = pmfInstance.getPersistenceManager(); tx = pm.currentTransaction(); tx.setIsolationLevel(read-committed); tx.begin(); tx.setSynchronization(new javax.transaction.Synchronization() { public void beforeCompletion() { // before commit or rollback log.info(before transaction); } public void afterCompletion(int status) { if (status == javax.transaction.Status.STATUS_ROLLEDBACK) { // rollback log.severe(rollback transaction: userGameCredits failed to update. submitting retry); handleRetry(userGameCredits, userAccount); } else if (status == javax.transaction.Status.STATUS_COMMITTED) { // commit log.info(commit: userGameCredits are updated); completedOp1.add(Boolean.TRUE); // TODO: possibly replace this w/ start in a task // The update task should have logic to assert state before applying operation boolean done = userAccount.subtractAmount(accountBalance, cost, timestamp); completedOp2.add(done); } } }); log.info(updating user game credits); //pm.refresh(userAccount);
[appengine-java] Re: Multi-threaded datastore test in JUnit
Yeah, that's much cleaner. 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.
Re: [appengine-java] Best way to work with a CellTable and many-to-one relationship with objectify?
Thanks for the great reply as always Jeff. In contrast to you, my app is going to be used only by employees of my company, so preferably I would like to have all data sent over the wire encrypted. We're talking about employees of my company accessing data about our clients - so it is very sensitive data and I would think therefore that whether I need to use a DTO or not, everything should be private. Is this correct, or is it ok to use public properties without getters and setters as long as I'm encrypting the data? Cheers, Drew -- 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/-/YQX1oC92g6AJ. 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] Gmail's Report a bug like feature in gwt gae application
Hello, We have a GWT application running on Google app engine. Is it possible to achieve this feature on Google App Engine. I have found some java programs which convert html files to png. But these programs are using java classes which are not included in white list by Google App Engine. Is it possible to achieve this feature on app engine? -- 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] Best way to work with a CellTable and many-to-one relationship with objectify?
The public/private/protected/package status of java fields is 100% irrelevant from a security perspective. It's just there to help keep your code clean. The data is still being passed across the wire in a simple, easily-decoded protocol that any sniffer can translate. If you're passing sensitive data across the internet, you *certainly* need to use SSL at the very least. Having getters/setters vs public fields is purely a stylistic concern in this context. Jeff On Tue, Jul 12, 2011 at 4:52 AM, Drew Spencer slugmand...@gmail.com wrote: Thanks for the great reply as always Jeff. In contrast to you, my app is going to be used only by employees of my company, so preferably I would like to have all data sent over the wire encrypted. We're talking about employees of my company accessing data about our clients - so it is very sensitive data and I would think therefore that whether I need to use a DTO or not, everything should be private. Is this correct, or is it ok to use public properties without getters and setters as long as I'm encrypting the data? Cheers, Drew -- 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/-/YQX1oC92g6AJ. 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.
[appengine-java] Call to channel.open() fails silently
Hello, I am currently building a GWT + GAE app that uses Channels, thanks to the http://code.google.com/p/gwt-gae-channel/ library. Everything goes well locally (both hosted and web mode), but when the deployed app fails silently. I have several pages, and would like to use a Channel in several of them. From what I read from the GAE doc, you can have only one Channel open at any given time on one page. I thus decided to reuse my Channel across the different pages (for now storing it as a static on the client side). *First page* * * On my landing page, I call ChannelFactory.createChannel(final String clientId, final ChannelCreatedCallback callback), which basically does: return new $wnd.goog.appengine.Channel(clientId); ... callback.onChannelCreated(channel) and in the callback, I do channel.open(SocketListener) channel.open() is basically: var socket = this.open(); socket.onopen = socket.onclose = ... *Second page* On the next page, I simply get the reference to the channel, and again call channel.open(SocketListener) At that point, nothing happens, and no log is produced. Looking at the quota detail in the appengine dashboard, I can confirm that only 1 channel is opened, so it should not be an issue with this. Would you have any idea as to what is going on? -- seb -- 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: Call to channel.open() fails silently
The only thing I can find that seems strange is this request (captured using Chrome Developer tools): 1. Request URL: http://test.latest.thefiveorbs2.appspot.com/_ah/channel/jsapi 2. Request Method: GET 3. Status Code: 302 Found By the way, the test URL is http://test.latest.thefiveorbs2.appspot.com/ Thanks for any help, -- seb 2011/7/12 Sébastien Tromp sebastien.tr...@gmail.com Hello, I am currently building a GWT + GAE app that uses Channels, thanks to the http://code.google.com/p/gwt-gae-channel/ library. Everything goes well locally (both hosted and web mode), but when the deployed app fails silently. I have several pages, and would like to use a Channel in several of them. From what I read from the GAE doc, you can have only one Channel open at any given time on one page. I thus decided to reuse my Channel across the different pages (for now storing it as a static on the client side). *First page* * * On my landing page, I call ChannelFactory.createChannel(final String clientId, final ChannelCreatedCallback callback), which basically does: return new $wnd.goog.appengine.Channel(clientId); ... callback.onChannelCreated(channel) and in the callback, I do channel.open(SocketListener) channel.open() is basically: var socket = this.open(); socket.onopen = socket.onclose = ... *Second page* On the next page, I simply get the reference to the channel, and again call channel.open(SocketListener) At that point, nothing happens, and no log is produced. Looking at the quota detail in the appengine dashboard, I can confirm that only 1 channel is opened, so it should not be an issue with this. Would you have any idea as to what is going on? -- seb -- 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: [google-appengine] Re: 1.5.2 SDK Prerelease
Hi, It means that there are alternatives to using exploding indexes (i.e. they are no longer required to execute a given query). You can still have them (there are cases where they are useful, namely to optimize query speed over write cost) and the SDK will still suggest them in many cases (as it is hard to detect them by looking at the query). However, the SDK will no long suggest indexes with the same property repeated multiple times (as these are obviously an exploding index). One example where this is very important is SearchableModelhttp://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/search/__init__.py, which previously was crippled by exploding indexes if you tried to sort results (and now works as expected). We are working on an article that goes through how to decided when to remove or keep them, but for now the Google IO talk from 2010, Next Gen Querieshttp://www.google.com/events/io/2010/sessions/next-gen-queries-appengine.html (The Zigzag Merge Join += Sort part), is a good resource if you want a really deep dive on how this works. - Alfred On Tue, Jul 12, 2011 at 2:24 AM, Pascal Voitot Dev pascal.voitot@gmail.com wrote: exactly the same question ;) On Tue, Jul 12, 2011 at 11:21 AM, Max thebb...@gmail.com wrote: Great job! May I know more about *t**he datastore now never requires an exploding index*? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine 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.
[appengine-java] Apache Shiro on Google App Engine
If anyone is interested, I've posted a short guide to using Apache Shiro on Google App Engine: http://objectuser.wordpress.com/2011/06/30/apache-shiro-on-google-app-engine/ It focuses on my current stack, which includes Google Guice. I also use GWT, but that should mostly be irrelevant. -- 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/-/Y2s1I4sg07AJ. 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] Unauthorized Sender Error when trying to send an email (User logged in with Google Account)
I are seeing an exception when trying to send an email via the app engine. The email is being sent via the current user account who is signed in to the app with their Google account (not a gmail account, but an email account that is a verified google account and the corresponding account verification url within the email from Google has been clicked.) Why could this be happening? The administrator account can also send out emails successfully, but why are current logged in users getting this error? Please help! JAVAX.MAIL.SENDFAILEDEXCEPTION: SEND FAILURE (JAVAX.MAIL.MESSAGINGEXCEPTION: ILLEGAL ARGUMENTS (JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER)) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:163) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:48) COM.GOOGLE.APPHOSTING.UTILS.SERVLET.TRANSACTIONCLEANUPFILTER.DOFILTER(TRANSACTIONCLEANUPFILTER.JAVA:43) AT ORG.MORTBAY.JETTY.SERVLET.SERVLETHANDLER$CACHEDCHAIN.DOFILTER(SERVLETHANDLER.JAVA:1157) AT ORG.MORTBAY.JETTY.SERVLET.SERVLETHANDLER.HANDLE(SERVLETHANDLER.JAVA:388) AT ORG.MORTBAY.JETTY.SECURITY.SECURITYHANDLER.HANDLE(SECURITYHANDLER.JAVA:216) AT ORG.MORTBAY.JETTY.SERVLET.SESSIONHANDLER.HANDLE(SESSIONHANDLER.JAVA:182) AT ORG.MORTBAY.JETTY.HANDLER.CONTEXTHANDLER.HANDLE(CONTEXTHANDLER.JAVA:765) AT ORG.MORTBAY.JETTY.WEBAPP.WEBAPPCONTEXT.HANDLE(WEBAPPCONTEXT.JAVA:418) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.APPVERSIONHANDLERMAP.HANDLE(APPVERSIONHANDLERMAP.JAVA:249) AT ORG.MORTBAY.JETTY.HANDLER.HANDLERWRAPPER.HANDLE(HANDLERWRAPPER.JAVA:152) AT ORG.MORTBAY.JETTY.SERVER.HANDLE(SERVER.JAVA:326) AT ORG.MORTBAY.JETTY.HTTPCONNECTION.HANDLEREQUEST(HTTPCONNECTION.JAVA:542) AT ORG.MORTBAY.JETTY.HTTPCONNECTION$REQUESTHANDLER.HEADERCOMPLETE(HTTPCONNECTION.JAVA:923) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.RPCREQUESTPARSER.PARSEAVAILABLE(RPCREQUESTPARSER.JAVA:76) AT ORG.MORTBAY.JETTY.HTTPCONNECTION.HANDLE(HTTPCONNECTION.JAVA:404) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.JETTYSERVLETENGINEADAPTER.SERVICEREQUEST(JETTYSERVLETENGINEADAPTER.JAVA:135) AT COM.GOOGLE.APPHOSTING.RUNTIME.JAVARUNTIME.HANDLEREQUEST(JAVARUNTIME.JAVA:260) AT COM.GOOGLE.APPHOSTING.BASE.RUNTIMEPB$EVALUATIONRUNTIME$2.HANDLEREQUEST(RUNTIMEPB.JAVA:9673) AT COM.GOOGLE.NET.RPC.IMPL.RPCUTIL.RUNRPCINAPPLICATION(RPCUTIL.JAVA:422) AT COM.GOOGLE.NET.RPC.IMPL.SERVER$RPCTASK.RUNINCONTEXT(SERVER.JAVA:573) AT COM.GOOGLE.TRACING.TRACECONTEXT$TRACECONTEXTRUNNABLE$1.RUN(TRACECONTEXT.JAVA:448) AT COM.GOOGLE.TRACING.TRACECONTEXT.RUNINCONTEXT(TRACECONTEXT.JAVA:688) AT COM.GOOGLE.TRACING.TRACECONTEXT$ABSTRACTTRACECONTEXTCALLBACK.RUNININHERITEDCONTEXTNOUNREF(TRACECONTEXT.JAVA:326) AT COM.GOOGLE.TRACING.TRACECONTEXT$ABSTRACTTRACECONTEXTCALLBACK.RUNININHERITEDCONTEXT(TRACECONTEXT.JAVA:318) AT COM.GOOGLE.TRACING.TRACECONTEXT$TRACECONTEXTRUNNABLE.RUN(TRACECONTEXT.JAVA:446) AT JAVA.UTIL.CONCURRENT.THREADPOOLEXECUTOR.RUNWORKER(THREADPOOLEXECUTOR.JAVA:1110) AT JAVA.UTIL.CONCURRENT.THREADPOOLEXECUTOR$WORKER.RUN(THREADPOOLEXECUTOR.JAVA:603) AT JAVA.LANG.THREAD.RUN(THREAD.JAVA:636) CAUSED BY: JAVAX.MAIL.MESSAGINGEXCEPTION: ILLEGAL ARGUMENTS (JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER) AT COM.GOOGLE.APPENGINE.API.MAIL.STDIMPL.GMTRANSPORT.SENDMESSAGE(GMTRANSPORT.JAVA:255) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:95) ... 39 MORE CAUSED BY: JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER AT COM.GOOGLE.APPENGINE.API.MAIL.MAILSERVICEIMPL.DOSEND(MAILSERVICEIMPL.JAVA:104) AT COM.GOOGLE.APPENGINE.API.MAIL.MAILSERVICEIMPL.SEND(MAILSERVICEIMPL.JAVA:32) AT COM.GOOGLE.APPENGINE.API.MAIL.STDIMPL.GMTRANSPORT.SENDMESSAGE(GMTRANSPORT.JAVA:247) ... 40 MORE -- 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/-/w250_e6JpfQJ. 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: How to ensure two entities are updated WITHOUT using transactions?
Yes, you'll need to add structure to the entity update method or surrounding it to persist the state of the entity (and use real entities! The test structure is purely to provide runnable code to demonstrate one way to approach the problem). For the 2nd update, if you recently fetched or refreshed the entity and the persistenceManager is still open, then the entity is still attached and all you need to use is persistenceManager.flush() before you close it. It doesn't do harm, however, to use makePersistent(entity) if the entity isn't a detached transient instance and you certainly do want to use makePersistent(entity) if it is. And yes, the return value of makePersistent(entity) is a good check for the last operation being successful: the return value is the parameter instance for parameters in the transient or persistent state, or the corresponding persistent instance for detached parameter instances :) http://download.oracle.com/docs/cd/E13222_01/wls/docs103/kodo/jdo-javadoc/index.html?javax/jdo/JDOUserCallbackException.html On Jul 12, 7:20 am, mscwd01 mscw...@gmail.com wrote: One final question. In the afterCompletion method when the userAccount has the amount subtracted, would you call pm.makePersistent() on the userAccount object? If you don't it wouldn't persist the change made to the userAccount surely? If this is the case would you just look to see that the object returned by makePersistent is not null to ensure the update to userAccount was saved successfully? Thanks On Jul 12, 9:37 am, Nichole nichole.k...@gmail.com wrote: Here's an implementation. You might want to add checks for read staleness, and think about using a task structure for the operations to make retry easier. The unit test structure is from fromhttp://code.google.com/appengine/docs/java/howto/unittesting.html package com.climbwithyourfeet.events.dao; import java.util.ArrayList; import javax.jdo.Transaction; import javax.jdo.PersistenceManagerFactory; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import java.util.logging.Logger; import com.google.appengine.tools.development.LocalDatastoreTestCase; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; public class TwoOperationPseudoTransactionTest extends LocalDatastoreTestCase { private Logger log = Logger.getLogger(this.getClass().getName()); private UserGameCredits userGameCredits = new UserGameCredits(); private UserAccount userAccount = new UserAccount(); public TwoOperationPseudoTransactionTest() { super(); } @Before public void setUp() throws Exception { super.setUp(); } @After public void tearDown() throws Exception { super.tearDown(); } public class UserGameCredits { public boolean add(int credits) { return true; } } public class UserAccount { public double getBalance() { return 123456789.00; } public boolean add(int credits) { return true; } public boolean subtractAmount(double balance, double amount, long timestamp) { return true; } } private void handleRetry(UserGameCredits userGameCredits, UserAccount userAccount) { } @Test public void testCredits() throws Exception { /* * Goal: * Update 2 entities which reside in 2 different entity groups. * The updates must both pass or both fail. * * Example: * The updates are 2 operations wrapped in a try/catch/ finally block. * The entities are UserGameCredits and UserAccount and are in diff entity groups. * One transaction, the current transaction, is available for the application, * so only one transaction-wrapped-operation can be rolled back in the * finally clause if needed. * * GameCredits update has higher priority as the user may need to see * it immediately. The payment processing may take longer - so UserAccount consistency * can have slightly less priority. */ PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory(transactions-optional); PersistenceManager pm = null; Transaction tx = null; final ListBoolean completedOp1 = new ArrayListBoolean(); final ListBoolean completedOp2 = new ArrayListBoolean(); int credits = 10; final double cost = 1; final double accountBalance = userAccount.getBalance(); final long timestamp = System.currentTimeMillis(); try { // change to simulate pass or fail boolean
Re: [appengine-java] Unauthorized Sender Error when trying to send an email (User logged in with Google Account)
Hi, Did you add the sender account to your permissions list? On Tue, Jul 12, 2011 at 10:22 PM, kghate kgh...@gmail.com wrote: I are seeing an exception when trying to send an email via the app engine. The email is being sent via the current user account who is signed in to the app with their Google account (not a gmail account, but an email account that is a verified google account and the corresponding account verification url within the email from Google has been clicked.) Why could this be happening? The administrator account can also send out emails successfully, but why are current logged in users getting this error? Please help! JAVAX.MAIL.SENDFAILEDEXCEPTION: SEND FAILURE (JAVAX.MAIL.MESSAGINGEXCEPTION: ILLEGAL ARGUMENTS (JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER)) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:163) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:48) COM.GOOGLE.APPHOSTING.UTILS.SERVLET.TRANSACTIONCLEANUPFILTER.DOFILTER(TRANSACTIONCLEANUPFILTER.JAVA:43) AT ORG.MORTBAY.JETTY.SERVLET.SERVLETHANDLER$CACHEDCHAIN.DOFILTER(SERVLETHANDLER.JAVA:1157) AT ORG.MORTBAY.JETTY.SERVLET.SERVLETHANDLER.HANDLE(SERVLETHANDLER.JAVA:388) AT ORG.MORTBAY.JETTY.SECURITY.SECURITYHANDLER.HANDLE(SECURITYHANDLER.JAVA:216) AT ORG.MORTBAY.JETTY.SERVLET.SESSIONHANDLER.HANDLE(SESSIONHANDLER.JAVA:182) AT ORG.MORTBAY.JETTY.HANDLER.CONTEXTHANDLER.HANDLE(CONTEXTHANDLER.JAVA:765) AT ORG.MORTBAY.JETTY.WEBAPP.WEBAPPCONTEXT.HANDLE(WEBAPPCONTEXT.JAVA:418) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.APPVERSIONHANDLERMAP.HANDLE(APPVERSIONHANDLERMAP.JAVA:249) AT ORG.MORTBAY.JETTY.HANDLER.HANDLERWRAPPER.HANDLE(HANDLERWRAPPER.JAVA:152) AT ORG.MORTBAY.JETTY.SERVER.HANDLE(SERVER.JAVA:326) AT ORG.MORTBAY.JETTY.HTTPCONNECTION.HANDLEREQUEST(HTTPCONNECTION.JAVA:542) AT ORG.MORTBAY.JETTY.HTTPCONNECTION$REQUESTHANDLER.HEADERCOMPLETE(HTTPCONNECTION.JAVA:923) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.RPCREQUESTPARSER.PARSEAVAILABLE(RPCREQUESTPARSER.JAVA:76) AT ORG.MORTBAY.JETTY.HTTPCONNECTION.HANDLE(HTTPCONNECTION.JAVA:404) AT COM.GOOGLE.APPHOSTING.RUNTIME.JETTY.JETTYSERVLETENGINEADAPTER.SERVICEREQUEST(JETTYSERVLETENGINEADAPTER.JAVA:135) AT COM.GOOGLE.APPHOSTING.RUNTIME.JAVARUNTIME.HANDLEREQUEST(JAVARUNTIME.JAVA:260) AT COM.GOOGLE.APPHOSTING.BASE.RUNTIMEPB$EVALUATIONRUNTIME$2.HANDLEREQUEST(RUNTIMEPB.JAVA:9673) AT COM.GOOGLE.NET.RPC.IMPL.RPCUTIL.RUNRPCINAPPLICATION(RPCUTIL.JAVA:422) AT COM.GOOGLE.NET.RPC.IMPL.SERVER$RPCTASK.RUNINCONTEXT(SERVER.JAVA:573) AT COM.GOOGLE.TRACING.TRACECONTEXT$TRACECONTEXTRUNNABLE$1.RUN(TRACECONTEXT.JAVA:448) AT COM.GOOGLE.TRACING.TRACECONTEXT.RUNINCONTEXT(TRACECONTEXT.JAVA:688) AT COM.GOOGLE.TRACING.TRACECONTEXT$ABSTRACTTRACECONTEXTCALLBACK.RUNININHERITEDCONTEXTNOUNREF(TRACECONTEXT.JAVA:326) AT COM.GOOGLE.TRACING.TRACECONTEXT$ABSTRACTTRACECONTEXTCALLBACK.RUNININHERITEDCONTEXT(TRACECONTEXT.JAVA:318) AT COM.GOOGLE.TRACING.TRACECONTEXT$TRACECONTEXTRUNNABLE.RUN(TRACECONTEXT.JAVA:446) AT JAVA.UTIL.CONCURRENT.THREADPOOLEXECUTOR.RUNWORKER(THREADPOOLEXECUTOR.JAVA:1110) AT JAVA.UTIL.CONCURRENT.THREADPOOLEXECUTOR$WORKER.RUN(THREADPOOLEXECUTOR.JAVA:603) AT JAVA.LANG.THREAD.RUN(THREAD.JAVA:636) CAUSED BY: JAVAX.MAIL.MESSAGINGEXCEPTION: ILLEGAL ARGUMENTS (JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER) AT COM.GOOGLE.APPENGINE.API.MAIL.STDIMPL.GMTRANSPORT.SENDMESSAGE(GMTRANSPORT.JAVA:255) AT JAVAX.MAIL.TRANSPORT.SEND(TRANSPORT.JAVA:95) ... 39 MORE CAUSED BY: JAVA.LANG.ILLEGALARGUMENTEXCEPTION: UNAUTHORIZED SENDER: UNAUTHORIZED SENDER AT COM.GOOGLE.APPENGINE.API.MAIL.MAILSERVICEIMPL.DOSEND(MAILSERVICEIMPL.JAVA:104) AT COM.GOOGLE.APPENGINE.API.MAIL.MAILSERVICEIMPL.SEND(MAILSERVICEIMPL.JAVA:32) AT COM.GOOGLE.APPENGINE.API.MAIL.STDIMPL.GMTRANSPORT.SENDMESSAGE(GMTRANSPORT.JAVA:247) ... 40 MORE -- 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/-/w250_e6JpfQJ. 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. -- Bruno Fuster -- 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
Re: [google-appengine] Re: Weekend project: keep your app warm
Agree with your point on tragedy of the commons. The thing is this is not a new concept. It's already a common practice among many appengine developers. Without my application, one can still write a dummy cron in 5 mins. Given that they (unfortunately including me at the moment) will do it anyway, my app is saving 5 min dev time and 1 cron job execution per minute for each single url. Of course, this is definitely a suboptimal solution. But it should be Google rather than us to do something on this. I don't think Google has to build some intelligence to detect this behavior, but at least they should give use some guideline in forum or GAE document. For example, multiple deployment of same app is explicitly documented herehttp://code.google.com/appengine/terms.html(point 4.4), but I can't find any term applicable to my case. Instead I saw this same topic been discussed here for many times but no Googler ever give a negative comment. I will disable my app if I get guideline officially or un-officially. From other side, I don't think it's fair for a site gain a better performance just because more users are using it. From my point of view, such regenerative feedback is even worse than your tragedy of the commons. -- 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/-/xFonPhtvbLEJ. 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] Scalability of inequality filters for multiple fields via Hilbert curve
Thanks Nick, So is there a plan to implement multi-dimensional index in GAE? I have checked road map and can't find it http://code.google.com/appengine/docs/roadmap.html -- 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/-/45FLhoC_hJIJ. 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] Java Remote API - getting 302 error
Exception in thread main java.io.IOException: can't get appId from remote api; status code = 302 at com.google.appengine.tools.remoteapi.RemoteApiInstaller.getAppIdFromServer(RemoteApiInstaller.java:217) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.loginImpl(RemoteApiInstaller.java:199) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.login(RemoteApiInstaller.java:165) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.install(RemoteApiInstaller.java:86) at RemoteExample.main(RemoteExample.java:29) Any clues? Best, Muneer -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] index stuck in building state
Hi, The following index has been building since last week. There is currently no data to index so this is very odd. Please delete the index DataPoint2 in the web app hiqu-log. Thanks, -N -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Java Remote API - getting 302 error
Did anyone try this yet? any ideas here? Thanks On Mon, Jul 11, 2011 at 10:51 AM, Muneer Malik tutti...@gmail.com wrote: Exception in thread main java.io.IOException: can't get appId from remote api; status code = 302 at com.google.appengine.tools.remoteapi.RemoteApiInstaller.getAppIdFromServer(RemoteApiInstaller.java:217) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.loginImpl(RemoteApiInstaller.java:199) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.login(RemoteApiInstaller.java:165) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.install(RemoteApiInstaller.java:86) at RemoteExample.main(RemoteExample.java:29) Any clues? Best, Muneer -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Where to post production issues? (2 months with no response)
As far as I can tell, the correct place to post production issues is the AppEngine code site - is that true? I posted a very serious issue over 2 months ago and have heard nothing? http://code.google.com/p/googleappengine/issues/detail?id=4972 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Django import errors
Hello guys, I'm having problems with django imports inside GAE. Though I am google.appengine.dist.use_library inside my appengine_config module, from time to time (I haven't being able to reproduce the error enviroment so far) I get errors like 'Parent module 'django.template' not loaded'. This also happens with django.forms, sometimes from within django.forms itself as in [1] Does anybody have suggestions about what may be causing this ? [1] http://pastebin.com/kvTtmXhU Cheers, Tkm -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] My master/slave to high replication datastore migration experience
Hey guys, I had a pretty good experience migrating a fairly complex python app from the master/slave datastore to the high replication datastore. I wrote a blog post to document a few things I learned along the way. I hope some of you will find it useful. http://blog.shnap.com/migrating-to-the-google-app-engine-high-repli Enjoy, Kuan -- 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/-/cutzl4HHDO4J. 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] com.google.cloud.sql.jdbc.internal.Exceptions.driverUrlNotInCorrectFormat ?
I am perplexed by this error. According to GAEJ Will it play nice, an in memory database might work. So I tried H2 and blobdb, set up the driver as the following - bean id=dataSource class= org.springframework.jdbc.datasource.DriverManagerDataSource property name=driverClassName value= org.vnetcon.blobdb.driver.jdbc.BlobDBDriver / property name=url value= blobdb|http://localhost:/blobdb/ws|username=username|password=password / property name=username value=sa / property name=password value= / /bean And the partial error - WARNING: Could not obtain connection to query metadata java.sql.SQLException: URL is not in the correct format: blobdb|http://localhost:/blobdb/ws|username=username|password=password at com.google.cloud.sql.jdbc.internal.Exceptions.driverUrlNotInCorrectFormat( Exceptions.java:103) at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:47) at com.google.cloud.sql.jdbc.Driver.connect(Driver.java:24) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:154) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager( DriverManagerDataSource.java:173) Is there anyway to turn this jdbc verification off? Is this the latest changes made in GAE/J SDK 1.5.1? Any reason for checking this? Thanks. -- 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/-/wNxaRtRgSigJ. 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] com.google.cloud.sql.jdbc.internal.Exceptions.driverUrlNotInCorrectFormat
I am not sure if the previosu posted was successful, so I am reposting - In Spring's applicationContext.xml, I have - **bean id=dataSource class= org.springframework.jdbc.datasource.DriverManagerDataSource** **property name=driverClassName value= org.vnetcon.blobdb.driver.jdbc.BlobDBDriver */* **property name=url value= blobdb|http://localhost:/blobdb/ws|username=username|password=password */* **property name=username value=sa */* **property name=password value= */* */*bean** * * *When I launched GAEJ web app, I got the following (truncated for the sake of simplicity) error -* WARNING: Could not obtain connection to query metadata *java.sql.SQLException*: URL is not in the correct format: blobdb|http://localhost:/blobdb/ws|username=username|password=password at com.google.cloud.sql.jdbc.internal.Exceptions.driverUrlNotInCorrectFormat(* Exceptions.java:103*) at com.google.cloud.sql.jdbc.Driver.connect(*Driver.java:47*) at com.google.cloud.sql.jdbc.Driver.connect(*Driver.java:24*) at java.sql.DriverManager.getConnection(*DriverManager.java:582*) at java.sql.DriverManager.getConnection(*DriverManager.java:154*) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager( *DriverManagerDataSource.java:173*) Any idea how to avoid this error? Thanks. -- 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/-/nC5z-95QbtkJ. 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: Cost of many operations in one transaction
by my understanding, batch write on same entity group actually writes only once to datastore. For your second case, if you do it via async queries, then API call is the same but you will be charged way less CPU time than do it sequentially. PS: datastore API call is unlimited, so the only thing need to concern is CPU hour. -- 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/-/bNMcWSG19EsJ. 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] custom app url
I am trying to add a custom URL to my App Engine Application. I've done this succesfully before with, but with this one I am seemingly missing something. My app name is flyanmeldelser-cdn (flyanmeldelser- cdn.appspot.com), which works just fine. I added a URL to the google apps system (content.flyanmeldelser.com). But that URL gives me a 404 not found error. However, in my domain settings panel for content.flyanmeldelser.com there is under settings a menu-item flyanmeldelser-cdn (App Engine) and when I click that, it tells me that it should be acessible via content.flyanmeldelser.com...What is it I am missing? Gr RB -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: GAE cold start time still too long
Hi JH, Yes it's actually running on GAE Do you have some link on *Google has stated they do not approve of this method several times* Would like to take a look. Thanks, -- 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/-/ff8tNjA9xdcJ. 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: Weekend project: keep your app warm
Isn't the end of point 4.4 applicable here... or otherwise access the Service in a manner intended to avoid incurring fees ...as you are avoiding paying the $9/month for an always running instance? Phil On 12 July 2011 08:10, Max thebb...@gmail.com wrote: Agree with your point on tragedy of the commons. The thing is this is not a new concept. It's already a common practice among many appengine developers. Without my application, one can still write a dummy cron in 5 mins. Given that they (unfortunately including me at the moment) will do it anyway, my app is saving 5 min dev time and 1 cron job execution per minute for each single url. Of course, this is definitely a suboptimal solution. But it should be Google rather than us to do something on this. I don't think Google has to build some intelligence to detect this behavior, but at least they should give use some guideline in forum or GAE document. For example, multiple deployment of same app is explicitly documented herehttp://code.google.com/appengine/terms.html(point 4.4), but I can't find any term applicable to my case. Instead I saw this same topic been discussed here for many times but no Googler ever give a negative comment. I will disable my app if I get guideline officially or un-officially. From other side, I don't think it's fair for a site gain a better performance just because more users are using it. From my point of view, such regenerative feedback is even worse than your tragedy of the commons. -- 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/-/xFonPhtvbLEJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Cost of many operations in one transaction
See new pricing model http://www.google.com/enterprise/appengine/appengine_pricing.html 2011/7/12 Max thebb...@gmail.com by my understanding, batch write on same entity group actually writes only once to datastore. For your second case, if you do it via async queries, then API call is the same but you will be charged way less CPU time than do it sequentially. PS: datastore API call is unlimited, so the only thing need to concern is CPU hour. -- 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/-/bNMcWSG19EsJ. 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. -- С уважением, Кулин Тимофей. Телефон: +7 (4852) 974793 ICQ: 114902104 email: timo...@koolin.ru Blog: http://timofey.koolin.ru -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Weekend project: keep your app warm
my understanding is, you can't hack a service for free if it's supposed to be paid. By using my application, you still use / pay for your normal instance rather than always on instance. so this term is not applicable to this case. -- 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/-/JaGmQlWQKj8J. 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: ConcurrentModificationExceptions thrown by SUCCESSFUL transactions
This is kinda awkward... I mean, don't we use these exceptions to rollback and try again BECAUSE some operations are needed to be executed correctly and ONCE ?. For example, to increment a simple counter, to obtain unique successive values based on that counter. I don't think redesigning the whole server-side architecture (operations) is an option for bigger apps... On Jul 10, 11:50 pm, Lyn Headley lahea...@gmail.com wrote: Hello, I recently discovered the following, and to me troubling, disclaimer on the transaction docs: Note: If your app receives an exception when submitting a transaction, it does not always mean that the transaction failed. You can receive DatastoreTimeoutException, ConcurrentModificationException, or DatastoreFailureException exceptions in cases where transactions have been committed and eventually will be applied successfully. Whenever possible, make your datastore transactions idempotent so that if you repeat a transaction, the end result will be the same. Oops, I have designed an app which is not always idempotent, but instead depends on the assumption that certain tasks use datastore transactions that are applied exactly once (and are retried until they throw no exceptions). Do I need to go back to the drawing board and redesign my app for idempotence? How common are concurrency/datastore exceptions thrown from eventually successful transactions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Where to post production issues? (2 months with no response)
I believe you are doing the right way now :) Googlers in the group will help you sort out. Just private ping them with your app id -- 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/-/aoRHj343M60J. 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] 1.5.2 SDK Prerelease
Hi everyone, Prerelease SDK for 1.5.2 is ready for testing, feel free to download and give it a try for local verification: http://code.google.com/p/googleappengine/downloads/list See release notes below. Happy testing! App Engine Python SDK - Release Notes Version 1.5.2 = - You can now specify the minimum pending latency for instances and the maximum number of idle instances for your application in the Admin Console. - The datastore now never requires an exploding index. http://code.google.com/appengine/docs/python/datastore/queries.html#Big_Entities_and_Exploding_Indexes - The SDK will now never suggest indexes with the same property repeated, as such indexes are likely to be exploding indexes. - The SDK now supports multiple concurrent transactions. - Datastore stats are now available on a per-namespace basis. - The queue details page in the Admin Console now contains request header details, previous run information, and a task payload viewer. - You can modify the lease on a task leased from a pull queue using the modify_task_lease() method. - Pull Task maximum size has been increased to 1MB. - You can now update the number of available backend instances without needing to first stop the backend using the backend configure appcfg.py directive. - You can now set the References and In-Reply-To headers with the Mail API. http://code.google.com/p/googleappengine/issues/detail?id=2802 - The SDK application environment variable will now be prefixed with dev~. The new preferred way of retrieving your app id is to use appidentity.get_application_id(). The --default partition flag can be used for applications whose code relied on a specific environment variable. - In the Deferred API, defer() now accepts the _target parameter. - Added a to_dict() function to db.py which converts a model to a dictionary. - Added a get_original_metadata() method to the Images API to extract EXIF information from images. http://code.google.com/p/googleappengine/issues/detail?id=4133 - Added an @transactional decorator to db.py for functions that should always be run in a transaction. - Fixed an issue in the SDK where the Deferred API did not work when using the --backends flag. http://code.google.com/p/googleappengine/issues/detail?id=5072 App Engine Java SDK - Release Notes Version 1.5.2 = - You can now specify the minimum pending latency for instances and the maximum number of idle instances for your application in the Admin Console. - The datastore now never requires an exploding index. - The SDK will now never suggest indexes with the same property repeated, as such indexes are likely to be exploding indexes. - Datastore stats are now available on a per-namespace basis. - The queue details page in the Admin Console now contains request header details, previous run information, and a task payload viewer. - You can modify the lease on a task leased from a pull queue using the modifyTaskLease() method. - Pull Task maximum size has been increased to 1MB. - You can now update the number of available backend instances without needing to first stop the backend using the backend configure appcfg directive. - You can now set the References and In-Reply-To headers with the Mail API. http://code.google.com/p/googleappengine/issues/detail?id=2802 - The whitelist has been updated to include support for JSR 105. - When the SDK throws a DatastoreNeedIndexException for a missing index definition, the exception can now be caught. -- Johan Euphrosine (proppy) Developer Programs Engineer Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] index stuck in building state
Done. The index has been move into Error state. On Mon, Jul 11, 2011 at 7:00 PM, Nick Bender n...@hiqu.biz wrote: Hi, The following index has been building since last week. There is currently no data to index so this is very odd. Please delete the index DataPoint2 in the web app hiqu-log. Thanks, -N -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Johan Euphrosine (proppy) Developer Programs Engineer Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Weekend project: keep your app warm
I can't believe I'm still writing about this... at the very least you're hacking around the $9/mo fee for an always-on instance. The free tier of appengine works because all those zillions of little test apps and experiments that people create don't actually occupy resources beyond a small amount of disk space. If you create a magic button that keeps even the unused apps resident, the cluster will fill up with terabytes of idle ram. If you want to skeeve the system to keep your own app resident, keep quiet about it and hope there aren't enough other people doing this to force Google to close the loophole. BTW, I don't see why this calculus would change at all with the new pricing scheme. You could still have a lot of zombie apps eating up their free 24 instance-hours. Jeff On Tue, Jul 12, 2011 at 1:20 AM, Max thebb...@gmail.com wrote: my understanding is, you can't hack a service for free if it's supposed to be paid. By using my application, you still use / pay for your normal instance rather than always on instance. so this term is not applicable to this case. -- 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/-/JaGmQlWQKj8J. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: 1.5.2 SDK Prerelease
Great job! May I know more about *t**he datastore now never requires an exploding index *? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. 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: 1.5.2 SDK Prerelease
exactly the same question ;) On Tue, Jul 12, 2011 at 11:21 AM, Max thebb...@gmail.com wrote: Great job! May I know more about *t**he datastore now never requires an exploding index*? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Weekend project: keep your app warm
On Tue, Jul 12, 2011 at 1:26 AM, jeffrey_t_b jbor...@gmail.com wrote: It must not be too bad from Google's perspective, as they include an example of a recache job in the GAE java cron documentation: If you are recaching something every 2 minutes, there is a certain expectation that you going to be needing it uptodate all the time. So if your app gets traffic all day long, thats a good practice. But if your app is not that popular its just bad design. ... in short its just an example of what you can do. Its not shown as a 'best practice' in every possible situation. Just because you can, doesn't mean you should. http://code.google.com/appengine/docs/java/config/cron.html That said, I'm not sure why anyone would necessarily want to do this, given the new pricing. Not sure how the New Pricing comes into this. Keeping an app 'warm' just means keeping an instance always loaded. And you get 24 hours of instance time free. So all its doing is making sure you using all your free quota, not costing you anything as such. On Jul 11, 3:08 pm, Jeff Schnitzer j...@infohazard.org wrote: Using cron to keep your app warm is not sanctioned either. If Google wanted to give you a way to keep your app running, they'd offer it as a feature and charge for it. If these hacks become commonplace, GAE engineers will be retasked to fighting them and this will further delay new features that I care about like next-generation queries. Furthermore, the collateral damage of closing these loopholes might impact all our apps (such as, hypothetically, a surcharge for crons more frequent than 30 mins). Furthermore, if you hope to build a real business on top of appengine, you're getting off on the wrong foot by alienating the folks at Google. Don't expect to get your questions answered in this forum, and don't be surprised if your app gets blocked in some way. Read this: http://en.wikipedia.org/wiki/Tragedy_of_the_commons Exactly. Google could be spending their time lowering the instance startup time. Rather than dealing with the resource consumption of lots of people keeping their app 'warm' just in case. Keeping an app warm is a 'workaround'. And workarounds nearly always distract the developers from fixing the actual issue. Jeff On Sun, Jul 10, 2011 at 10:44 PM, Max thebb...@gmail.com wrote: hi Jeff, AFAIK, lots of GAE developers are using cron job to *warm up*, including me. You can search in this group, many ppl are doing this. Also, if we want something more than a periodic ping, like those use cases you mentioned, then we probably don't want all these logic stay with in our business logic. This is the real benefit of this project and now is just the first step. But since such monitoring tools will enable warm up feature as a side effect, I will need to know this groups' idea before going further. Again, I don't intend to go against *always on instance* solution. I am just sharing my work so that other developers don't have to setup cron jobs every time. -- 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/-/ht3qDc6Z984J. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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] My master/slave to high replication datastore migration experience
You call that a pretty good experience? I call that a nightmare. Googlers would be wise to read that post and realize that many of the things he had to do are insanely complicated. About half of this stuff would not be necessary if google figured out a way to keep the same app ID when porting to HR. I imagine that the crux of the problem is that there is only one big table, and so there would be name collisions between the HR and M/S versions, right? So how about cleaving the world into two big tables? Is that possible? Or how about adding a hidden boolean (_is_hr) attribute to all models, and rigorously mixing that boolean into all gets, puts, queries, etc, deep in the infrastructure. The other half of the complexity is coming from his need to start using entity groups. I have about 15 apps running on GAE (comprising about 10K lines of python code) and I have never, ever, parented an entity. When I read the docs a hundred years ago, it became clear to me that parenting entities must be something that is required for some kind of application that I'm not writing. Frankly, I've never completely groked what an entity group maps to in my (30+ years of) programming experience. It's certainly not a parent/child relationship in the usual sense. One thing that this post made clear to me is that I need to spend some significant time figuring out what the hell an entity group really is, and why they suddenly matter in HR. Because right now, I don't get it. And Kuan certainly wouldn't have gone to all that trouble if he hadn't needed to. -Joshua p.s.: cool site, Kuan On Jul 11, 2011, at 5:14 PM, kuanyong wrote: Hey guys, I had a pretty good experience migrating a fairly complex python app from the master/slave datastore to the high replication datastore. I wrote a blog post to document a few things I learned along the way. I hope some of you will find it useful. http://blog.shnap.com/migrating-to-the-google-app-engine-high-repli Enjoy, Kuan -- 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/-/cutzl4HHDO4J. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Timeout issues
Hey, Is there any good reason for my URL fetch requests to be timing out right now? Your app engine just cost me two customers. You think you can hurry up and get this squared away so I don't lose any more business? Thanks?!? And, I've seen enough of the DeadlineExceededExceptions, why don't you hurry up and fix that too. Ridiculous. Geez, John -- 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/-/dR934iJswg4J. 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: Scheduled maintenance read-only downtime
Will this downtime affect apps that don't use the datastore (i.e. only use the Google Spreadsheets API to read/write data)? Thanks, -Ryan -- 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/-/rSIdFiG7568J. 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] Thursday 7/14 Downtime
Regarding https://groups.google.com/d/msg/google-appengine-downtime-notify/C7d8rXE-7sA/CUdvP1Z8vwAJ ... 1. I assume the subject stating July 15 is incorrect, and the real date is Thursday, July 14, as in the body. 2. Will this downtime affect apps that don't use the datastore (i.e. only use the Google Spreadsheets API to read/write data)? Thanks, -Ryan -- 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/-/Sdy_q1wx20cJ. 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: SMSLib With Google App Engine
Thanks for the replies. I would want a free application preferably. That's the reason I chose SMSLib. Now although I can send and receive SMSes and perform other functions from my own laptop, the only hindrance is how to integrate it with GAE. So from what I gather, the suggestion by Gubbi seems to be the best. I'll look at the channel API and XMPP. Is there any other way? -- 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/-/FnamLngwOL4J. 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] Timeout issues
Whooa! Detail overload. On the other hand, with all that detail, I am sure the engineers have diagnosed the exact issue, and are rushing to fix the issue right now. /sarc Its not that unsympathetic, but realistically if you want actual help, rather than just having a moan, then you could help people to help you. You do also realize you addressing a community, not Google themselves with this group? On Tue, Jul 12, 2011 at 3:05 PM, John Wheeler j...@highvolumeseller.com wrote: Hey, Is there any good reason for my URL fetch requests to be timing out right now? Your app engine just cost me two customers. You think you can hurry up and get this squared away so I don't lose any more business? Thanks?!? And, I've seen enough of the DeadlineExceededExceptions, why don't you hurry up and fix that too. Ridiculous. Geez, John -- 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/-/dR934iJswg4J. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: SMSLib With Google App Engine
You do realize that this means your site will only work as long as your laptop is switched on and in reach of a cell tower so it can sent the SMS? Anyway, I remember several years ago working with a SMS module connected to a linux machine, what we did (as the http server ran on a different machine) was simply send an email to a specific mail address, on the machine with the SMS module a little script would poll the mailbox every few minutes and once an email was found the body was read. The body contained something like this: Sender user ID ### Telephone number Telephone number ... ### Message ... ### Each telephone number on the list would all telephone numbers that would get the message the Sender user ID was simply for internal tracking just in case someone would send something that was less appreciated by the receiver(s) Using the chanel or XMPP communication is an option but as you are going to be using a laptop to do the sending you have to make the assumption that the laptop will not be always on. By using the mailbox and the polling script your mail server will cache the messages till your laptop is available again and the polling script can be bothered to pick up the emails. (of course the mail solution will introduce a bit more delay between the user hitting the button and the SMS being send but with the sending system being a laptop I have the feeling that this might not be such a big drawback) Personally I don't see why this stuff should be done by a laptop but its your system and I am sure you have a good reason to use the setup as you are planning to do. Regards, Rob On Tue, Jul 12, 2011 at 4:37 PM, Rohit Bhat smashingro...@gmail.com wrote: Thanks for the replies. I would want a free application preferably. That's the reason I chose SMSLib. Now although I can send and receive SMSes and perform other functions from my own laptop, the only hindrance is how to integrate it with GAE. So from what I gather, the suggestion by Gubbi seems to be the best. I'll look at the channel API and XMPP. Is there any other way? -- 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/-/FnamLngwOL4J. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Java Remote API - getting 302 error
any clues / suggestion here ? not sure if my query was successfully posted ! thanks On Monday, July 11, 2011, Muneer Malik tutti...@gmail.com wrote: Did anyone try this yet? any ideas here? Thanks On Mon, Jul 11, 2011 at 10:51 AM, Muneer Malik tutti...@gmail.com wrote: Exception in thread main java.io.IOException: can't get appId from remote api; status code = 302 at com.google.appengine.tools.remoteapi.RemoteApiInstaller.getAppIdFromServer(RemoteApiInstaller.java:217) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.loginImpl(RemoteApiInstaller.java:199) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.login(RemoteApiInstaller.java:165) at com.google.appengine.tools.remoteapi.RemoteApiInstaller.install(RemoteApiInstaller.java:86) at RemoteExample.main(RemoteExample.java:29) Any clues? Best,Muneer -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- Confidentiality Notice --- THIS INFORMATION IS INTENDED ONLY FOR THE USE OF THE ADDRESSEE AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, CONFIDENTIAL AND EXEMPT FROM DISCLOSURE UNDER APPLICABLE LAW. IF YOU ARE NOT THE INTENDED RECIPIENT, OR THE EMPLOYEE OR AGENT RESPONSIBLE FOR DELIVERING THIS MESSAGE TO THE INTENDED RECIPIENT, YOU ARE HEREBY NOTIFIED THAT ANY DISSEMINATION, DISTRIBUTION OR COPYING OF THE COMMUNICATION IS STRICTLY PROHIBITED. IF YOU HAVE RECEIVED THIS COMMUNICATION IN ERROR, PLEASE NOTIFY IMMEDIATELY AT tutti...@gmail.com OR BY TELEPHONE AT 817-458-1764. THANK YOU. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: SMSLib With Google App Engine
I'm basically doing this for a project, but I can make use of a dedicated server if need be. The email method is indeed nice and pretty much solves the problem of the GSM module being on a different server. I'll just consult with my other team mates and decide the best option. Thanks for the replies everyone -- 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/-/XqjsSwab-pUJ. 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: ConcurrentModificationExceptions thrown by SUCCESSFUL transactions
Yeah, like the example of a transaction on the page with that caveat: http://code.google.com/appengine/docs/python/datastore/transactions.html First it says, Make sure your transactions are idempotent and then it gives an example which isn't. I'm not sure it's possible to do the task in that example correctly if you cannot tell whether a transaction succeeded or failed when it throws an exception. I just tried sketching out a solution that stored a transaction ID in the model, but that won't work because there could be multiple writers. The whole thing seems rather intractable, and the idea that you cannot tell whether a transaction succeeded or failed violates the principle of least surprise for anyone who's ever used a database! Can some googlers weigh in, and explain how, for example, the example in the documentation could be implemented correctly? -Joshua On Jul 12, 2011, at 4:26 AM, Ice13ill wrote: This is kinda awkward... I mean, don't we use these exceptions to rollback and try again BECAUSE some operations are needed to be executed correctly and ONCE ?. For example, to increment a simple counter, to obtain unique successive values based on that counter. I don't think redesigning the whole server-side architecture (operations) is an option for bigger apps... On Jul 10, 11:50 pm, Lyn Headley lahea...@gmail.com wrote: Hello, I recently discovered the following, and to me troubling, disclaimer on the transaction docs: Note: If your app receives an exception when submitting a transaction, it does not always mean that the transaction failed. You can receive DatastoreTimeoutException, ConcurrentModificationException, or DatastoreFailureException exceptions in cases where transactions have been committed and eventually will be applied successfully. Whenever possible, make your datastore transactions idempotent so that if you repeat a transaction, the end result will be the same. Oops, I have designed an app which is not always idempotent, but instead depends on the assumption that certain tasks use datastore transactions that are applied exactly once (and are retried until they throw no exceptions). Do I need to go back to the drawing board and redesign my app for idempotence? How common are concurrency/datastore exceptions thrown from eventually successful transactions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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: ConcurrentModificationExceptions thrown by SUCCESSFUL transactions
Or, later on that page, where it says: Transactional tasks are useful because they allow you to combine non-datastore actions to a transaction that depend on the transaction succeeding (such as sending an email to confirm a purchase). Does the caveat mean that in your example, the purchase could happen but the email never gets sent? This smells like a serious bug that you have decided to document, rather than fix. On Jul 12, 2011, at 11:56 AM, Joshua Smith wrote: Yeah, like the example of a transaction on the page with that caveat: http://code.google.com/appengine/docs/python/datastore/transactions.html First it says, Make sure your transactions are idempotent and then it gives an example which isn't. I'm not sure it's possible to do the task in that example correctly if you cannot tell whether a transaction succeeded or failed when it throws an exception. I just tried sketching out a solution that stored a transaction ID in the model, but that won't work because there could be multiple writers. The whole thing seems rather intractable, and the idea that you cannot tell whether a transaction succeeded or failed violates the principle of least surprise for anyone who's ever used a database! Can some googlers weigh in, and explain how, for example, the example in the documentation could be implemented correctly? -Joshua On Jul 12, 2011, at 4:26 AM, Ice13ill wrote: This is kinda awkward... I mean, don't we use these exceptions to rollback and try again BECAUSE some operations are needed to be executed correctly and ONCE ?. For example, to increment a simple counter, to obtain unique successive values based on that counter. I don't think redesigning the whole server-side architecture (operations) is an option for bigger apps... On Jul 10, 11:50 pm, Lyn Headley lahea...@gmail.com wrote: Hello, I recently discovered the following, and to me troubling, disclaimer on the transaction docs: Note: If your app receives an exception when submitting a transaction, it does not always mean that the transaction failed. You can receive DatastoreTimeoutException, ConcurrentModificationException, or DatastoreFailureException exceptions in cases where transactions have been committed and eventually will be applied successfully. Whenever possible, make your datastore transactions idempotent so that if you repeat a transaction, the end result will be the same. Oops, I have designed an app which is not always idempotent, but instead depends on the assumption that certain tasks use datastore transactions that are applied exactly once (and are retried until they throw no exceptions). Do I need to go back to the drawing board and redesign my app for idempotence? How common are concurrency/datastore exceptions thrown from eventually successful transactions? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: GAE Pricing Changes - Sucker Punching the Development Community
Perhaps with a bit of an explanation you would like to address something that is incorrect ;?) On Jul 7, 11:32 am, Geoffrey Spear geoffsp...@gmail.com wrote: On Jul 7, 8:14 am, Drew Spencer slugmand...@gmail.com wrote: On Wednesday, 6 July 2011 16:45:23 UTC+1, zdravko wrote: Because you can't just put me out of business... that's not how business works. GOOG can certainly put you out of existence by suddenly pricing their services out of your affordability range. But if they want to charge me extortionate rates, they have to do it to the whole appengine customer base. You can't just steal a customer base that easily. Without you in business, your customer base will go to whoever is providing the same service. But I would just move my service to another host, keeping my customer base. And no, I don't really see any similarity to Microsoft. Comparing apples with oranges. Nevertheless, both apples and oranges are our dependencies on their monopolies and self serving control. I think you're being unfair. Google has never tried to exercise its near-monopoly on the market like Microsoft did and still does. Google is where it is because it's products are the best. It destroyed hotmail and yahoo mail with gmail by just making a better alternative and you can still get to hotmail through google search, can't you? Why would you though - it's crap. Don't feed the trolls. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: 1.5.2 SDK Prerelease
Hi, Thanks for the prerelease! Is nice to start playing with the new features for the new pricing model. Could you clarify about the exploding indexes change? is not clear to me either. Cheers, Sebastian www.devsar.com -- 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/-/Z3WZ9KzcBSIJ. 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] GAE is missing requests
Hi, Sometimes GAE is missing my requests and instead of the requested page i get a clean page in my browser! Can you fix it please? I've tested it in different browsers on different computers. Thank you. -- 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/-/BumLr0219OwJ. 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: Is taskID unique?
Something about that? -- 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/-/wWCeJR4zvGIJ. 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] Timeout issues
Unless I am missing something URLfetch is used for accessing *other* services from GAE. You might want to look why those other services are slow. -- 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/-/gZ7fNUnyzB0J. 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: custom app url
I'm experiencing custom domain errors, too. I have two previous applications with custom domains, but I currently get a server error whenever I try to add a new custom domain to a new application. Would appreciate any suggestions on how to go forward? Zach On Jul 11, 9:56 am, rb.90 reinder.brou...@content.flyanmeldelser.com wrote: I am trying to add a custom URL to my App Engine Application. I've done this succesfully before with, but with this one I am seemingly missing something. My app name is flyanmeldelser-cdn (flyanmeldelser- cdn.appspot.com), which works just fine. I added a URL to the google apps system (content.flyanmeldelser.com). But that URL gives me a 404 not found error. However, in my domain settings panel for content.flyanmeldelser.com there is under settings a menu-item flyanmeldelser-cdn (App Engine) and when I click that, it tells me that it should be acessible via content.flyanmeldelser.com...What is it I am missing? Gr RB -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: 1.5.2 SDK Prerelease
The SDK now supports multiple concurrent transactions. What does this mean exactly? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [appengine-java] Re: [google-appengine] Re: 1.5.2 SDK Prerelease
Hi, It means that there are alternatives to using exploding indexes (i.e. they are no longer required to execute a given query). You can still have them (there are cases where they are useful, namely to optimize query speed over write cost) and the SDK will still suggest them in many cases (as it is hard to detect them by looking at the query). However, the SDK will no long suggest indexes with the same property repeated multiple times (as these are obviously an exploding index). One example where this is very important is SearchableModelhttp://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/search/__init__.py, which previously was crippled by exploding indexes if you tried to sort results (and now works as expected). We are working on an article that goes through how to decided when to remove or keep them, but for now the Google IO talk from 2010, Next Gen Querieshttp://www.google.com/events/io/2010/sessions/next-gen-queries-appengine.html (The Zigzag Merge Join += Sort part), is a good resource if you want a really deep dive on how this works. - Alfred On Tue, Jul 12, 2011 at 2:24 AM, Pascal Voitot Dev pascal.voitot@gmail.com wrote: exactly the same question ;) On Tue, Jul 12, 2011 at 11:21 AM, Max thebb...@gmail.com wrote: Great job! May I know more about *t**he datastore now never requires an exploding index*? Does that mean we don't need to build exploding index or simply can't build exploding index? -- 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/-/KyL9f70-VtkJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine for Java group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: 1.5.2 SDK Prerelease
The Datastore itself has always supported multiple concurrent transactions. However the dev_appserver in the python SDK previously used a global lock and would deadlock if a single thread tried to start more than a single transaction. Now you can have multiple concurrent transactions running at the same time. This is good for the Go runtime (which uses the python dev_appserver), the Datastore Plushttp://code.google.com/p/appengine-ndb-experiment/ library, anyone else who wants to use concurrent transactions on the dev_appserver. On Tue, Jul 12, 2011 at 3:19 PM, pdknsk pdk...@googlemail.com wrote: The SDK now supports multiple concurrent transactions. What does this mean exactly? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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: SMSLib With Google App Engine
You could use a Pull Queue instead of an email sending/polling system: http://code.google.com/appengine/docs/python/taskqueue/overview-pull.html Nick On 13 July 2011 01:13, Rohit Bhat smashingro...@gmail.com wrote: I'm basically doing this for a project, but I can make use of a dedicated server if need be. The email method is indeed nice and pretty much solves the problem of the GSM module being on a different server. I'll just consult with my other team mates and decide the best option. Thanks for the replies everyone -- 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/-/XqjsSwab-pUJ. 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. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Timeout issues
Vlad, I hear where you're coming from, but it turned out to be App Engine's fault. Google Engineer's you've apparently had problems making outbound HTTP calls to PayPal API endpoints for some time. There's lots of blog and news posts about it going back to 2008. I am using Java URLFetch and I experienced the timeouts 90% of the time making PayPal completely unusable from my app on app engine. The way I fixed it was by reverse proxying through NGinx on an Amazon EC2 instance. Works 100% of the time now. If this is PayPal's fault, I'm sorry, but I find that hard to believe because of the reports going back. I wish this issue was fixed by now. John -- 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/-/KszotIlfOFEJ. 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] Help! App doesn't update correctly
Hello, If I access my app via its domain url (www.domain.com) , it shows an old version of my app. Accessing via the appspot.com url, works fine. Never had this problem before, is it related to the recent transition of Google Apps? Gr, Wendel -- 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/-/DAOnbH4V1QMJ. 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] SAML/SSO login not working
hello i'm developing a secure log in solution based on GAIL after i log in with my credentials, it says it couldn't load a page. before it worked fine. yeah, i did all the set up changes in dashboard thanks m. -- Milosh Zorica http://www.linkedin.com/in/miloshzorica phone: +44 20 8144 5294 e-mail: miloshzor...@gmail.com skype: milosh.zorica -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Thursday 7/14 Downtime
Hi Ryan, On Wed, Jul 13, 2011 at 12:33 AM, Ryan Goldstein r...@moberg.com wrote: Regarding https://groups.google.com/d/msg/google-appengine-downtime-notify/C7d8rXE-7sA/CUdvP1Z8vwAJ ... 1. I assume the subject stating July 15 is incorrect, and the real date is Thursday, July 14, as in the body. That's correct. 2. Will this downtime affect apps that don't use the datastore (i.e. only use the Google Spreadsheets API to read/write data)? Only insofar as it will also result in Memcache being cleared. Other than that, your app will continue to serve as normal. -Nick Johnson Thanks, -Ryan -- 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/-/Sdy_q1wx20cJ. 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. -- Nick Johnson, Developer Programs Engineer, App Engine -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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] About expando properties
Hi, Regarding expando properties: 1) Can you prevent them from being indexed (I couldn't find anything about this, but I'd like official confirmation)? 2) What's the practical number of expando properties you shouldn't go above? If they are all indexed, then surely that can be quite expensive, so you should stay below 100 or something? 3) If you have to be above the limit defined at #2, what's the best alternative? Serializing into a blob property, possibly, but what would be the most optimal serialization format? Thanks! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-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.