Thanks for forwarding this, Kathey.
Regards,
-Rick
Kathey Marsden wrote:
Rick Hillegas wrote:
Dear Derby users,
0Please read this message if you work on an application server or in
an application layer which cares about distributed transactions
and/or pooled connections.
Right now the inheritance graph for Derby's DataSources does not
mirror the corresponding graph of interfaces in javax.sql. Derby's
DataSources are classes which you will find in Derby's published
javadoc for the package org.apache.derby.jdbc. In particular, Derby's
XADataSources and ConnectionPoolDataSources implement the DataSource
interface. This is so even though the javax.sql.XADataSource and
javax.sql.ConnectionPoolDataSource interfaces themselves do not
extend javax.sql.DataSource.
We believe this is confusing, particularly to developers who are
trying to build applications which easily port across different
vendors' JDBC implementations. We propose to rework the hierarchy of
classes in org.apache.derby.jdbc so that our XADataSources and
ConnectionPoolDataSources no longer implement javax.sql.DataSource.
We propose to expose this change in Derby 10.2.
However, we do not want to make this change if it will break existing
applications. Please let us know if you think this will break your
app server or other Derby-powered application.
I got this feedback from someone supporting an app server.
<quote>
I think its a risky change if you ask me. You don't know if users
already depend on such behavior. Also, not sure i understand the
statement "We believe this is confusing, particularly to developers
who are trying to build applications which easily port across
different vendors' JDBC implementations." Can you explain more? BTW,
Oracle does implement the javax.sql.DataSource, so you are not hte
only one. DB2 doesn't though.
We depend on having your PooledDS be instance of
ConnnectionPoolDataSource and your XADS be instance of
javax.sql.XADataSource and nothing else.
Saying that however, i don't know what our stack products are doing
with the Derby DataSources specially if they have special Derby logic,
so my statement is only for our base.
</quote>
Kathey