Version 4

    I want to plugin a custom/thirdparty DataSource

     

    XADataSource

     

    This is fine, JBoss JCA will drive the XADataSource using the standard api.

     

    You deploy is using an xa-datasource

     

    DataSource with internal pool

     

    This is a non XA datasource that does its own pooling, such as Oracle's DataSource for use with RAC.

     

    If you do this, you are outside JCA. The internal pool of the DataSource will not understand the transactions or security configuration. Nor will any other component that expects the connection to be controlled by JCA which does the JTA (transaction manager) integration.

     

    These DataSources are intended for use outside a J2EE environment.

     

    JBoss uses standard JDBC drivers and adds the behaviour to turn them into DataSources with the full J2EE contract.

     

    Additional note

     

    This difference is also observed in the JCA spec where a ManagedConnectionFactory has two methods.

     

    • createConnectionFactory() - with an internal connection manager - intended for use outside J2EE

    • createConnectionFactory(ConnectionManager) - for use with the J2EE application server's connection manager and pool