commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DBCP-209) Is DataSource.getConnection(user, pass) working the way it is suppose to?
Date Thu, 25 Jan 2007 04:58:49 GMT

    [ https://issues.apache.org/jira/browse/DBCP-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12467241
] 

Phil Steitz commented on DBCP-209:
----------------------------------

Yes, that makes sense, but the way to do it is to have the application set properties on the
*pool*  - using setUsername, setPassword, instead of trying to do it *per connection* using
getConnection(user, pass).

> Is DataSource.getConnection(user, pass) working the way it is suppose to?
> -------------------------------------------------------------------------
>
>                 Key: DBCP-209
>                 URL: https://issues.apache.org/jira/browse/DBCP-209
>             Project: Commons Dbcp
>          Issue Type: Bug
>    Affects Versions: 1.2.1
>            Reporter: Michael Remijan
>             Fix For: 1.3
>
>
> In Tomcat's server.xml, I create a DataSource resource using the FACTORY org.apache.commons.dbcp.BasicDataSourceFactory
and I also provide a  URL and a DRIVERCLASSNAME.  However I do not provide USERNAME or PASSWORD
because I want to use DataSource.getConnection(user, pass) in my application.  When I call
DataSource.getConnection(user, pass) I get the following exception, java.sql.SQLException:
invalid arguments in call, which was unexpected.  I dug into the source code for BasicDataSource
and I found what I think is the source of the problem.  First, the method getConnection(user,
pass) call the createDataSource() method.  The createDataSource() method creates a Properties
object and tries to put the username and password into the properties object.  However, because
the server.xml file does contain a username or password, this Properties object (named connectionProperties
in the code) is empty.  The createDataSource() the proceeds to call the validateConnectionFactory()
method.  This method then tries to get a Connection object!! This attempt fails because the
Properties object has no username or password in it hence the Oracle driver complains about
being passed invalid arguments.  My question is why is the code working this way?  Why does
the createDataSource() and validateConnectionFactory() methods assume the username and password
have been set in server.xml and then attempt to try to return a Connection object with the
username and password passed to the getConnection(user, pass) method?  It would seem to me
the createDataSource() and validateConnectionFactory() methods should be aware of the username
and password passed to the getConnection(user, pass) if this method is used.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message