P6Spy Documentation
For the latest software and documentation visit http://www.p6spy.com

Installation

Using the Modules

Writing Your Own Module

Other

License Agreement

/*
*
* ====================================================================
*
* The P6Spy Software License, Version 1.1
*
* This license is derived and fully compatible with the Apache Software
* license, see http://www.apache.org/LICENSE.txt
*
* Copyright (c) 2001-2002 Andy Martin, Ph.D. and Jeff Goke
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowledgment:
* "The original concept and code base for P6Spy was conceived
* and developed by Andy Martin, Ph.D. who generously contributed
* the first complete release to the public under this license.
* This product was due to the pioneering work of Andy
* that began in December of 1995 developing applications that could
* seamlessly be deployed with minimal effort but with dramatic results.
* This code is maintained and extended by Jeff Goke and with the ideas
* and contributions of other P6Spy contributors.
* (http://www.p6spy.com)"
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "P6Spy", "Jeff Goke", and "Andy Martin" must not be used
* to endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
* license@p6spy.com.
*
* 5. Products derived from this software may not be called "P6Spy"
* nor may "P6Spy" appear in their names without prior written
* permission of Jeff Goke and Andy Martin.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

Release Notes

Version 1.0 beta

  • Rafael Alvarez added log4j support, one of the most requested feature enhancements.
  • P6Cache has been introduced! P6Cache provides seamless caching to any application running JDBC. Easy installation and no code changes required. This module is particularly useful for caching queries in session beans, as well as for applications that do not use EJBs and need a mechanism to provide caching. It is expected that the functionality of P6Cache will expand quickly, so keep an eye on future releases.
  • Due to problems reported with driver loading in the alpha version, driver loading has been rewritten. It is now more efficient.

Version 1.0 alpha

  • Restructured code to inherit from a single core wrapper driver.
  • Introduced concepts of modules and stackable drivers that dynamically load the necessary code into memory at runtime.
  • Broke code into logical modules: P6Log and P6Outage.
  • Refactored large amount of code.
  • Rewrote Junit tests and added more rigorous tests.

Version 0.8

  • Peter Laird contributed an Outage Detection module that reports database outages when database statements do not respond within a given period of time.
  • Peter Laird also contributed a JSP application that gives a visual control to P6Spy. The first version can be used to view configuration information about P6Spy and to create a demarcation in the log file.
  • Viktor Szathmary added support for multiple simultaneous databases, a highly requested feature. Currently support is limited to 3 databases, but can easily be expanded.
  • Viktor Szathmary also added the logging of a connection id, and enabled urls to be prefixed with p6spy: to aid in debugging. A common mistake people make when installing is to have the real driver registered elsewhere, this feature avoids that problem. The default is not to require this value, but in the future it may be made mandatory to ease the install process.
  • Rewrote P6SpyOptions to allow new options to quickly and easily be added.
  • Additional JUnit tests have been added

Version 0.72

  • Philip Ogren contributed the ability to dynamically reload the property file after a specified period of time
  • Added logging to commit and rollback statements

Version 0.71

  • Philip Ogren of BEA contributed installation instructions for BEA WebLogic Portal and Server.
  • Jakarta RegEx support (contributed by Philip Ogren)
  • Ability to print stack trace of logged statements. This is very useful to understand where a logged query is being executed in the application (contributed by Philip Ogren)
  • Simplified table monitoring property file option (contributed by Philip Ogren)
  • Updated the RegEx documentation

Version 0.7

  • Simon Sadedin added timing information to the log files. Now you can better visualize bottleneck queries.
  • Simon Sadedin added regex support for table filtering, allowing sophisticated custom filtering.
  • Michael Sgroi contributed installation instructions for iPlanet.
  • Richard Delbert contributed installation instructions for WebLogic.
  • Added support for callable statements.
  • Added support for batch statements.
  • Added a debug category that provides detailed debug information. By default this is disabled. See the troubleshooting section for more information.
  • Changed the default log format to include more information.
  • Added test target to ant that works with JUnit to perform some basic tests. Currently using Oracle as the test database.
  • Added ResultSet logging and timing information. By default this is disabled. See the log section for more information.
  • Fixed a number of bugs, in particular a bug that was causing an empty spy.log file to be created and never populated.

Version 0.6

  • Fixed a bug that null connections were not returning null, but rather an empty connection. This was a problem for some applications where the application was expecting a null connection.
  • Added an option to allow the truncation/non-truncation of the log file to be specified within spy.options.