All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.xml.xquery.PooledXQConnection Maven / Gradle / Ivy

/*
 * Copyright # 2003, 2004, 2005, 2006, 2007, 2008 Oracle.  All rights reserved.
 */

package javax.xml.xquery;

/**
 * An object that provides hooks for connection pool management.
 * A PooledXQConnection object
 * represents a physical connection to a data source.  The connection
 * can be recycled rather than being closed when an application is
 * finished with it, thus reducing the number of connections that
 * need to be made.
 * 

* An application programmer does not use the PooledXQConnection * interface directly; rather, it is used by a middle tier infrastructure * that manages the pooling of connections. *

* When an application calls the method XQDataSource.getConnection, * it gets back an XQConnection object. If connection pooling is * being done, that XQConnection object is actually a handle to * a PooledXQConnection object, which is a physical connection. *

* The connection pool manager, typically the application server, maintains * a pool of PooledXQConnection objects. If there is a * PooledXQConnection object available in the pool, the * connection pool manager returns an XQConnection object that * is a handle to that physical connection. * If no PooledXQConnection object is available, the * connection pool manager calls the ConnectionPoolXQDataSource * method getPooledConnection to create a new physical connection and * returns a handle to it. *

* When an application closes a connection, it calls the XQConnection * method close. When connection pooling is being done, * the connection pool manager is notified because it has registered itself as * an XQConnectionEventListener object using the * PooledXQConnection method addConnectionEventListener. * The connection pool manager deactivates the handle to * the PooledXQConnection object and returns the * PooledXQConnection object to the pool of connections so that * it can be used again. Thus, when an application closes its connection, * the underlying physical connection is recycled rather than being closed. *

* The physical connection is not closed until the connection pool manager * calls the PooledXQConnection method close. * This method is generally called to have an orderly shutdown of the server or * if a fatal error has made the physical connection unusable. */ public interface PooledXQConnection { /** * Creates and returns an XQConnection object that is a handle * for the physical connection that this PooledXQConnection * object represents. * The connection pool manager calls this method when an application has * called the XQDataSource method getConnection * and there are no PooledXQConnection objects available. * * @return an XQConnection object that is a handle to * this PooledXQConnection object * @throws XQException if a datasource access error occurs */ XQConnection getConnection() throws XQException; /** * Closes the physical connection that this PooledXQConnection * object represents. An application never calls this method directly; * it is called by the connection pool manager. * * @throws XQException if a datasource access error occurs */ void close() throws XQException; /** * Registers the given event listener so that it will be notified * when an event occurs on this PooledXQConnection object. * * @param listener a component, usually the connection pool manager, * that has implemented the * XQConnectionEventListener interface and wants to be * notified when the connection is closed or has an error * @see #removeConnectionEventListener */ void addConnectionEventListener(XQConnectionEventListener listener); /** * Removes the given event listener from the list of components that * will be notified when an event occurs on this * PooledXQConnection object. * * @param listener a component, usually the connection pool manager, * that has implemented the * XQConnectionEventListener interface and * been registered with this PooledXQConnection object as * a listener * @see #addConnectionEventListener */ void removeConnectionEventListener(XQConnectionEventListener listener); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy