org.hibernate.service.jdbc.connections.internal
Class ProxoolConnectionProvider

java.lang.Object
  extended by org.hibernate.service.jdbc.connections.internal.ProxoolConnectionProvider
All Implemented Interfaces:
Serializable, ConnectionProvider, Service, Configurable, Stoppable, Wrapped

public class ProxoolConnectionProvider
extends Object
implements ConnectionProvider, Configurable, Stoppable

A connection provider that uses a Proxool connection pool. Hibernate will use this by default if the hibernate.proxool.* properties are set.

See Also:
ConnectionProvider, Serialized Form

Field Summary
static ProxoolMessageLogger LOG
           
 
Constructor Summary
ProxoolConnectionProvider()
           
 
Method Summary
 void close()
          Release all resources held by this provider.
 void closeConnection(Connection conn)
          Dispose of a used connection.
 void configure(Map props)
          Initialize the connection provider from given properties.
 Connection getConnection()
          Grab a connection
 boolean isUnwrappableAs(Class unwrapType)
          Can this wrapped service be unwrapped as the indicated type?
 void stop()
          Stop phase notification
 boolean supportsAggressiveRelease()
          Does this connection provider support aggressive release of JDBC connections and re-acquisition of those connections (if need be) later?

This is used in conjunction with AvailableSettings.RELEASE_CONNECTIONS to aggressively release JDBC connections.

<T> T
unwrap(Class<T> unwrapType)
          Unproxy the service proxy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG

public static final ProxoolMessageLogger LOG
Constructor Detail

ProxoolConnectionProvider

public ProxoolConnectionProvider()
Method Detail

getConnection

public Connection getConnection()
                         throws SQLException
Grab a connection

Specified by:
getConnection in interface ConnectionProvider
Returns:
a JDBC connection
Throws:
SQLException

isUnwrappableAs

public boolean isUnwrappableAs(Class unwrapType)
Description copied from interface: Wrapped
Can this wrapped service be unwrapped as the indicated type?

Specified by:
isUnwrappableAs in interface Wrapped
Parameters:
unwrapType - The type to check.
Returns:
True/false.

unwrap

public <T> T unwrap(Class<T> unwrapType)
Description copied from interface: Wrapped
Unproxy the service proxy

Specified by:
unwrap in interface Wrapped
Parameters:
unwrapType - The java type as which to unwrap this instance.
Returns:
The unwrapped reference

closeConnection

public void closeConnection(Connection conn)
                     throws SQLException
Dispose of a used connection.

Specified by:
closeConnection in interface ConnectionProvider
Parameters:
conn - a JDBC connection
Throws:
SQLException

configure

public void configure(Map props)
Initialize the connection provider from given properties.

Specified by:
configure in interface Configurable
Parameters:
props - SessionFactory properties

close

public void close()
           throws HibernateException
Release all resources held by this provider. JavaDoc requires a second sentence.

Throws:
HibernateException

supportsAggressiveRelease

public boolean supportsAggressiveRelease()
Description copied from interface: ConnectionProvider
Does this connection provider support aggressive release of JDBC connections and re-acquisition of those connections (if need be) later?

This is used in conjunction with AvailableSettings.RELEASE_CONNECTIONS to aggressively release JDBC connections. However, the configured ConnectionProvider must support re-acquisition of the same underlying connection for that semantic to work.

Typically, this is only true in managed environments where a container tracks connections by transaction or thread. Note that JTA semantic depends on the fact that the underlying connection provider does support aggressive release.

Specified by:
supportsAggressiveRelease in interface ConnectionProvider
Returns:
true if aggressive releasing is supported; false otherwise.
See Also:
ConnectionProvider.supportsAggressiveRelease()

stop

public void stop()
Description copied from interface: Stoppable
Stop phase notification

Specified by:
stop in interface Stoppable


Copyright © 2001-2015 Red Hat, Inc. All Rights Reserved.