[
https://issues.apache.org/jira/browse/DERBY-4719?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883137#action_12883137
]
Kristian Waagan commented on DERBY-4719:
----------------------------------------
The test attached to DERBY-4070 may be of use.
> Define consistent Derby data source behavior
> --------------------------------------------
>
> Key: DERBY-4719
> URL: https://issues.apache.org/jira/browse/DERBY-4719
> Project: Derby
> Issue Type: Task
> Components: Documentation, Javadoc, JDBC, Network Client
> Affects Versions: 10.7.0.0
> Reporter: Kristian Waagan
>
> The behavior of the various data source implementations in Derby isn't
> consistent.
> As a starting point, from the thread [1] on derby-dev:
> -----
> Hi,
> I have been investigating how the various Derby data source implementations
> behave when it comes to [bean] properties.
> Properties and attributes are used interchangeably, and I'll be using the
> following abbreviations:
> o DS-[E|C] the "normal" data souce embedded/client
> o CP-[E|C] ConnectionPoolDataSource embedded/client
> o XA-[E|C] XADataSource embedded/client
> Here are some of the current issues:
> 1) CP-C and XA-C effectively ignore the connection attribute string for
> certain attributes (those who have individual setters, DERBY-4067)
> 2) *-E don't update the internal property state based on the connection
> attribute string (i.e. specifying ";user=myuser" won't change the return
> value of getUser() after connect).
> 3) Only some of the properties are updated from the connection attribute
> string. This is as expected, but it is confusing that for instance
> 'traceDirectory' is updated and 'traceLevel' isn't.
> 4) *-C has 'APP' as the default user, *-E has <null>.
> 5) Some property setters accept all values, others throw an exception if the
> value is invalid.
> I don't think all these issues should be fixed, but I'd like to fix (1), as
> it has caused some trouble in the past (i.e., user not understanding why the
> settings aren't taking effect).
> There are several possible fixes for (1):
> 1a) Make CP-C and XA-C process the connection attribute string to update the
> internal state.
> 1b) Make DS-C ignore the connection attribute string (may break existing
> deployments).
> 1c) Throw exception if a property with a setter is specified in the
> connection attribute string.
> I don't care that much about which solution is chosen, but I'd prefer that
> the various data sources are consistent. For instance, it would be nice if a
> user could swap ClientDataSource with ClientConnectionPoolDataSource without
> having to change the data source definition. For instance, doing this today
> with "ssl=basic" in the connection attribute string would make DS-C connect
> with SSL, but CP-C would connection without SSL.
> We have this wording in the JavaDoc for
> ClienBaseDataSource.setConnectionAttributes(String):
> "Set this property to pass in more Derby specific connection URL attributes.
> Any attributes that can be set using a property of this DataSource
> implementation (e.g user, password) should not be set in
> connectionAttributes. Conflicting settings in connectionAttributes and
> properties of the DataSource will lead to unexpected behaviour."
> Any opinions or questions on any of this?
> Regards,
> -----
> [1] http://old.nabble.com/Derby-data-sources-to28692616.html#a28692616
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.