Version 2

    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.

     

    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

    DataSource

    s are intended for use outside a J2EE environment.

     

    JBoss uses standard JDBC drivers and adds the behaviour to turn them into full

    DataSource

    s 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