db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2488) When loaded by jvm1.6 - Derby JDBC 3.0 driver returns 4 for JDBC driver major
Date Thu, 29 Mar 2007 00:10:25 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12485033
] 

Daniel John Debrunner commented on DERBY-2488:
----------------------------------------------

No, there are two data sources versions, the 40 ones and the older ones.

In a JDK 1.4/1.5 environment the applications must use the old ones (e.g. EmbeddedConnectionPoolDataSource)

In JDK 6 applications should be using EmbeddedConnectionPoolDataSource40.

The situation you are seeing is that the old version is being run in JDK 6, which of course
could happen for existing applications.
In this case the api presented is a bit of a mix-up, it is not coded to be a JDBC 3.0 data
source.
It will (should) return JDBC 4 objects even though the object it self does not satisify the
JDBC 4.0 interfaces. Ie. EmbeddedConnectionPoolDataSource does not implement Wrapper and CommonDataSource.

I think the documentation is correct, but silent on what happens when using the old versions
in JDK 6.

> When loaded by jvm1.6 - Derby JDBC 3.0 driver returns 4 for JDBC driver major 
> ------------------------------------------------------------------------------
>
>                 Key: DERBY-2488
>                 URL: https://issues.apache.org/jira/browse/DERBY-2488
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.2.2.0
>         Environment: Run test using JVM 1.6
>            Reporter: Stan Bradbury
>         Attachments: showJDBCdsMetaDataLis.class, showJDBCdsMetaDataLis.class, showJDBCdsMetaDataLis.java,
showJDBCdsMetaDataLis.java
>
>
> When loaded using JVM 1.6 the JDBC 3.0 data source (org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource)
is reporting a JDBC spec compliance level of 4.  The DatabaseMetaData.getJDBCMajorVersion
method should return the
> correct spec compliance level (3) for the JDBC 3.0 data source.  The application server
that relies on the reported spec compliance level to determine if a statement event listener
should be registered will encounter a failure when  attemptting to register  an event listener
with the JDBC 3.0 driver.
> Note that the JDBC 4.0 metadata call ..getMetaData().supportsStoredFunctionsUsingCallSyntax()
is executed by the JDBC 3.0 driver.  This doesn't bother me but seems curious that this is
supported by a JDBC 3.0 driver.
> Attached is a test case based on the test code from DERBY-8862 (JDBC 4 driver reports
incorrect spec complieance level).
> Running the test:
> set JAVA_HOME to a 1.6 JVM
> Compile program
> run command:   ${JAVA_HOME}/java showJDBCdsMetaDataLis <path-to-database> 3.0 
> Using JAVA 6.0
> > "%JAVA_HOME%\bin\java" showJDBCdsMetaDataLis "c:\tstdb102" 3.0
>  . . JDBC 3 or less: Using jdbc.EmbeddedConnectionPoolDataSource
> Database product: Apache Derby
> Database version: 10.2.2.0 - (485682)
> Driver name:      Apache Derby Embedded JDBC Driver
> Driver version:   10.2.2.0 - (485682)
> JDBC driver major version: 4
> JDBC driver minor version: 0
> JDBC 4.0 metaData - SFusingCall: true
>  >> exception thrown:
> A non SQL error occured.
> java.lang.AbstractMethodError: org.apache.derby.jdbc.EmbedPooledConnection.addStatementEventListener(Ljavax/sql/Statemen
> tEventListener;)V
>         at showJDBCdsMetaDataLis.main(showJDBCdsMetaDataLis.java:103)

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


Mime
View raw message