skip to main content
JDBC Connection Pool Manager : Creating a Data Source : Creating a Data Source Using the DataDirect Connection Pool Manager
 

Creating a Data Source Using the DataDirect Connection Pool Manager

The following Java code example creates a data source for JDBC and registers it to a JNDI naming service. The PooledConnectionDataSource class is provided by the DataDirect com.ddtek.pool package. In the following code example, the PooledConnectionDataSource object references a JDBC data source object. Therefore, the example performs a lookup by setting the DataSourceName attribute to the JNDI name of a registered pooled data source (in this example, jdbc/OpenAccessSparkyOracle, which is the JDBC DataSource object created in section Creating a DataDirect OpenAccess SDK Data Source Object).
Client applications that use this data source must perform a lookup using the registered JNDI name (jdbc/SparkyOracle in this example).
//*************************************************************
//
// This code creates a data source and registers it to a JNDI naming
// service. This data source uses the PooledConnectionDataSource
// implementation provided by the DataDirect com.ddtek.pool package.
//
// This data source refers to a previously registered pooled data source.
//
// This data source registers its name as <jdbc/SparkyOracle>.
// Client applications using pooling must perform a lookup for this name.
//
//************************************************************************
 
// From the DataDirect connection pooling package:
import com.ddtek.pool.PooledConnectionDataSource;
 
import javax.sql.*;
import java.sql.*;
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;
 
public class PoolMgrDataSourceRegisterJNDI
{
public static void main(String argv[])
{
try {
// Set up data source reference data for naming context:
// ----------------------------------------------------
// Create a pooling manager's class instance that implements
// the interface DataSource
PooledConnectionDataSource ds = new PooledConnectionDataSource();
 
ds.setDescription("Data Source");
 
// Refer to a previously registered pooled data source to access
// a ConnectionPoolDataSource object
ds.setDataSourceName("jdbc/OpenAccessSparkyOracle");
 
// The pool manager will be initiated with 5 physical connections
ds.setInitialPoolSize(5);
 
// The pool maintenance thread will make sure that there are
// at least 5 physical connections available
ds.setMinPoolSize(5);
 
// The pool maintenance thread will check that there are no more
// than 10 physical connections available
ds.setMaxPoolSize(10);
 
// The pool maintenance thread will wake up and check the pool
// every 20 seconds
ds.setPropertyCycle(20);
 
// The pool maintenance thread will remove physical connections
// that are inactive for more than 300 seconds
ds.setMaxIdleTime(300);
 
// Set tracing off since we choose not to see output listing
// of activities on a connection
ds.setTracing(false);
 
// Set up environment for creating initial context
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
env.put(Context.PROVIDER_URL, "file:c:\\JDBCDataSource");
Context ctx = new InitialContext(env);
 
// Register the data source to JNDI naming service
// for application to use
ctx.bind("jdbc/SparkyOracle", ds);
 
} catch (Exception e) {
System.out.println(e);
return;
}
 
} // Main
} // class PoolMgrDataSourceRegisterJNDI