WAS v8.5 > Administer applications and their environment > Welcome to administering Data access resources > Administer data access applications > Configure a JDBC provider and data sourceConfigure a data source
Application components use a data source to access connection instances to a relational database.
The application server supports two different versions of data source. Determine the data source for the environment according to the enterprise bean and servlet specification levels that are the basis of the applications:
- Data sources (WebSphere Application Server Version 4) are for use with the EJB 1.0 specification and the Java Servlet 2.2 specification.
- Data sources of the latest standard version are for use with applications that implement the more advanced releases of these specifications.
When creating a data source, you associate it with a JDBC provider that is configured for access to a specific vendor database. The application server requires both objects for the applications to make calls to that particular database and receive data from it. The data source provides connection management capabilities that physically make possible these exchanges between the applications and the database.
- Open the dmgr console.
- Access the necessary console panel. Use one of the following paths:
- Resources > JDBC > Data sources
- Resources > JDBC > Data sources (WAS Version 4)
- Resources > JDBC > JDBC providers > JDBC_provider > Data sources
- Resources > JDBC > JDBC providers > JDBC_provider > Data sources (WAS Version Version 4)
- Select the scope at which applications can use the data source. Choose a cell, node, cluster, or server. For more information, see the topic on scope settings.
Version 4 only: From this point onward, the steps for creating WAS Version 4 data sources differ from the steps for creating data sources of the latest standard version. To configure a Version 4 data source:
- Click New to proceed to the console panel for defining required properties.
- On this properties panel specify values for the fields that are grouped under the heading Configuration. The application server requires these properties to implement your JDBC driver classes.
li> Save your configuration by clicking OK. You are now finished with the primary data source configuration tasks.
li> Define other properties the database vendor might require, or offer as options, for using the JDBC driver. The application server calls them custom properties, and requires set them on the data source. Begin by clicking the Custom Properties link that is now displayed on the dmgr console panel. Consult the database documentation to learn about these required and optional properties.
- Click New. This action causes the Create a data source wizard to launch and display the Enter basic data source information panel. The first field is the scope field, which is read-only. This field displays your previous scope selection.
li> Type a data source name in the Data source name field. This name identifies the data source for administrative purposes only.
li> Type a JNDI name in the JNDI name field. The application server uses the JNDI name to bind resource references for an application to this data source. Follow these requirements when we specify JNDI names:
- Do not assign duplicate JNDI names across different resource types, such as data sources versus J2C connection factories or JMS connection factories.
- Do not assign duplicate JNDI names for multiple resources of the same type in the same scope.
For more information on JNDI, consult the topic on naming.
- Click Next to see the Select JDBC provider panel. The Select JDBC provider panel is skipped if we do not have any JDBC providers configured at the current scope.
- Select an existing JDBC provider, or create a new provider.
- Select an existing JDBC provider.
- Click Select an existing JDBC provider.
- Select a JDBC driver from the list.
- Click Next. You now see the panel entitled Enter database specific properties for the data source.
- Create a new JDBC provider.
- Click Create new JDBC provider.
- Click Next to see the Create JDBC provider panel.
- Use the first drop-down list to select the database type of the JDBC provider that create.
The User-Defined option: Select User-Defined for the database type if you encounter either of the following scenarios:
- We do not see the database type.
- We cannot select the JDBC provider type that you need in the next step.
The user-defined selection triggers the wizard panel to display your provider type as a User-defined JDBC provider, and your implementation type as User-defined. Consult the database documentation for the JDBC driver class files, data source properties, and so on required for the user-defined provider. Supply this information on the next two wizard panels:
- database class path information
- database-specific properties
- If the JDBC provider type is displayed in the second list, select your JDBC provider type. Select Show Deprecated to trigger the display of both current and deprecated providers. If we cannot find your provider in this expanded list, then select User-Defined from the previous list of database types.
- From the third list, select the implementation type that is necessary for the application. If the application does not require that connections support two-phase commit transactions, choose Connection Pool Data Source. Choose XA Data Source, however, if the application requires connections that support two-phase commit transactions. Applications that use this data source configuration have the benefit of container-managed transaction recovery.
After you select an implementation type, the wizard fills the name and the description fields for the JDBC provider. We can type different values for these fields; they exist for administrative purposes only.
- Click Next after we have defined the database type, provider type, and implementation type. Now you see the wizard panel Enter database class path information.
- In the class path field, type the full path location of the database JDBC driver class files. Your class path information becomes the value of the WebSphere environment variable that is displayed on this panel, in the form of ${DATABASE_JDBC_DRIVER_PATH}. The application server uses the variable to define your JDBC provider; this practice eliminates the need to specify static JDBC class paths for individual applications. Remember that if we do not provide the full, correct JDBC driver class path for the variable, your data source ultimately fails. If the field already displays a fully qualified class path, we can accept that variable definition by completing the rest of this wizard panel and clicking Next.
- Use the Native library path field to specify additional class files that your JDBC driver might require to function properly on the application server platform. Type the full directory path name of these class files.
- Click Next. You now see the Enter database specific properties for the data source panel.
- Complete all of the fields on the Enter database specific properties for the data source panel.
- Click Use this data source in container managed persistence (CMP) if container managed persistence (CMP) enterprise beans must access this data source.
- Any other property fields that are displayed on this wizard panel are specific to the database type. See the topic, Data source minimum required settings, by vendor, for information on these property settings. The article addresses both current and deprecated JDBC providers that are predefined in the application server.
User-defined data sources: This wizard panel does not display additional property fields for data sources that correspond with the user-defined JDBC providers. However, from the JDBC driver class files that you installed, the application server can generally extract the necessary data source property names. The application server defines them as data source custom properties, displays them on a custom properties console panel, and assigns them default values. Consult the database documentation about setting these properties and any other requirements for the user-defined data source. After creating the data source, navigate to the corresponding custom properties collection panel in the dmgr console by clicking Data sources > data_source > Custom properties. Review the property default values and modify them if necessary.
- Optional: Configure the security aliases for the data source. We can select none for any of the authentication methods, or choose one of the following types:
- Component-managed authentication alias - specifies an authentication alias to use when the component resource reference res-auth value is Application. To define a new alias, navigate to Related Items > J2EE Connector Architecture (J2C) authentication data entries. A component-managed alias represents a combination of ID and password specified in an application for data source authentication. Therefore, the alias set on the data source must be identical to the alias in the application code.
- Use the drop-down list to select an existing component-managed authentication alias.
- To create a new alias, click the links provided. This action closes the data source wizard and triggers the dmgr console to display the J2C authentication data panel. Click New to define a new alias. Click OK to save your settings and view the new alias on the J2C authentication data panel. Restart the data source wizard by navigating back to the data source collection panel, selecting the appropriate scope, and clicking New.
For more information on Java 2 Connector (J2C) security, see the topic on managing Java 2 Connector Architecture authentication data entries.
- Mapping-configuration alias - is used only in the absence of a login configuration on the component resource reference. The specification of a login configuration and the associated properties on the component resource reference is the preferred way to define the authentication strategy when the res-auth value is set to Container. If we specify the DefaultPrincipalMapping login configuration, the associated property is a JAAS - J2C authentication data entry alias.
- Container-managed authentication alias - is used only in the absence of a login configuration on the component resource reference. The specification of a login configuration and the associated properties on the component resource reference determines the container-managed authentication strategy when the res-auth value is set to Container.
If we have defined security domains in the application server, we can click Browse... to select an authentication alias for the resource that you are configuring. Security domains support isolating authentication aliases between servers. The tree view is useful in determining the security domain to which an alias belongs, and the tree view can help you determine the servers that are able to access each authentication alias. The tree view is tailored for each resource, so domains and aliases are hidden when we cannot use them.
- Click Next to view the Summary panel, and review any information for the data source. If any information is not correct, we can click Previous to go back and correct it.
- Click Finish to save the configuration and exit the wizard. You now see the Data sources panel, which displays your new configuration in a table along with other data sources configured for the same scope.
- We can override the default values for some data source properties.
- We can configure additional properties the database vendor might require or offers as options. Consult the database documentation about these settings.
- We can add the commitOrRollbackOnCleanup custom property to the settings of a JDBC data source if you want a specific action taken with any uncommitted work if your JDBC data source unexpectedly closes. The values that can be specified for this property are commit or rollback.
If your JDBC data source supports Unit of Work (UOW) detection, this property only applies when we are working within a discrete unit of work. If your JDBC data source does not support UOW detection, this property always applies.
If we do not add this property to your JDBC data source settings, any detected implicit transaction is rolled back, and the application must deal with any undetected implicit transactions.
To add this custom property to your JDBC data source configuration settings:
- In the dmgr console, click JDBC providers > JDBC_provider > Data sources > data_source > Custom properties > New.
- Enter commitOrRollbackOnCleanup in the Name field, and either commit or rollback in the Value field.
- Save your changes.
The following topics in this information center inform you of how to use the dmgr console to assign the property values:
- Connection pool properties
- Tune connection pools
- WAS data source properties
- Java EE resource provider or connection factory custom properties page
Subtopics
- Tune connection pools
Using connection pools helps to both alleviate connection management overhead and decrease development tasks for data access. Each time an application attempts to access a backend store (such as a database), it requires resources to create, maintain, and release a connection to that datastore. To mitigate the strain this process can place on overall application resources, the application server enables administrators to establish a pool of backend connections that applications can share on an application server. Connection pooling spreads the connection overhead across several user requests, thereby conserving application resources for future requests.- Disable statement pooling
Disable statement pooling when performing some Data Definition Language (DDL) operations, which might not be compatible with statement pooling. DDL operations, such as dropping and recreating tables, are not compatible with statement pooling when using the IBM Informix database. DDL operations invalidate the pooled statements or cause them to produce unexpected results.- Data source page
Use this page to view configured data sources, which are the resources that provide connections to your relational database.- Data source (WAS V4) page
Use this page to view the settings of a WAS Version 4.0 data source.- Java EE resource provider or connection factory custom properties page
Use this page to view the custom properties of a Java EE resource provider or connection factory.- Custom Properties (Version 4) page
Use this page to view properties for a WAS Version 4.0 data source.- Disable statement pooling
Disable statement pooling when performing some Data Definition Language (DDL) operations, which might not be compatible with statement pooling. DDL operations, such as dropping and recreating tables, are not compatible with statement pooling when using the IBM Informix database. DDL operations invalidate the pooled statements or cause them to produce unexpected results.- Data source page
Use this page to view configured data sources, which are the resources that provide connections to your relational database.- Data source (WAS V4) page
Use this page to view the settings of a WAS Version 4.0 data source.- Java EE resource provider or connection factory custom properties page
Use this page to view the custom properties of a Java EE resource provider or connection factory.- Custom Properties (Version 4) page
Use this page to view properties for a WAS Version 4.0 data source.
Related concepts:
Data source lookups for enterprise beans and web modules
Data sources
JDBC providers
Naming
Related
Manage Java 2 Connector Architecture authentication data entries for JAAS
Reference:
WAS data source properties
Data source minimum required settings, by vendor
Data source settings
Data source (WAS Version 4) settings
Connection pool properties