I have continued working on this and have learned some things I
didn't understand when I asked this question.

I have succeeded in deploying a PostgreSQL DataSource using the
file system service provider 
http://java.sun.com/products/jndi/serviceproviders.html).  I have
one small Java application that binds the DataSource to a name,
then another application can do a lookup on that name, do a 
getConnection on the DataSource and with that access the database.

Now, I'd like to do connection pooling.  After poring over the
archived messages of pgsql-jdbc and looking at the source code,
I'm having a hard time determining whether it's possible to do
this (without using some other software like PoolMan, Protomatter
or Tyrex).  Some of the messages in the mailing list such as
suggest that the ConnectionPoolDataSource interface ought to be
implemented, but I can't find any classes in the "enterprise" jar 
file or in the source tree that sound like this.

Is ConnectionPoolDataSource implemented?

Larry Mulcahy wrote:
> I'm trying to create a data source as described in paragraph
> 5.5.1 of the JDBC 2.0 Standard Extension API
> (http://java.sun.com/products/jdbc/jdbc20.stdext.pdf).
> (Another example: paragraph 3.7.2 "Deploying a Basic Datasource
> Object" in http://developer.java.sun.com/developer/Books/JDBCTutorial/).
> My application produces the output,
> java -classpath
> .:/usr/local/pgsql/share/java/postgresql.jar:/usr/local/java/jdbc2_0-stdext.jar
> Example
> Creating a new Context...
> Binding...
> Bind failed.
> Exception: javax.naming.NoInitialContextException: Need to specify class
> name in environment or system property, or as an applet parameter, or in
> an application resource file:  java.naming.factory.initial
> I found various documentation about different ways to specify a value
> for java.naming.factory.initial.  You can put it in
> $JAVA_HOME/lib/jndi.properties, you can specify it on the command line
> with -Djava.naming.factory.initial=..., you can create an environment
> Hashtable and pass it as one of the arguments to InitialContext as
> documented at http://java.sun.com/products/jndi/tutorial/beyond/env/.
> What I can't find is what value to actually give it for the
> InitialContextFactory.  Am I supposed to write this myself?
> This seems like a routine common action that people must do all the
> time, but I can't seem to find good documentation about how to do it.
> Is there some administration that needs to be done behind the scenes,
> e.g. starting a JNDI server?
> Code follows:
> import javax.naming.InitialContext;
> import javax.naming.Context;
> import java.util.Hashtable;
> public class Example {
>     public static void main(String args[])
>     {
>         org.postgresql.PostgresqlDataSource ds =
>             new org.postgresql.PostgresqlDataSource();
>         ds.setServerName("host");
>         ds.setDatabaseName("database");
>         Context ctx = null;
>         System.out.println("Creating a new Context...");
>         try {
>             ctx = new InitialContext();
>         }
>         catch (Exception e) {
>             System.out.println("Failed to create a new Context.");
>             System.out.println("Exception: " + e);
>             return;
>         }
>         System.out.println("Binding...");
>         try {
>             ctx.bind("jdbc/database", ds);
>         }
>         catch (Exception e) {
>             System.out.println("Bind failed.");
>             System.out.println("Exception: " + e);
>             return;
>         }
>     }
> }

            Larry Mulcahy               [EMAIL PROTECTED]
                          PGP public key at:

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?


Reply via email to