Jeff,

I disagree.  Part of the benefit of a DataSource is that it can abstract
the actual driver or database being used.  If I can ask a DataSource for
a database connection and not have to care about which client-side
driver to load, and (less practically), even what rdbms i am using. 
That way, the app server can change databases, drivers, even vendors
without its clients being aware.

I experienced this issue porting an app from WebLogic.  I used the same
schema and sql with SQL Server and Postgres on WebLogic.  My client
application (which both queried and populated the database) never
changed.  It just got a Context from the app server, gfot a DataSource
by name, then got plain old JDBC Connections from there.  No JDBC
drivers at all.

I think that is a useful layer.

PS: I have unsubscribed from the list - if you would like to continue
the discussion, please reply to my personal address.

Thanks for your thoughts.

I appreciate your point of view, I just disagree with it.

Jeff Schnitzer wrote:
> 
> If the client is going to use the JDBC driver, it must be able to load
> the class(es).  This means you need to package the driver with the
> client application.  I'm puzzled by your comments about clients not
> needing to care about drivers - are these classes just going to
> materialize out of thin air?  I suppose in theory the server could do
> something with http classloading, but why bother with the extra
> complexity, security considerations, and licensing issues?  You know
> you're going to need the classes anyways, package them with the client.
> 
> Jeff
> 
> >-----Original Message-----
> >From: Tom Mitchell [mailto:[EMAIL PROTECTED]]
> >Sent: Tuesday, January 30, 2001 9:08 AM
> >To: Orion-Interest
> >Subject: Re: R: R: frustrated - jdbc: No suitable driver
> >
> >
> >Again, thanks for your replies.
> >
> >What is curious to me is that the driver performs fine within a jsp.  I
> >look up loc with no problem.
> >
> >It only has a problem from a client application.  And, it does not seem
> >like a client to a DataSource should ever have to care about drivers -
> >that is the container's job in my opinion.
> >
> >  <data-source
> >        class="com.evermind.sql.ConnectionDataSource"
> >        name="SomeDatasource"
> >        location="loc"
> >        xa-location="jdbc/xa/SomeXADS"
> >        ejb-location="ejb/weather"
> >        schema="database-schemas/postgresql.xml"
> >        connection-driver="org.postgresql.Driver"
> >        username="tom"
> >        password="tR16/4"
> >        url="jdbc:postgresql://192.168.1.5:5432/weather"
> >        inactivity-timeout="30"
> >   />
> >
> >Any more ideas?
> >
> >DeVincentiis Giustino wrote:
> >>
> >> Sorry, the message "No suitable driver" probably means a
> >problem with jdbc
> >> driver.
> >> So if you have into the data-sources.xml the definition:
> >>
> >>         <data-source
> >>                 class="com.evermind.sql.DriverManagerDataSource"
> >>                 name="Hypersonic"
> >>                 location="jdbc/HypersonicCoreDS"
> >>                 xa-location="jdbc/xa/HypersonicXADS"
> >>                 ejb-location="jdbc/HypersonicDS"
> >>                 connection-driver="org.hsql.jdbcDriver"
> >>                 username="sa"
> >>                 password=""
> >>                 url="jdbc:HypersonicSQL:./database/defaultdb"
> >>                 inactivity-timeout="30"
> >>         />
> >>
> >> you should lookup "jdbc/HypersonicDS", and you should have the driver
> >> classes in your /orion/lib directory.
> >>
> >> Giustino
> >>
> >> -----Messaggio originale-----
> >> Da: Tom Mitchell [mailto:[EMAIL PROTECTED]]
> >> Inviato: martedì 30 gennaio 2001 12.24
> >> A: Orion-Interest
> >> Oggetto: Re: R: frustrated - jdbc: No suitable driver
> >>
> >> Thanks for the reply.  That is exactly how I am initializing
> >the context
> >> in my client application:
> >>
> >>       Hashtable ht = new Hashtable();
> >>       ht.put(Context.INITIAL_CONTEXT_FACTORY,
> >> "com.evermind.server.ApplicationClientInitialContextFactory");
> >>       ht.put(Context.PROVIDER_URL, "ormi://192.168.1.3");
> >>       ht.put(Context.SECURITY_PRINCIPAL, "someUser");
> >>       ht.put(Context.SECURITY_CREDENTIALS, "secret");
> >>       // Obtain connection
> >>       InitialContext ctx = new InitialContext(ht);
> >>
> >> DeVincentiis Giustino wrote:
> >> >
> >> > Try initializing the context this way:
> >> > ...
> >> > Properties props = new Properties();
> >> >
> >>
> >props.setProperty("java.naming.factory.initial","com.evermind.s
> >erver.Applica
> >> > tionClientInitialContextFactory");
> >> > props.setProperty("java.naming.provider.url",
> >> "ormi://localhost/app-name");
> >> > props.setProperty("java.naming.security.principal", "admin");
> >> > props.setProperty("java.naming.security.credentials", "123");
> >> > InitialContext ctx = new InitialContext(props);
> >> > ...
> >> >
> >> > Giustino De Vincentiis
> >> >
> >> > -----Messaggio originale-----
> >> > Da: Tom Mitchell [mailto:[EMAIL PROTECTED]]
> >> > Inviato: martedì 30 gennaio 2001 1.23
> >> > A: Orion-Interest
> >> > Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> >> > Oggetto: frustrated - jdbc: No suitable driver
> >> >
> >> > Hi All,
> >> >
> >> > I am used to WebLogic, so please pardon my ignorance...
> >> >
> >> > I am trying to get my WebLogic application to run on Orion.
> >> >
> >> > I have a DataSource set up to PostgreSql.  It seems OK because this
> >> > Orion JSP works fine:
> >> >
> >> >       InitialContext ctx = new InitialContext();
> >> >       out.print("<br>Context: " + ctx);
> >> >       DataSource ds = (DataSource) ctx.lookup("jdbc/DefaultDS");
> >> >       Connection conn = ds.getConnection();
> >> >
> >> >       // Create query and get results
> >> >       Statement stmt = conn.createStatement();
> >> >       ResultSet rs = stmt.executeQuery("select count(*) FROM
> >> > weathersnapshots");
> >> >
> >> >       // List results
> >> >       while ( rs.next() ) {
> >> >         out.println( "<br>" + rs.getObject(1) + "<br>");
> >> >       }
> >> >
> >> >       // Close connection - important!
> >> >       conn.close();
> >> >
> >> > This runs fine and gives me the count of rows in the table.
> >> >
> >> > When I try to get the standalone client to the same
> >DataSource to run, I
> >> > get this:
> >> >
> >> > Context: javax.naming.InitialContext@316e52
> >> > Exception in thread "main" java.sql.SQLException: No
> >suitable driver
> >> >         at java.sql.DriverManager.getConnection(Unknown Source)
> >> >         at java.sql.DriverManager.getConnection(Unknown Source)
> >> >         at
> >com.evermind.sql.DriverManagerDataSource.getConnection(JAX)
> >> >         at Test.main(Test.java:18)
> >> >
> >> > No errors appear on the server's console.  I can not
> >imagine why I would
> >> > want to have a DB driver's jar in my client's classpath
> >(ALTHOUGH I HAVE
> >> > TRIED THAT).
> >> >
> >> > I have an application-client.xml:
> >> >
> >> > <application-client>
> >> > </application-client>
> >> >
> >> > I have scoured the list archives and can not find the solution.
> >> >
> >> > Remember, within the container, it runs fine.  It is the
> >standalone app
> >> > that does not work.
> >> >
> >> > Using:
> >> > Orion 1.4.5
> >> > JDK 1.3
> >> > Win2K
> >> >
> >> > Thanks in advance.
> >> >
> >> > --
> >> > Tom Mitchell
> >> > [EMAIL PROTECTED]
> >> > Very Current Stoneham, MA Weather
> >> > http://www.tom.org
> >>
> >> --
> >> Tom Mitchell
> >> [EMAIL PROTECTED]
> >> Very Current Stoneham, MA Weather
> >> http://www.tom.org
> >
> >--
> >Tom Mitchell
> >[EMAIL PROTECTED]
> >Very Current Stoneham, MA Weather
> >http://www.tom.org
> >
> >

--
Tom Mitchell
[EMAIL PROTECTED]
Very Current Stoneham, MA Weather
http://www.tom.org

Reply via email to