Package org.jivesoftware.database
Class JNDIDataSourceProvider
- java.lang.Object
-
- org.jivesoftware.database.JNDIDataSourceProvider
-
- All Implemented Interfaces:
ConnectionProvider
public class JNDIDataSourceProvider extends Object implements ConnectionProvider
An implementation of ConnectionProvider that utilizes a JDBC 2.0 DataSource made available via JNDI. This is useful for application servers where a pooled data connection is already provided so Jive can share the pool with the other applications.The JNDI location of the DataSource stored as the Jive property
database.JNDIProvider.name
. This can be overridden by setting the provider'sname
property if required.- Author:
- Joe Walnes
- See Also:
ConnectionProvider
-
-
Field Summary
Fields Modifier and Type Field Description static String[]
jndiPropertyKeys
Keys of JNDI properties to query PropertyManager for.
-
Constructor Summary
Constructors Constructor Description JNDIDataSourceProvider()
Constructs a new JNDI pool.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
destroy()
Tells the connection provider to destroy itself.Connection
getConnection()
Returns a database connection.boolean
isPooled()
Returns true if this connection provider provides connections out of a connection pool.void
restart()
This method should be called whenever properties have been changed so that the changes will take effect.void
start()
Starts the connection provider.
-
-
-
Field Detail
-
jndiPropertyKeys
public static final String[] jndiPropertyKeys
Keys of JNDI properties to query PropertyManager for.
-
-
Method Detail
-
isPooled
public boolean isPooled()
Description copied from interface:ConnectionProvider
Returns true if this connection provider provides connections out of a connection pool. Implementing and using connection providers that are pooled is strongly recommended, as they greatly increase the speed of Jive.- Specified by:
isPooled
in interfaceConnectionProvider
- Returns:
- true if the Connection objects returned by this provider are pooled.
-
start
public void start()
Description copied from interface:ConnectionProvider
Starts the connection provider. For some connection providers, this will be a no-op. However, connection provider users should always call this method to make sure the connection provider is started.- Specified by:
start
in interfaceConnectionProvider
-
restart
public void restart()
Description copied from interface:ConnectionProvider
This method should be called whenever properties have been changed so that the changes will take effect.- Specified by:
restart
in interfaceConnectionProvider
-
destroy
public void destroy()
Description copied from interface:ConnectionProvider
Tells the connection provider to destroy itself. For many connection providers, this will essentially result in a no-op. However, connection provider users should always call this method when changing from one connection provider to another to ensure that there are no dangling database connections.- Specified by:
destroy
in interfaceConnectionProvider
-
getConnection
public Connection getConnection() throws SQLException
Description copied from interface:ConnectionProvider
Returns a database connection. When a Jive component is done with a connection, it will call the close method of that connection. Therefore, connection pools with special release methods are not directly supported by the connection provider infrastructure. Instead, connections from those pools should be wrapped such that calling the close method on the wrapper class will release the connection from the pool.- Specified by:
getConnection
in interfaceConnectionProvider
- Returns:
- a Connection object.
- Throws:
SQLException
- is an SQL error occured while retrieving the connection.
-
-