incubator-kato-spec mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Poole <>
Subject Snapshot Application development usecases
Date Mon, 04 Jan 2010 15:19:11 GMT
I want to present a few application development usecases for us to discuss
to do with the Snapshot concept.

First let's agree some basics

An application snapshot is a deliberate subset of a running system.  It's
deliberate in that what is defined for inclusion / exclusion can be changed.

To build an application snapshot three types of information are required

1 - root objects which determine where to start the snapshot from
2 - rules to restrict how "far" to search
3 - rules to describe what to include in the snapshot

Example 1

A webserver session is behaving incorrectly.  The application programmer
wants to capture information
to do with the session itself and some specific application details.

The root object is an HTTPSession and the application code is all contained
in packages that start org.acme.application
The application programmer believes that the problem is in the application
and so wants the minimum
of system information included.

Example 2

An error has occured and the application is about throw an exception.  The
application programmer wants to capture a series
of objects related to the error and wants to see the Java stack including
local variables.

Example 3

A enterprise server is running slow and the application programmer would
like to get a list of the instances of a specific interface
that the server is managing, since the suspicion is that there are multiple
instances of a nonthreadsafe instance of this interface when there should
only be one.

Example 4

A servlet server has run out of database connections and the suspicion is
that managed objects have not been
collected.  Typically programmers use finalisers or depend on GC instead of
using the Servlet.Destroy() method.
the application programmer needs to get a list of objects in "Destroyed"
state which obviously haven't been GC'd



  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message