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.

Reply via email to