[ 
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to