1 /*
2  * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package javax.sql;
27 
28 /**
29  * <P>
30  * An object that registers to be notified of events generated by a
31  * <code>PooledConnection</code> object.
32  * <P>
33  * The <code>ConnectionEventListener</code> interface is implemented by a
34  * connection pooling component.  A connection pooling component will
35  * usually be provided by a JDBC driver vendor or another system software
36  * vendor.  A JDBC driver notifies a <code>ConnectionEventListener</code>
37  * object when an application is finished using a pooled connection with
38  * which the listener has registered.  The notification
39  * occurs after the application calls the method <code>close</code> on
40  * its representation of a <code>PooledConnection</code> object.  A
41  * <code>ConnectionEventListener</code> is also notified when a
42  * connection error occurs due to the fact that the <code>PooledConnection</code>
43  * is unfit for future use---the server has crashed, for example.
44  * The listener is notified by the JDBC driver just before the driver throws an
45  * <code>SQLException</code> to the application using the
46  * <code>PooledConnection</code> object.
47  *
48  * @since 1.4
49  */
50 
51 public interface ConnectionEventListener extends java.util.EventListener {
52 
53   /**
54    * Notifies this <code>ConnectionEventListener</code> that
55    * the application has called the method <code>close</code> on its
56    * representation of a pooled connection.
57    *
58    * @param event an event object describing the source of
59    * the event
60    */
connectionClosed(ConnectionEvent event)61   void connectionClosed(ConnectionEvent event);
62 
63   /**
64    * Notifies this <code>ConnectionEventListener</code> that
65    * a fatal error has occurred and the pooled connection can
66    * no longer be used.  The driver makes this notification just
67    * before it throws the application the <code>SQLException</code>
68    * contained in the given <code>ConnectionEvent</code> object.
69    *
70    * @param event an event object describing the source of
71    * the event and containing the <code>SQLException</code> that the
72    * driver is about to throw
73    */
connectionErrorOccurred(ConnectionEvent event)74   void connectionErrorOccurred(ConnectionEvent event);
75 
76  }
77