That depends on what you're okay with. The simplest thing would be to show a global error page or a message that things aren't working correctly. We average less than one maintenance period a month and are working towards no downtime error messages, so it might be to your advantage to do the easiest thing and not overengineer a workaround. Note that we have another scheduled maintenance in December. We haven't planned maintenance beyond that, but my expectation they will happen at roughly the same frequently.
-- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Tue, Nov 9, 2010 at 11:23 AM, Ian Marshall <[email protected]>wrote: > Hi Ikai, > > Thanks for replying with the info about mem cache staying up and a > good way for me to detect the datastore's status. I'll change my > datastore down-time detection method using this. > > Since I use sessions extensively and unavoidably in my application (a > big hello to Apache Wicket), do you have any general tips about how I > should react to session disablement? Is a general worst case to > present a page with a service disabled message during down-times? (I > already display a functionality degredation message during mem cache (! > = datastore!) down-times or my own pre-declared down-time date-time > slots, but I still rely on sessions to do this). > > Cheers, > > Ian > > > On Nov 9, 6:15 pm, "Ikai Lan (Google)" > <[email protected]<ikai.l%[email protected]> > > > wrote: > > Hey Ian, > > > > During our maintenance periods, Memcache no longer goes down - we just > flush > > it. > > > > Our docs on handing maintenance periods is unfortunately out of date. > Thanks > > for bringing this to my attention. I'll put this on my plate to document > it. > > In the meantime, here is some sample code. You can use your IDE's > > autocomplete to explore this API: > > > > http://pastie.org/1284924 > > > > import com.google.appengine.api.capabilities.CapabilitiesService; > > import com.google.appengine.api.capabilities.CapabilitiesServiceFactory; > > import com.google.appengine.api.capabilities.Capability; > > import com.google.appengine.api.capabilities.CapabilityState; > > > > CapabilitiesService cs = > > CapabilitiesServiceFactory.getCapabilitiesService(); > > CapabilityState state = cs.getStatus(Capability.DATASTORE); > > Capability capability = state.getCapability(); > > > > -- > > Ikai Lan > > Developer Programs Engineer, Google App Engine > > Blogger:http://googleappengine.blogspot.com > > Reddit:http://www.reddit.com/r/appengine > > Twitter:http://twitter.com/app_engine > > > > On Tue, Nov 9, 2010 at 3:42 AM, Ian Marshall <[email protected] > >wrote: > > > > > In the GAE/J documentation for "Gracefully Degrading During Scheduled > > > Maintenance" it states > > > > > "Note: Because App Engine for Java sessions are backed by memcache and > > > the datastore, sessions are effectively disabled during read-only > > > periods. You must take this into account when designing your > > > application." > > > > > My code for detecting datastore down-times failed during last > > > Saturday's scheduled down-time. It attempts to detect a down-time by > > > writing to the mem cache using a StrictErrorHandler, and responding to > > > any MemcacheServiceException raised to disable parts of my web site > > > which write to the datastore, but I got severe errors before this got > > > detected: > > > > > com.google.apphosting.api.ApiProxy$CapabilityDisabledException: > > > The API call datastore_v3.Put() is temporarily unavailable. > > > > > This could be my fault in many ways (perhaps the mem cache stayed up). > > > In particular, I suspect that my app's use of sessions is at fault. > > > The relevant fragment of my "appengine-web.xml" config is: > > > > > <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> > > > ... > > > <sessions-enabled>true</sessions-enabled> > > > ... > > > </appengine-web-app> > > > > > This may be a silly question, but in what ways can one anticipate, > > > detect and handle the disabling of sessions during a datastore down- > > > time period? > > > > > -- > > > 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 > > > [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<google-appengine-java%[email protected]> > <google-appengine-java%[email protected]<google-appengine-java%[email protected]> > > > > > . > > > 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
