Installed applications use a data source to obtain connections to a relational database. A data source is analogous to the Java EE Connector Architecture (JCA) connection factory, which provides connectivity to other types of enterprise information systems (EIS).
A data source is associated with a JDBC provider, which supplies the driver implementation classes that are required for JDBC connectivity with the specific vendor database. Application components transact directly with the data source to obtain connection instances to the database. The connection pool that corresponds to each data source provides connection management.
We can create multiple data sources with different settings, and associate them with the same JDBC provider. For example, we might use multiple data sources to access different databases within the same vendor database application. WAS requires JDBC providers to implement one or both of the following data source interfaces, which are defined by Sun Microsystems. These interfaces enable the application to run in a single-phase or two-phase transaction protocol.
A data source that supports application participation in local and global transactions, excepting two-phase commit transactions. When a connection pool data source is involved in a global transaction, transaction recovery is not provided by the transaction manager. The application is responsible for providing the backup recovery process if multiple resource managers are involved.
A connection pool data source does support two-phase commit transactions if the data source is making use of Last participant support, which enables a single one-phase commit resource to participate in a global transaction with one or more two-phase commit resources.
A data source that supports application participation in any single-phase or two-phase transaction environment. When this data source is involved in a global transaction, WAS transaction manager provides transaction recovery.
Prior to version 5.0 of the appserver, the function of data access was provided by a single connection manager (CM) architecture. This connection manager architecture remains available to support J2EE 1.2 applications, but another connection manager architecture is provided, based on the JCA architecture supporting the J2EE 1.3 application style, J2EE 1.4 and Java EE applications.
These architectures are represented by two types of data sources. To choose the right data source, administrators must understand the nature of their applications, EJB modules, and enterprise beans.
- Data source (WAS V4)
This data source runs under the original CM architecture. Applications using this data source behave as if they were running in V4.0.
- Data source
This data source uses the JCA standard architecture to provide support for J2EE version 1.3 and 1.4, as well as Java EE applications. It runs under the JCA connection manager and the relational resource adapter.
Choice of data source
- J2EE 1.2 application
All EJB 1.1 enterprise beans, JDBC applications, or Servlet 2.2 components must use the 4.0 data source.
- J2EE 1.3 (and subsequent releases) application
- EJB 1.1 module
All EJB 1.x beans must use the 4.0 data source.
- EJB 2.0 (and subsequent releases) module
- JDBC applications and Servlet 2.3+ components
Must use the new data source.
Related conceptsRelational resource adapters and JCA
Related tasksAccessing data from application clients
Set a JDBC provider
Set a data source
Set a JDBC provider using scripting
Set new data sources using scripting
Set new WAS40 data sources using scripting
Create a JDBC provider and data source using the Java Management Extensions API
Configuring data access for application clients using the assembly tool and ACRCT
Create a resource reference using the assembly tool
Assembling data access applications using the assembly tool
Deploy data access applications
Develop data access applications
Set a JDBC provider for a clustered environment
Migrate applications to use data sources of the current JCA
Set a JDBC provider and data source
Use one-phase and two-phase commit resources in the same transaction