[wildfly-dev] using <xa-datasource> and <data-source> with same driver and other related questions

Brian Stansberry brian.stansberry at redhat.com
Fri May 5 15:20:39 EDT 2017


Quick and dirty answers..

1) Yes.

2) I believe the xa-datasource-class management attribute on the driver resources is cruft. The code related to drivers does not use it beyond storing a value in the model.

3) I *think* that relates to the method java.sql.Driver.jdbcCompliant(), whose javadoc says:

"Reports whether this driver is a genuine JDBC Compliant™ driver. A driver may only report true here if it passes the JDBC compliance tests; otherwise it is required to return false.
JDBC compliance requires full support for the JDBC API and full support for SQL 92 Entry Level. It is expected that JDBC compliant drivers will be available for all the major commercial databases.

This method is not intended to encourage the development of non-JDBC compliant drivers, but is a recognition of the fact that some vendors are interested in using the JDBC API and framework for lightweight databases that do not support full database functionality, or for special databases such as document information retrieval where a SQL implementation may not be feasible."

> On May 5, 2017, at 12:52 PM, John Mazzitelli <mazz at redhat.com> wrote:
> 
> I have a stupid question and two not-so-stupid questions.
> 
> 1. I think I know the answer but I really just need confirmation.
> 
> Suppose I have this defined in standalone.xml:
> 
>  <driver name="h2" module="com.h2database.h2">
>     <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
>  <driver>
> 
> Notice it defines the XA datasource class.
> 
> I can share this with both a non-XA <data-source> and a XA <xa-data-source>, correct? So this is OK:
> 
> <datasource jndi-name="java:/foo">
>  <driver>h2</driver>
> <datasource>
> 
> <xa-datasource jndi-name="java:/bar">
>  <driver>h2</driver>
> <xa-datasource>
> 
> That's the stupid question.
> 
> 2. Here a second question - what is the purpose of both "driver-xa-datasource-class-name" and "xa-datasource-class". The weird thing is the XML in standalone.xml uses "xa-datasource-class" but that seems to be the value of the attribute "driver-xa-datasource-class-name" - what is this xa-datasource-class ATTRIBUTE?
> 
> The docs are not clear here: https://wildscribe.github.io/Wildfly/10.0.0.Final/subsystem/datasources/jdbc-driver/index.html
> 
> where it says:
> 
>   * driver-xa-datasource-class-name The fully qualified class name of the javax.sql.XADataSource implementation module-slot The slot of the module from which the driver was loaded, if it was loaded from the module path profile Domain Profile in which driver is defined. Null in case of standalone server
>   * xa-datasource-class XA datasource class
> 
> 3. Third question - what is this "jdbc-compliant" attribute used for? The docs don't indicate what it would actually be used for:
> 
>   * jdbc-compliant - Whether or not the driver is JDBC compliant
> 
> If I am defining a JDBC driver, wouldn't you think it is JDBC compliant? :-)
> 
> Thanks.
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev

-- 
Brian Stansberry
Manager, Senior Principal Software Engineer
JBoss by Red Hat






More information about the wildfly-dev mailing list