After the Progress DataDirect data source object has been created and registered, you must create the PooledConnectionDataSource object and register it with a JNDI naming service as shown in the following Java code example.
Note: The parameter of the DataSourceName method must be set to the JNDI name of a registered driver DataSource object. This specifies the driver DataSource object to be used by the connection pool. The following code example sets the parameter of the DataSourceName method to the JNDI name of the driver DataSource object created in the previous topic, "Creating a Driver DataSource Object."
//************************************************************************
// 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 registered
// Progress DataDirect for JDBC driver DataSource object.
//
// This data source registers its name as <jdbc/PoolCassandra>.
//
// NOTE: To connect using a data source, the driver needs to access a JNDI data
// store to persist the data source information. To download the JNDI File
// System Service Provider, go to:
//
// http://www.oracle.com/technetwork/java/javasebusiness/downloads/
// java-archive-downloads-java-plat-419418.html#7110-jndi-1.2.1-oth-JPR
//
// Make sure that the fscontext.jar and providerutil.jar files from the
// download are on your classpath.
//************************************************************************
// From the DataDirect connection pooling package:
import com.ddtek.pool.PooledConnectionDataSource;
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("Cassandra Data Source");
// Specify a registered driver DataSource object to be used
// by this data source to create pooled connections
ds.setDataSourceName("jdbc/ConnectCassandra");
// The pool manager will be initiated with 5 physical connections
ds.setInitialPoolSize(5);
// The pool maintenance thread will make sure that there are 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 because we choose not to see an 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 this data source to the JNDI naming service
ctx.bind("jdbc/PoolCassandra", ds);