| type=page |
| status=published |
| title=Administering Database Connectivity |
| next=connectors.html |
| prev=part-res-and-svcs-admin.html |
| ~~~~~~ |
| |
| = Administering Database Connectivity |
| |
| [[GSADG00015]][[ablih]] |
| |
| |
| [[administering-database-connectivity]] |
| == 11 Administering Database Connectivity |
| |
| This chapter provides procedures for performing database connectivity |
| tasks in the {productName} 7 environment by |
| using the `asadmin` command-line utility. |
| |
| The following topics are addressed here: |
| |
| * link:#gipbp[About Database Connectivity] |
| * link:#ggkon[Setting Up the Database] |
| * link:#ggndx[Configuring Access to the Database] |
| * link:#beamw[Configuration Specifics for JDBC Drivers] |
| |
| Instructions for accomplishing these tasks by using the Administration |
| Console are contained in the Administration Console online help. |
| |
| [[gipbp]][[GSADG00576]][[about-database-connectivity]] |
| |
| === About Database Connectivity |
| |
| A database management system (DBMS) provides facilities for storing, |
| organizing, and retrieving data. The information in databases is often |
| described as persistent data because it is saved on disk and exists |
| after the application process ends. Most business applications store |
| data in relational databases. Applications can access database |
| information by using the Java Database Connectivity (JDBC) API. |
| |
| The key elements of database connectivity are the following: |
| |
| * Database. The repository where data is stored for an enterprise. Java |
| EE applications access relational databases through the JDBC API. For |
| administration procedures, see link:#ggkon[Setting Up the Database]. |
| * JDBC Connection Pool. A JDBC connection pool is a group of reusable |
| connections for a particular database. For administration procedures, |
| see link:#gharo[Administering JDBC Connection Pools]. |
| * JDBC Resource. A JDBC resource (data source) provides applications |
| with a means of connecting to a database. To create a JDBC resource, |
| specify the connection pool with which it is associated. Multiple JDBC |
| resources can specify a single connection pool. A JDBC resource is |
| identified by its Java Naming and Directory Interface (JNDI) name. For |
| administration procedures, see link:#ggndp[Administering JDBC |
| Resources]. |
| * JDBC Driver. A database driver is a software component that enables a |
| Java application to interact with a database connectivity API . Each |
| database requires its own driver. For administration procedures, see |
| link:#ghatb[Integrating the JDBC Driver]. |
| |
| At runtime, the following sequence occurs when an application connects |
| to a database: |
| |
| 1. The application gets the JDBC resource associated with the database |
| by making a call through the JNDI API. |
| + |
| Using the JNDI name of the resource, the naming and directory service |
| locates the JDBC resource. Each JDBC resource specifies a connection |
| pool. |
| |
| 2. Using the JDBC resource, the application gets a database connection. |
| + |
| {productName} retrieves a physical connection from the connection |
| pool that corresponds to the database. The pool defines connection |
| attributes such as the database name (URL), user name, and password. |
| |
| 3. After the database connection is established, the application can |
| read, modify, and add data to the database. |
| + |
| The application accesses the database by making calls to the JDBC API. |
| The JDBC driver translates the application's JDBC calls into the |
| protocol of the database server. |
| |
| 4. When the application is finished accessing the database, the |
| application closes the connection and returns the connection to the |
| connection pool. |
| |
| [[ggkon]][[GSADG00577]][[setting-up-the-database]] |
| |
| === Setting Up the Database |
| |
| Most applications use relational databases to store, organize, and |
| retrieve data. Applications access relational databases through the Java |
| Database Connectivity (JDBC) API. |
| |
| The following topics are addressed here: |
| |
| * link:#gharl[To Install the Database and Database Driver] |
| * link:#ggndz[To Start the Database] |
| * link:#ggnbw[To Stop the Database] |
| * link:#ghmbq[Apache Derby Database Utility Scripts] |
| |
| [[gharl]][[GSADG00416]][[to-install-the-database-and-database-driver]] |
| |
| ==== To Install the Database and Database Driver |
| |
| 1. Install a supported database product. |
| + |
| To see the current list of database products supported by {productName}, refer to the link:release-notes.html#GSRLN[{productName} Release Notes]. |
| |
| 2. Install a supported JDBC driver for the database product. |
| + |
| For a list of drivers supported by {productName}, see |
| link:#beamw[Configuration Specifics for JDBC Drivers]. |
| |
| 3. Make the JDBC driver JAR file accessible to the domain |
| administration server (DAS). |
| + |
| See link:#ghatb[Integrating the JDBC Driver]. |
| |
| 4. Create the database. |
| + |
| The application provider usually delivers scripts for creating and |
| populating the database. |
| |
| [[GSADG949]] |
| |
| Next Steps |
| |
| You are now ready to create a connection pool for the database, and a |
| JDBC resource that points to the connection pool. See link:#ggnfv[To |
| Create a JDBC Connection Pool] and link:#ggnda[To Create a JDBC |
| Resource]. The final step is to integrate the JDBC driver into an |
| administrative domain as described in link:#ghatb[Integrating the JDBC |
| Driver]. |
| |
| [[ggndz]][[GSADG00417]][[to-start-the-database]] |
| |
| ==== To Start the Database |
| |
| {productName} includes an implementation of the Apache Derby |
| database, however, you can use any JDBC-compliant database. The database |
| is not started automatically when you start {productName}, so if you |
| have applications that require a database, you need to start Apache |
| Derby database manually by using the local `start-database` subcommand. |
| |
| Start the database by using the link:reference-manual/start-database.html#GSRFM00234[`start-database`] |
| subcommand. |
| |
| When the database server starts, or a client connects to it |
| successfully, the following files are created at the location that is |
| specified by the `--dbhome` option: |
| |
| * The `derby.log` file contains the database server process log along |
| with its standard output and standard error information. |
| * The database files contain your schema (for example, database tables). |
| |
| [[GSADG00212]][[ggooc]] |
| Example 11-1 Starting a Database |
| |
| This example starts the Apache Derby database on the host host1 and port |
| 5001. [source] |
| ---- |
| asadmin> start-database --dbhost host1 --dbport 5001 --terse=true |
| Starting database in the background. |
| Log redirected to /opt/SUNWappserver/databases/javadb.log. |
| Command start-database executed successfully. |
| ---- |
| |
| [[GSADG950]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help start-database` at the command line. |
| |
| [[ggnbw]][[GSADG00418]][[to-stop-the-database]] |
| |
| ==== To Stop the Database |
| |
| Use the local `stop-database` subcommand to stop the Apache Derby |
| database on a specified port. A single host can have multiple database |
| server processes running on different ports. |
| |
| 1. If necessary, notify users that the database is being stopped. |
| 2. Stop the database by using the link:reference-manual/stop-database.html#GSRFM00239[`stop-database`] |
| subcommand. |
| |
| [[GSADG00213]][[ggorc]] |
| Example 11-2 Stopping a Database |
| |
| This example stops the Apache Derby database on port 5001 of |
| `localhost`. |
| |
| [source] |
| ---- |
| asadmin> stop-database --dbhost=localhost --dbport=5001 |
| onnection obtained for host: localhost, port number 5001. |
| Apache Derby Network Server - 10.2.2.1 - (538595) shutdown |
| at 2008-10-17 23:34:2 7.218 GMT |
| Command stop-database executed successfully. |
| ---- |
| |
| [[GSADG951]] |
| |
| Troubleshooting |
| |
| For a laptop that roams between networks, you might have trouble |
| shutting down the database. If you start the Apache Derby database and |
| then change your IP address, you will not be able to stop the Apache |
| Derby database unless you add a specific `--dbhost` argument. For |
| example, if you run `asadmin start-database` `dbhost` `= 0.0.0.0`, and |
| then disconnect Ethernet and switch to wifi, you should run a command |
| similar to the following to stop the database: |
| |
| `asadmin stop-database` `dbhost` `localhost` |
| |
| [[GSADG952]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help stop-database` at the command line. |
| |
| [[ghmbq]][[GSADG00744]][[apache-derby-database-utility-scripts]] |
| |
| ==== Apache Derby Database Utility Scripts |
| |
| The Apache Derby database configuration that is available for use with |
| {productName} includes scripts that can help you use the Apache Derby |
| database. The following scripts are available in the |
| as-install``/javadb/bin`` directory: |
| |
| `startNetworkServer,startNetworkServer.bat`:: |
| Script to start the network server |
| `stopNetworkServer,stopNetworkServer.bat`:: |
| Script to stop the network server |
| `ij,ij.bat`:: |
| Interactive JDBC scripting tool |
| `dblook,dblook.bat`:: |
| Script to view all or part of the DDL for a database |
| `sysinfo, sysinfo.bat`:: |
| Script to display versioning information about the Apache Derby |
| database environment |
| `NetworkServerControl,NetworkServerControl.bat`:: |
| Script to execute commands on the `NetworkServerControl` API |
| |
| [[ghmbj]][[GSADG00419]][[to-configure-your-environment-to-run-the-apache-derby-database-utility-scripts]] |
| |
| ===== To Configure Your Environment to Run the Apache Derby Database Utility Scripts |
| |
| 1. Ensure that the `JAVA_HOME` environment variable specifies the |
| directory where the JDK is installed. |
| 2. Set the `JAVADB_HOME` environment variable to point to the |
| as-install``/javadb`` directory. |
| |
| [[GSADG953]] |
| |
| See Also |
| |
| For more information about these utilities, see the following |
| documentation: |
| |
| * http://db.apache.org/derby/docs/10.13/tools/[Apache Derby Tools and |
| Utilities Guide] |
| * http://db.apache.org/derby/docs/10.13/adminguide/[Derby Server and |
| Administration Guide] |
| |
| [[ggndx]][[GSADG00578]][[configuring-access-to-the-database]] |
| |
| === Configuring Access to the Database |
| |
| After establishing the database, you are ready to set up access for |
| {productName} applications. The high-level steps include creating a |
| JDBC connection pool, creating a JDBC resource for the connection pool, |
| and integrating a JDBC driver into an administrative domain. |
| |
| Instructions for performing these steps are contained in the following |
| sections: |
| |
| * link:#gharo[Administering JDBC Connection Pools] |
| * link:#ggndp[Administering JDBC Resources] |
| * link:#gkudf[Enabling the `jdbc/__default` Resource in a Clustered |
| Environment] |
| * link:#ghatb[Integrating the JDBC Driver] |
| |
| [[gharo]][[GSADG00745]][[administering-jdbc-connection-pools]] |
| |
| ==== Administering JDBC Connection Pools |
| |
| A JDBC connection pool is a group of reusable connections for a |
| particular database. Because creating each new physical connection is |
| time consuming, {productName} maintains a pool of available |
| connections. When an application requests a connection, it obtains one |
| from the pool. When an application closes a connection, the connection |
| is returned to the pool. JDBC connection pools can be globally |
| accessible or be scoped to an enterprise application, web module, EJB |
| module, connector module or application client module, as described in |
| "link:application-deployment-guide/deploying-applications.html#GSDPG00075[Application-Scoped Resources]" in {productName} Application Deployment Guide. |
| |
| A JDBC resource is created by specifying the connection pool with which |
| the resource is associated. Multiple JDBC resources can specify a single |
| connection pool. The properties of connection pools can vary with |
| different database vendors. Some common properties are the database name |
| (URL), the user name, and the password. |
| |
| The following tasks and information are used to administer JDBC |
| connection pools: |
| |
| * link:#ggnfv[To Create a JDBC Connection Pool] |
| * link:#ggnby[To List JDBC Connection Pools] |
| * link:#ggnwn[To Contact (Ping) a Connection Pool] |
| * link:#gjiqp[To Reset (Flush) a Connection Pool] |
| * link:#giosk[To Update a JDBC Connection Pool] |
| * link:#ggngb[To Delete a JDBC Connection Pool] |
| * link:#gktdi[Configuring Specific JDBC Connection Pool Features] |
| |
| [[ggnfv]][[GSADG00420]][[to-create-a-jdbc-connection-pool]] |
| |
| ===== To Create a JDBC Connection Pool |
| |
| Use the `create-jdbc-connection-pool` subcommand in remote mode to |
| register a new JDBC connection pool with the specified JDBC connection |
| pool name. A JDBC connection pool or a connector connection pool can be |
| created with authentication. You can either use a subcommand option to |
| specify user, password, or other connection information using the |
| `asadmin` utility, or specify the connection information in the XML |
| descriptor file. |
| |
| One connection pool is needed for each database, possibly more depending |
| on the application. When you are building the connection pool, certain |
| data specific to the JDBC driver and the database vendor is required. |
| You can find some of the following specifics in |
| link:#beamw[Configuration Specifics for JDBC Drivers]: |
| |
| * Database vendor name |
| * Resource type, such as `javax.sql.DataSource` (local transactions |
| only) `javax.sql.XADataSource` (global transactions) |
| * Data source class name |
| * Required properties, such as the database name (URL), user name, and |
| password |
| |
| Creating a JDBC connection pool is a dynamic event and does not require |
| server restart. However, there are some parameters that do require |
| server restart. See link:overview.html#ghciy[Configuration Changes That |
| Require Restart]. |
| |
| [[GSADG954]] |
| |
| Before You Begin |
| |
| Before creating the connection pool, you must first install and |
| integrate the database and its associated JDBC driver. For instructions, |
| see link:#ggkon[Setting Up the Database]. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. Create the JDBC connection pool by using the |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`] subcommand. |
| 3. If needed, restart the server. |
| + |
| Some parameters require server restart. See |
| link:overview.html#ghciy[Configuration Changes That Require Restart]. |
| |
| [[GSADG00214]][[ggrgh]] |
| Example 11-3 Creating a JDBC Connection Pool |
| |
| This example creates a JDBC connection pool named `sample_derby_pool` on |
| `localhost`. |
| |
| [source] |
| ---- |
| asadmin> create-jdbc-connection-pool |
| --datasourceclassname org.apache.derby.jdbc.ClientDataSource |
| --restype javax.sql.XADataSource |
| --property portNumber=1527:password=APP:user=APP:serverName= |
| localhost:databaseName=sun-appserv-samples:connectionAttribut |
| es=\;create\\=true sample_derby_pool |
| Command create-jdbc-connection-pool executed successfully. |
| ---- |
| |
| [[GSADG955]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help create-jdbc-connection-pool` at the command line. |
| |
| [[ggnby]][[GSADG00421]][[to-list-jdbc-connection-pools]] |
| |
| ===== To List JDBC Connection Pools |
| |
| Use the `list-jdbc-connection-pools` subcommand in remote mode to list |
| all existing JDBC connection pools. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. List the JDBC connection pools by using the |
| link:reference-manual/list-jdbc-connection-pools.html#GSRFM00173[`list-jdbc-connection-pools`] subcommand. |
| |
| [[GSADG00215]][[ggpcf]] |
| Example 11-4 Listing JDBC Connection Pools |
| |
| This example lists the JDBC connection pools that are on `localhost`. |
| |
| [source] |
| ---- |
| asadmin> list-jdbc-connection-pools |
| sample_derby_pool2 |
| poolA |
| __TimerPool |
| DerbyPool |
| sample_derby_pool |
| Command list-jdbc-connection-pools executed successfully. |
| ---- |
| |
| [[GSADG956]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help list-jdbc-connection-pools` at the command line. |
| |
| [[ggnwn]][[GSADG00422]][[to-contact-ping-a-connection-pool]] |
| |
| ===== To Contact (Ping) a Connection Pool |
| |
| Use the `ping-connection-pool` subcommand in remote mode to test if a |
| connection pool is usable. For example, if you create a new JDBC |
| connection pool for an application that is expected to be deployed |
| later, you can test the JDBC pool with this subcommand before the |
| application is deployed. Running a ping will force the creation of the |
| pool if it hasn't already been created. |
| |
| [[GSADG957]] |
| |
| Before You Begin |
| |
| Before you can contact a connection pool, the connection pool must be |
| created with authentication, and the server or database must be running. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. Ping a connection pool by using the |
| link:reference-manual/ping-connection-pool.html#GSRFM00214[`ping-connection-pool`] subcommand. |
| |
| [[GSADG00216]][[ggpcs]] |
| Example 11-5 Contacting a Connection Pool |
| |
| This example tests to see if the `DerbyPool` connection pool is usable. |
| |
| [source] |
| ---- |
| asadmin> ping-connection-pool DerbyPool |
| Command ping-connection-pool executed successfully |
| ---- |
| |
| [[GSADG958]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help ping-connection-pool` at the command line. |
| |
| You can also specify that a JDBC connection pool is automatically tested |
| when created or reconfigured by setting its `--ping` option to `true` |
| (the default is `false`). See link:#ggnfv[To Create a JDBC Connection |
| Pool] or link:#giosk[To Update a JDBC Connection Pool]. |
| |
| [[gjiqp]][[GSADG00423]][[to-reset-flush-a-connection-pool]] |
| |
| ===== To Reset (Flush) a Connection Pool |
| |
| Use the `flush-connection-pool` in remote mode to reinitialize all |
| connections established in the specified connection pool without the |
| need for reconfiguring the pool. Connection pool reconfiguration can |
| result in application redeployment, which is a time-consuming operation. |
| The JDBC connection pool or connector connection pool is reset to its |
| initial state. Any existing live connections are destroyed, which means |
| that the transactions associated with these connections are lost and |
| must be retried. The subcommand then recreates the initial connections |
| for the pool, and restores the pool to its steady pool size. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. Reset a connection pool by using |
| theolink:GSRFM00135[`flush-connection-pool`] subcommand. |
| |
| [[GSADG00217]][[gjirk]] |
| Example 11-6 Resetting (Flushing) a Connection Pool |
| |
| This example resets the JDBC connection pool named `__TimerPool` to its |
| steady pool size. |
| |
| [source] |
| ---- |
| asadmin> flush-connection-pool __TimerPool |
| Command flush-connection-pool executed successfully. |
| ---- |
| |
| [[GSADG959]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help flush-connection-pool` at the command line. |
| |
| [[giosk]][[GSADG00424]][[to-update-a-jdbc-connection-pool]] |
| |
| ===== To Update a JDBC Connection Pool |
| |
| You can change all of the settings for an existing pool except its name. |
| Use the `get` and `set` subcommands to view and change the values of the |
| JDBC connection pool properties. |
| |
| 1. List the JDBC connection pools by using the |
| link:reference-manual/list-jdbc-connection-pools.html#GSRFM00173[`list-jdbc-connection-pools`] subcommand. |
| 2. View the attributes of the JDBC connection pool by using the get |
| subcommand. |
| + |
| For example: |
| + |
| [source] |
| ---- |
| asadmin get resources.jdbc-connection-pool.DerbyPool.property |
| ---- |
| 3. Set the attribute of the JDBC connection pool by using the set |
| subcommand. |
| + |
| For example: |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.DerbyPool.steady-pool-size=9 |
| ---- |
| 4. If needed, restart the server. |
| + |
| Some parameters require server restart. See |
| link:overview.html#ghciy[Configuration Changes That Require Restart]. |
| |
| [[GSADG960]] |
| |
| See Also |
| |
| For information about how to tune a connection pool, see the |
| link:performance-tuning-guide.html#GSPTG[{productName} Performance Tuning |
| Guide]. |
| |
| [[ggngb]][[GSADG00425]][[to-delete-a-jdbc-connection-pool]] |
| |
| ===== To Delete a JDBC Connection Pool |
| |
| Use the `delete-jdbc-connection-pool` subcommand in remote mode to |
| delete an existing JDBC connection pool. Deleting a JDBC connection pool |
| is a dynamic event and does not require server restart. |
| |
| [[GSADG961]] |
| |
| Before You Begin |
| |
| Before deleting a JDBC connection pool, all associations to the resource |
| must be removed. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. List the JDBC connection pools by using the |
| link:reference-manual/list-jdbc-connection-pools.html#GSRFM00173[`list-jdbc-connection-pools`] subcommand. |
| 3. If necessary, notify users that the JDBC connection pool is being |
| deleted. |
| 4. Delete the connection pool by using the |
| link:reference-manual/delete-jdbc-connection-pool.html#GSRFM00088[`delete-jdbc-connection-pool`] subcommand. |
| |
| [[GSADG00218]][[ggpis]] |
| Example 11-7 Deleting a JDBC Connection Pool |
| |
| This example deletes the JDBC connection pool named `DerbyPool`. |
| |
| [source] |
| ---- |
| asadmin> delete-jdbc-connection-pool jdbc/DerbyPool |
| Command delete-jdbc-connection-pool executed successfully. |
| ---- |
| |
| [[GSADG962]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help delete-jdbc-connection-pool` at the command line. |
| |
| [[gktdi]][[GSADG00670]][[configuring-specific-jdbc-connection-pool-features]] |
| |
| ===== Configuring Specific JDBC Connection Pool Features |
| |
| In {productName}, JDBC Connection Pools support a variety of features |
| to simplify administration, monitoring and performance tuning. The |
| following topics address several of these features: |
| |
| * link:#gktcv[Transparent Pool Reconfiguration] |
| * link:#gkter[Using an Initialization Statement] |
| * link:#gktcc[Setting a Statement Timeout] |
| * link:#gktec[Statement Leak Detection and Leaked Statement Reclamation] |
| * link:#gktej[Statement Caching] |
| * link:#gktbu[Statement Tracing] |
| |
| [[gktcv]][[GSADG00085]][[transparent-pool-reconfiguration]] |
| |
| Transparent Pool Reconfiguration |
| |
| When the properties or attributes of a JDBC connection pool are changed, |
| the connection pool is destroyed and re-created. Normally, applications |
| using the connection pool must be redeployed as a consequence. This |
| restriction can be avoided by enabling transparent JDBC connection pool |
| reconfiguration. When this feature is enabled, applications do not need |
| to be redeployed. Instead, requests for new connections are blocked |
| until the reconfiguration operation completes. Connection requests from |
| any in-flight transactions are served using the old pool configuration |
| so as to complete the transaction. Then, connections are created using |
| the pool's new configuration, and any blocked connection requests are |
| served with connections from the re-created pool. |
| |
| To enable transparent JDBC connection pool reconfiguration, set the |
| `dynamic-reconfiguration-wait-timeout-in-seconds` property of the JDBC |
| connection pool to a positive, nonzero value in one of the following |
| ways: |
| |
| * Add it as a property in the Edit JDBC Connection Pool Properties page |
| in the Administration Console. For more information, click the Help |
| button in the Administration Console. |
| * Specify it using the `--property` option in the |
| `create-jdbc-connection-pool` subcommand. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Set it using the `set` subcommand. For example: |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.pool-name.property.dynamic-reconfiguration-wait-timeout-in-seconds=15 |
| ---- |
| |
| This property specifies the time in seconds to wait for in-use |
| connections to close and in-flight transactions to complete. Any |
| connections in use or transaction in flight past this time must be |
| retried. |
| |
| [[gkter]][[GSADG00086]][[using-an-initialization-statement]] |
| |
| Using an Initialization Statement |
| |
| You can specify a statement that executes each time a physical |
| connection to the database is created (not reused) from a JDBC |
| connection pool. This is useful for setting request or session specific |
| properties and is suited for homogeneous requests in a single |
| application. Set the Init SQL attribute of the JDBC connection pool to |
| the SQL string to be executed in one of the following ways: |
| |
| * Enter an Init SQL value in the Edit Connection Pool Advanced |
| Attributes page in the Administration Console. For more information, |
| click the Help button in the Administration Console. |
| * Specify the `--initsql` option in the |
| `asadmin create-jdbc-connection-pool` command. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Specify the `init-sql` option in the `asadmin set` command. For |
| example: |
| + |
| [source] |
| ---- |
| asadmin set domain1.resources.jdbc-connection-pool.DerbyPool.init-sql="sql-string" |
| ---- |
| |
| [[gktcc]][[GSADG00087]][[setting-a-statement-timeout]] |
| |
| Setting a Statement Timeout |
| |
| An abnormally long running JDBC query executed by an application may |
| leave it in a hanging state unless a timeout is explicitly set on the |
| statement. Setting a statement timeout guarantees that all queries |
| automatically time out if not completed within the specified period. |
| When statements are created, the `queryTimeout` is set according to the |
| statement timeout setting. This works only when the underlying JDBC |
| driver supports `queryTimeout` for `Statement`, `PreparedStatement`, |
| `CallableStatement`, and `ResultSet`. |
| |
| You can specify a statement timeout in the following ways: |
| |
| * Enter a Statement Timeout value in the Edit Connection Pool Advanced |
| Attributes page in the Administration Console. For more information, |
| click the Help button in the Administration Console. |
| * Specify the `--statementtimeout` option in the |
| `asadmin create-jdbc-connection-pool` command. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| |
| [[gktec]][[GSADG00088]][[statement-leak-detection-and-leaked-statement-reclamation]] |
| |
| Statement Leak Detection and Leaked Statement Reclamation |
| |
| If statements are not closed by an application after use, it is possible |
| for the application to run out of cursors. Enabling statement leak |
| detection causes statements to be considered as leaked if they are not |
| closed within a specified period. Additionally, leaked statements can |
| reclaimed automatically. |
| |
| To enable statement leak detection, set Statement Leak Timeout In |
| Seconds for the JDBC connection pool to a positive, nonzero value in one |
| of the following ways: |
| |
| * Specify the `--statementleaktimeout` option in the |
| `create-jdbc-connection-pool` subcommand. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Specify the `statement-leak-timeout-in-seconds` option in the `set` |
| subcommand. For example: |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.pool-name.statement-leak-timeout-in-seconds=300 |
| ---- |
| |
| When selecting a value for Statement Leak Timeout In Seconds, make sure |
| that: |
| |
| * It is less than the Connection Leak Timeout; otherwise, the connection |
| could be closed before the statement leak is recognized. |
| * It is greater than the Statement Timeout; otherwise, a long running |
| query could be mistaken as a statement leak. |
| |
| After enabling statement leak detection, enable leaked statement |
| reclamation by setting Reclaim Leaked Statements for the JDBC connection |
| pool to a `true` value in one of the following ways: |
| |
| * Specify the `--statementleakreclaim=true` option in the |
| `create-jdbc-connection-pool` subcommand. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Specify the `statement-leak-reclaim` option in the `set` subcommand. |
| For example: |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.pool-name.statement-leak-reclaim=true |
| ---- |
| |
| [[gktej]][[GSADG00089]][[statement-caching]] |
| |
| Statement Caching |
| |
| Statement caching stores statements, prepared statements, and callable |
| statements that are executed repeatedly by applications in a cache, |
| thereby improving performance. Instead of the statement being prepared |
| each time, the cache is searched for a match. The overhead of parsing |
| and creating new statements each time is eliminated. |
| |
| Statement caching is usually a feature of the JDBC driver. The {productName} provides caching for drivers that do not support caching. To |
| enable this feature, set the Statement Cache Size for the JDBC |
| connection pool in one of the following ways: |
| |
| * Enter a Statement Cache Size value in the Edit Connection Pool |
| Advanced Attributes page in the Administration Console. For more |
| information, click the Help button in the Administration Console. |
| * Specify the `--statementcachesize` option in the |
| `asadmin create-jdbc-connection-pool` command. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Specify the `statement-cache-size` option in the `asadmin set` |
| command. For example: |
| + |
| [source] |
| ---- |
| asadmin set domain1.resources.jdbc-connection-pool.DerbyPool.statement-cache-size=10 |
| ---- |
| |
| By default, this attribute is set to zero and the statement caching is |
| turned off. To enable statement caching, you can set any positive |
| nonzero value. The built-in cache eviction strategy is LRU-based (Least |
| Recently Used). When a connection pool is flushed, the connections in |
| the statement cache are recreated. |
| |
| [[gktbu]][[GSADG00090]][[statement-tracing]] |
| |
| Statement Tracing |
| |
| You can trace the SQL statements executed by applications that use a |
| JDBC connection pool. Set the SQL Trace Listeners attribute to a |
| comma-separated list of trace listener implementation classes in one of |
| the following ways: |
| |
| * Enter an SQL Trace Listeners value in the Edit Connection Pool |
| Advanced Attributes page in the Administration Console. For more |
| information, click the Help button in the Administration Console. |
| * Specify the `--sqltracelisteners` option in the |
| `asadmin create-jdbc-connection-pool` command. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Specify the `sql-trace-listeners` option in the `asadmin set` command. |
| For example: |
| + |
| [source] |
| ---- |
| asadmin set domain1.resources.jdbc-connection-pool.DerbyPool.sql-trace-listeners=listeners |
| ---- |
| |
| The {productName} provides a public interface, |
| org.glassfish.api.jdbc.SQLTraceListener , that implements a means of |
| recording `SQLTraceRecord` objects. To make custom implementations of |
| this interface available to the {productName}, place the |
| implementation classes in as-install``/lib``. |
| |
| The {productName} provides an SQL tracing logger to log the SQL |
| operations in the form of `SQLTraceRecord` objects in the `server.log` |
| file. The module name under which the SQL operation is logged is |
| `jakarta.enterprise.resource.sqltrace`. SQL traces are logged as FINE |
| messages along with the module name to enable easy filtering of the SQL |
| logs. A sample SQL trace record looks like this: |
| |
| [source] |
| ---- |
| [#|2009-11-27T15:46:52.202+0530|FINE|glassfish7.0|jakarta.enterprise.resource.sqltrace.com.sun.gjc.util |
| |_ThreadID=29;_ThreadName=Thread-1;ClassName=com.sun.gjc.util.SQLTraceLogger;MethodName=sqlTrace; |
| |ThreadID=77 | ThreadName=p: thread-pool-1; w: 6 | TimeStamp=1259317012202 |
| | ClassName=com.sun.gjc.spi.jdbc40.PreparedStatementWrapper40 | MethodName=executeUpdate |
| | arg[0]=insert into table1(colName) values(100) | arg[1]=columnNames | |#] |
| ---- |
| |
| This trace shows that an `executeUpdate(String sql, String columnNames)` |
| operation is being done. |
| |
| When SQL statement tracing is enabled and JDBC connection pool |
| monitoring is enabled, {productName} maintains a tracing cache of |
| recent queries and their frequency of use. The following JDBC connection |
| pool properties can be configured to control this cache and the |
| monitoring statistics available from it: |
| |
| `time-to-keep-queries-in-minutes`:: |
| Specifies how long in minutes to keep a query in the tracing cache, |
| tracking its frequency of use. The default value is 5 minutes. |
| `number-of-top-queries-to-report`:: |
| Specifies how many of the most used queries, in frequency order, are |
| listed the monitoring report. The default value is 10 queries. |
| |
| Set these parameters in one of the following ways: |
| |
| * Add them as properties in the Edit JDBC Connection Pool Properties |
| page in the Administration Console. For more information, click the Help |
| button in the Administration Console. |
| * Specify them using the `--property` option in the |
| `create-jdbc-connection-pool` subcommand. For more information, see |
| link:reference-manual/create-jdbc-connection-pool.html#GSRFM00036[`create-jdbc-connection-pool`(1)]. |
| * Set them using the `set` subcommand. For example: |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.pool-name.property.time-to-keep-queries-in-minutes=10 |
| ---- |
| |
| [[ggndp]][[GSADG00746]][[administering-jdbc-resources]] |
| |
| ==== Administering JDBC Resources |
| |
| A JDBC resource, also known as a data source, provides an application |
| with a means of connecting to a database. Typically, you create a JDBC |
| resource for each database that is accessed by the applications deployed |
| in a domain. Multiple JDBC resources can be specified for a database. |
| JDBC resources can be globally accessible or be scoped to an enterprise |
| application, web module, EJB module, connector module or application |
| client module, as described in "link:application-deployment-guide/deploying-applications.html#GSDPG00075[Application-Scoped |
| Resources]" in {productName} Application |
| Deployment Guide. |
| |
| A JDBC resource is created by specifying the connection pool with which |
| the resource will be associated . Use a unique Java Naming and Directory |
| Interface (JNDI) name to identify the resource. For example, the JNDI |
| name for the resource of a payroll database might be |
| `java:comp/env/jdbc/payrolldb`. |
| |
| The Jakarta EE standard specifies that certain default resources be made |
| available to applications, and defines specific JNDI names for these |
| default resources. {productName} makes these names available through |
| the use of logical JNDI names, which map Jakarta EE standard JNDI names to |
| specific {productName} resources. For JDBC resources, the Jakarta EE |
| standard name `java:comp/DefaultDataSource` is mapped to the |
| `jdbc/__default` resource. |
| |
| The following tasks and information are used to administer JDBC |
| resources: |
| |
| * link:#ggnda[To Create a JDBC Resource] |
| * link:#ggnhl[To List JDBC Resources] |
| * link:#giwjv[To Update a JDBC Resource] |
| * link:#ggnhz[To Delete a JDBC Resource] |
| |
| [[ggnda]][[GSADG00426]][[to-create-a-jdbc-resource]] |
| |
| ===== To Create a JDBC Resource |
| |
| Use the `create-jdbc-resource` subcommand in remote mode to create a |
| JDBC resource. Creating a JDBC resource is a dynamic event and does not |
| require server restart. |
| |
| Because all JNDI names are in the `java:comp/env` subcontext, when |
| specifying the JNDI name of a JDBC resource in the Administration |
| Console, use only the `jdbc/`name format. For example, a payroll |
| database might be specified as `jdbc/payrolldb`. |
| |
| [[GSADG963]] |
| |
| Before You Begin |
| |
| Before creating a JDBC resource, you must first create a JDBC connection |
| pool. For instructions, see link:#ggnfv[To Create a JDBC Connection |
| Pool]. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. Create a JDBC resource by using the |
| link:reference-manual/create-jdbc-resource.html#GSRFM00037[`create-jdbc-resource`] subcommand. |
| + |
| Information about properties for the subcommand is included in this help |
| page. |
| 3. If necessary, notify users that the new resource has been created. |
| |
| [[GSADG00219]][[ggplj]] |
| Example 11-8 Creating a JDBC Resource |
| |
| This example creates a JDBC resource named `DerbyPool`. |
| |
| [source] |
| ---- |
| asadmin> create-jdbc-resource --connectionpoolid DerbyPool jdbc/DerbyPool |
| Command create-jdbc-resource executed successfully. |
| ---- |
| |
| [[GSADG964]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help create-jdbc-resource` at the command line. |
| |
| [[ggnhl]][[GSADG00427]][[to-list-jdbc-resources]] |
| |
| ===== To List JDBC Resources |
| |
| Use the `list-jdbc-resources` subcommand in remote mode to list the |
| existing JDBC resources. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. List JDBC resources by using the |
| link:reference-manual/list-jdbc-resources.html#GSRFM00174[`list-jdbc-resources`] subcommand. |
| |
| [[GSADG00220]][[ggpgi]] |
| Example 11-9 Listing JDBC Resources |
| |
| This example lists JDBC resources for `localhost`. |
| |
| [source] |
| ---- |
| asadmin> list-jdbc-resources |
| jdbc/__TimerPool |
| jdbc/DerbyPool |
| jdbc/__default |
| jdbc1 |
| Command list-jdbc-resources executed successfully. |
| ---- |
| |
| [[GSADG965]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help list-jdbc-resources` at the command line. |
| |
| [[giwjv]][[GSADG00428]][[to-update-a-jdbc-resource]] |
| |
| ===== To Update a JDBC Resource |
| |
| You can enable or disable a JDBC resource by using the `set` subcommand. |
| The JDBC resource is identified by its dotted name. |
| |
| 1. List JDBC resources by using the |
| link:reference-manual/list-jdbc-resources.html#GSRFM00174[`list-jdbc-resources`] subcommand. |
| 2. Modify the values for the specified JDBC resource by using the |
| link:reference-manual/set.html#GSRFM00226[`set`] subcommand. |
| + |
| For example: |
| |
| [[GSADG00221]][[gjkrz]] |
| Example 11-10 Updating a JDBC Resource |
| |
| This example changes the `res1` enabled setting to false. |
| |
| [source] |
| ---- |
| asadmin>set resources.jdbc-resource.res1.enabled=false |
| ---- |
| |
| [[ggnhz]][[GSADG00429]][[to-delete-a-jdbc-resource]] |
| |
| ===== To Delete a JDBC Resource |
| |
| Use the `delete-jdbc-resource` subcommand in remote mode to delete an |
| existing JDBC resource. Deleting a JDBC resource is a dynamic event and |
| does not require server restart. |
| |
| [[GSADG966]] |
| |
| Before You Begin |
| |
| Before deleting a JDBC resource, all associations with this resource |
| must be removed. |
| |
| 1. Ensure that the server is running. Remote subcommands require a running server. |
| 2. List JDBC resources by using the |
| link:reference-manual/list-jdbc-resources.html#GSRFM00174[`list-jdbc-resources`] subcommand. |
| 3. If necessary, notify users that the JDBC resource is being deleted. |
| 4. Delete a JDBC resource by using the |
| link:reference-manual/delete-jdbc-resource.html#GSRFM00089[`delete-jdbc-resource`] subcommand. |
| |
| [[GSADG00222]][[ggpga]] |
| Example 11-11 Deleting a JDBC Resource |
| |
| This example deletes a JDBC resource named `DerbyPool`. |
| |
| [source] |
| ---- |
| asadmin> delete-jdbc-resource jdbc/DerbyPool |
| Command delete-jdbc-resource executed successfully. |
| ---- |
| |
| [[GSADG967]] |
| |
| See Also |
| |
| You can also view the full syntax and options of the subcommand by |
| typing `asadmin help delete-jdbc-resource` at the command line. |
| |
| [[gkudf]][[GSADG00747]][[enabling-the-jdbc__default-resource-in-a-clustered-environment]] |
| |
| ==== Enabling the `jdbc/__default` Resource in a Clustered Environment |
| |
| {productName} 7 includes a preconfigured JDBC resource with the |
| JNDI name `jdbc/__default`. This `jdbc/__default` resource is not |
| enabled by default, so you need to explicitly enable it if you want to |
| use it in a cluster. |
| |
| [[gkubj]][[GSADG00430]][[to-enable-the-jdbc__default-resource-for-a-clustered-environment]] |
| |
| ===== To Enable the `jdbc/__default` Resource for a Clustered Environment |
| |
| Instructions for creating JDBC resources in general are provided in |
| link:#ggnda[To Create a JDBC Resource]. Use the following procedure to |
| enable the preconfigured `jdbc/__default` resource for a clustered |
| {productName} environment. |
| |
| 1. Create the `jdbc/__default` resource reference for the cluster. |
| + |
| [source] |
| ---- |
| asadmin create-resource-ref --target cluster-name jdbc/__default |
| ---- |
| 2. Enable the resource on the DAS that manages the cluster. |
| + |
| [source] |
| ---- |
| asadmin set resources.jdbc-connection-pool.DerbyPool.property.serverName=DAS-machine-name |
| ---- |
| This step is only required if the cluster includes remote instances. |
| 3. Restart the DAS and the target cluster(s). |
| + |
| [source] |
| ---- |
| asadmin stop-cluster cluster-name |
| asadmin stop-domain domain-name |
| asadmin start-domain domain-name |
| asadmin start-cluster cluster-name |
| ---- |
| |
| [[ghatb]][[GSADG00748]][[integrating-the-jdbc-driver]] |
| |
| ==== Integrating the JDBC Driver |
| |
| To use JDBC features, you must choose a JDBC driver to work with the |
| {productName}, then you must set up the driver. This section covers |
| these topics: |
| |
| * link:#gkpdj[Supported Database Drivers] |
| * link:#gkpci[Making the JDBC Driver JAR Files Accessible] |
| * link:#gkpfj[Automatic Detection of Installed Drivers] |
| |
| [[gkpdj]][[GSADG00671]][[supported-database-drivers]] |
| |
| ===== Supported Database Drivers |
| |
| Supported JDBC drivers are those that have been fully tested by Oracle. |
| For a list of the JDBC drivers currently supported by the {productName}, see the link:release-notes.html#GSRLN[{productName} Release |
| Notes]. For configurations of supported and other drivers, see |
| link:#beamw[Configuration Specifics for JDBC Drivers]. |
| |
| |
| [NOTE] |
| ==== |
| Because the drivers and databases supported by the {productName} are |
| constantly being updated, and because database vendors continue to |
| upgrade their products, always check with Oracle technical support for |
| the latest database support information. |
| ==== |
| |
| |
| [[gkpci]][[GSADG00672]][[making-the-jdbc-driver-jar-files-accessible]] |
| |
| ===== Making the JDBC Driver JAR Files Accessible |
| |
| To integrate the JDBC driver into a {productName} domain, copy the |
| JAR files into the domain-dir``/lib`` directory, then restart the server. |
| This makes classes accessible to all applications or modules deployed on |
| servers that share the same configuration. For more information about |
| {productName} class loaders, see "link:application-development-guide/class-loaders.html#GSDVG00003[Class Loaders]" in |
| {productName} Application Development Guide. |
| |
| If you are using an Oracle database with EclipseLink extensions, copy |
| the JAR files into the domain-dir``/lib/ext`` directory, then restart the |
| server. For details, see "link:application-development-guide/jpa.html#GSDVG00390[Oracle Database |
| Enhancements]" in {productName} Application |
| Development Guide. |
| |
| [[gkpfj]][[GSADG00673]][[automatic-detection-of-installed-drivers]] |
| |
| ===== Automatic Detection of Installed Drivers |
| |
| The Administration Console detects installed JDBC Drivers automatically |
| when you create a JDBC connection pool. To create a JDBC connection pool |
| using the Administration Console, open the Resources component, open the |
| JDBC component, select Connection Pools, and click on the New button. |
| This displays the New JDBC Connection Pool page. |
| |
| Based on the Resource Type and Database Vendor you select on the New |
| JDBC Connection Pool page, data source or driver implementation class |
| names are listed in the Datasource Classname or Driver Classname field |
| when you click on the Next button. When you choose a specific |
| implementation class name on the next page, additional properties |
| relevant to the installed JDBC driver are displayed in the Additional |
| Properties section. |
| |
| [[beamw]][[GSADG00579]][[configuration-specifics-for-jdbc-drivers]] |
| |
| === Configuration Specifics for JDBC Drivers |
| |
| {productName} is designed to support connectivity to any database |
| management system by using a corresponding JDBC driver. Configuration |
| information is provided for these JDBC drivers: |
| |
| * link:#beanc[IBM DB2 Database Type 2 Driver] |
| * link:#glhim[IBM DB2 Database Type 4 Driver] |
| * link:#beamx[Apache Derby DB/Derby Type 4 Driver] |
| * link:#gbsor[MySQL Server Database Type 4 Driver] |
| * link:#beani[Oracle 10 Database Driver] |
| * link:#beanh[Oracle 11 Database Driver] |
| * link:#gjksj[PostgreSQL Type 4 Driver] |
| * link:#beamy[DataDirect Type 4 Driver for IBM DB2 Database] |
| * link:#beanj[DataDirect Type 4 Driver for IBM Informix] |
| * link:#beana[DataDirect Type 4 Driver for Microsoft SQL Server |
| Database] |
| * link:#gjksd[DataDirect Type 4 Driver for MySQL Server Database] |
| * link:#beamz[DataDirect Type 4 Driver for Oracle 11 Database] |
| * link:#beanb[DataDirect Type 4 Driver for Sybase Database] |
| * link:#beane[Inet Oraxo Driver for Oracle Database] |
| * link:#beanf[Inet Merlia Driver for Microsoft SQL Server Database] |
| * link:#beang[Inet Sybelux Driver for Sybase Database] |
| * link:#beand[JConnect Type 4 Driver for Sybase ASE 12.5 Database] |
| |
| [[beanc]][[GSADG00749]][[ibm-db2-database-type-2-driver]] |
| |
| ==== IBM DB2 Database Type 2 Driver |
| |
| The JAR files for the DB2 driver are `db2jcc.jar`, |
| `db2jcc_license_cu.jar`, and `db2java.zip`. Set your environment |
| variables . For example: |
| |
| [source] |
| ---- |
| LD_LIBRARY_PATH=/usr/db2user/sqllib/lib:${Jakarta EE.home}/lib |
| DB2DIR=/opt/IBM/db2/V8.2 |
| DB2INSTANCE=db2user |
| INSTHOME=/usr/db2user |
| VWSPATH=/usr/db2user/sqllib |
| THREADS_FLAG=native |
| ---- |
| |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DB2 |
| * DataSource Classname: `com.ibm.db2.jcc.DB2SimpleDataSource` |
| * Properties: |
| |
| ** `databaseName` - Set as appropriate. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `driverType` - Set to `2`. |
| |
| ** `deferPrepares` - Set to `false`. |
| |
| [[glhim]][[GSADG00750]][[ibm-db2-database-type-4-driver]] |
| |
| ==== IBM DB2 Database Type 4 Driver |
| |
| The JAR file for the DB2 driver is `db2jcc.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DB2 |
| * DataSource Classname: `com.ibm.db2.jcc.DB2SimpleDataSource` |
| * Properties: |
| |
| ** `databaseName` - Set as appropriate. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `driverType` - Set to `4`. |
| |
| [[beamx]][[GSADG00751]][[apache-derby-dbderby-type-4-driver]] |
| |
| ==== Apache Derby DB/Derby Type 4 Driver |
| |
| The Apache Derby DB/Derby JDBC driver is included with {productName} |
| by default, so you do not need to integrate this JDBC driver with |
| {productName}. |
| |
| The JAR file for the Apache Derby DB driver is `derbyclient.jar`. |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Apache Derby |
| * DataSource Classname: Specify one of the following: |
| + |
| [source] |
| ---- |
| org.apache.derby.jdbc.ClientDataSource40 |
| org.apache.derby.jdbc.ClientXADataSource40 |
| ---- |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server if it |
| is different from the default. |
| |
| ** `databaseName` - Specify the name of the database. |
| |
| ** `user` - Specify the database user. |
| + |
| This is only necessary if the Apache Derby database is configured to use |
| authentication. The Apache Derby database does not use authentication by |
| default. When the user is provided, it is the name of the schema where |
| the tables reside. |
| |
| ** `password` - Specify the database password. |
| + |
| This is only necessary if the Apache Derby database is configured to use |
| authentication. |
| |
| [[gbsor]][[GSADG00752]][[mysql-server-database-type-4-driver]] |
| |
| ==== MySQL Server Database Type 4 Driver |
| |
| The JAR file for the MySQL driver is |
| `mysql-connector-java-5.1.14-bin.jar`. Configure the connection pool |
| using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: MySql |
| * DataSource Classname: |
| + |
| [source] |
| ---- |
| com.mysql.jdbc.jdbc2.optional.MysqlDataSource |
| com.mysql.jdbc.jdbc2.optional.MysqlXADataSource |
| ---- |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beani]][[GSADG00753]][[oracle-10-database-driver]] |
| |
| ==== Oracle 10 Database Driver |
| |
| The JAR file for the Oracle 10 database driver is `ojdbc14.jar`. Make |
| sure that the shared library is available through `LD_LIBRARY_PATH` and |
| that the `ORACLE_HOME` property is set. |
| |
| To make the Oracle driver behave in a Jakarta EE-compliant manner, you must |
| define the following JVM property: |
| |
| [source] |
| ---- |
| -Doracle.jdbc.J2EE13Compliant=true |
| ---- |
| |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Oracle |
| * DataSource Classname: Specify one of the following: |
| + |
| [source] |
| ---- |
| oracle.jdbc.pool.OracleDataSource |
| oracle.jdbc.xa.client.OracleXADataSource |
| ---- |
| * Properties: |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beanh]][[GSADG00754]][[oracle-11-database-driver]] |
| |
| ==== Oracle 11 Database Driver |
| |
| The JAR file for the Oracle 11 database driver is `ojdbc6.jar`. |
| |
| To make the Oracle driver behave in a Jakarta EE-compliant manner, you must |
| define the following JVM property: |
| |
| [source] |
| ---- |
| -Doracle.jdbc.J2EE13Compliant=true |
| ---- |
| |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Oracle |
| * DataSource Classname: Specify one of the following: |
| + |
| [source] |
| ---- |
| oracle.jdbc.pool.OracleDataSource |
| oracle.jdbc.xa.client.OracleXADataSource |
| ---- |
| * Properties: |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| + |
| |
| [NOTE] |
| ==== |
| For this driver, the `XAResource.recover` method repeatedly returns the |
| same set of in-doubt Xids regardless of the input flag. According to the |
| XA specifications, the Transaction Manager initially calls this method |
| with `TMSTARTSCAN` and then with `TMNOFLAGS` repeatedly until no Xids |
| are returned. The `XAResource.commit` method also has some issues. |
| |
| To disable this {productName} workaround, the |
| `oracle-xa-recovery-workaround` property value must be set to `false`. |
| |
| Additionally, in order for the transaction manager to recover |
| transactions, the JDBC connection pool's database user must be given |
| certain Oracle permissions: |
| |
| ** SELECT permission on DBA_PENDING_TRANSACTIONS, PENDING_TRANS$, |
| DBA_2PC_PENDING and DBA_2PC_NEIGHBORS. |
| ** EXECUTE permissions on DBMS_XA and DBMS_SYSTEM. |
| ==== |
| |
| |
| [[gjksj]][[GSADG00755]][[postgresql-type-4-driver]] |
| |
| ==== PostgreSQL Type 4 Driver |
| |
| The JAR file for the PostgreSQL driver is |
| `postgresql-9.0-801.jdbc4.jar`. Configure the connection pool using the |
| following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Postgresql |
| * DataSource Classname: `org.postgresql.ds.PGSimpleDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beamy]][[GSADG00756]][[datadirect-type-4-driver-for-ibm-db2-database]] |
| |
| ==== DataDirect Type 4 Driver for IBM DB2 Database |
| |
| The JAR file for DataDirect driver is `db2.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-DB2 |
| * DataSource Classname: `com.ddtek.jdbcx.db2.DB2DataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beanj]][[GSADG00757]][[datadirect-type-4-driver-for-ibm-informix]] |
| |
| ==== DataDirect Type 4 Driver for IBM Informix |
| |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-Informix |
| * DataSource Classname: Specify one of the following: |
| + |
| [source] |
| ---- |
| com.informix.jdbcx.IfxDataSource |
| com.informix.jdbcx.IfxXADataSource |
| ---- |
| DataDirect DataSource Classname: |
| `com.ddtek.jdbcx.informix.InformixDataSourcee` |
| * Properties: |
| |
| ** `serverName` - Specify the Informix database server name. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. This is optional. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `IfxIFXHost` - Specify the host name or IP address of the database |
| server. |
| |
| [[beana]][[GSADG00758]][[datadirect-type-4-driver-for-microsoft-sql-server-database]] |
| |
| ==== DataDirect Type 4 Driver for Microsoft SQL Server Database |
| |
| The JAR file for the DataDirect driver is `sqlserver.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-Microsoft SQL Server |
| * DataSource Classname: `com.ddtek.jdbcx.sqlserver.SQLServerDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address and the port of |
| the database server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `selectMethod` - Set to `cursor`. |
| |
| [[gjksd]][[GSADG00759]][[datadirect-type-4-driver-for-mysql-server-database]] |
| |
| ==== DataDirect Type 4 Driver for MySQL Server Database |
| |
| The JAR file for the DataDirect driver is `mysql.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-MySQL |
| * DataSource: `com.ddtek.jdbcx.mysql.MySQLDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address and the port of |
| the database server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `selectMethod` - Set to `cursor`. |
| |
| [[beamz]][[GSADG00760]][[datadirect-type-4-driver-for-oracle-11-database]] |
| |
| ==== DataDirect Type 4 Driver for Oracle 11 Database |
| |
| The JAR file for the DataDirect driver is `oracle.jar`. |
| |
| To make the Oracle driver behave in a Jakarta EE-compliant manner, you must |
| define the following JVM property: |
| |
| [source] |
| ---- |
| -Doracle.jdbc.J2EE13Compliant=true |
| ---- |
| |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-Oracle |
| * DataSource Classname: `com.ddtek.jdbcx.oracle.OracleDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beanb]][[GSADG00761]][[datadirect-type-4-driver-for-sybase-database]] |
| |
| ==== DataDirect Type 4 Driver for Sybase Database |
| |
| The JAR file for the DataDirect driver is `sybase.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: DataDirect-Sybase |
| * DataSource Classname: `com.ddtek.jdbcx.sybase.SybaseDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. This is optional. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| |
| [NOTE] |
| ==== |
| In some situations, using this driver can cause exceptions to be thrown |
| because the driver creates a stored procedure for every parameterized |
| PreparedStatement by default. If this situation arises, add the property |
| `PrepareMethod`, setting its value to `direct`. |
| ==== |
| |
| |
| [[beane]][[GSADG00762]][[inet-oraxo-driver-for-oracle-database]] |
| |
| ==== Inet Oraxo Driver for Oracle Database |
| |
| The JAR file for the Inet Oracle driver is `Oranxo.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Oracle |
| * DataSource Classname: `com.inet.ora.OraDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `user` - Specify the database user. |
| |
| ** `password` - Specify the database password. |
| |
| ** `serviceName` - Specify the URL of the database. The syntax is as follows: |
| + |
| [source] |
| ---- |
| jdbc:inetora:server:port:dbname |
| ---- |
| For example: |
| + |
| [source] |
| ---- |
| jdbc:inetora:localhost:1521:payrolldb |
| ---- |
| In this example,`localhost` is the name of the host running the Oracle |
| server, `1521` is the Oracle server's port number, and `payrolldb` is |
| the SID of the database. For more information about the syntax of the |
| database URL, see the Oracle documentation. |
| |
| ** `streamstolob` - If the size of BLOB or CLOB data types exceeds 4 KB |
| and this driver is used for CMP, this property must be set to `true`. |
| |
| [[beanf]][[GSADG00763]][[inet-merlia-driver-for-microsoft-sql-server-database]] |
| |
| ==== Inet Merlia Driver for Microsoft SQL Server Database |
| |
| The JAR file for the Inet Microsoft SQL Server driver is `Merlia.jar`. |
| Configure the connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: MicrosoftSqlServer |
| * DataSource Classname: `com.inet.tds.TdsDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address and the port of |
| the database server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beang]][[GSADG00764]][[inet-sybelux-driver-for-sybase-database]] |
| |
| ==== Inet Sybelux Driver for Sybase Database |
| |
| The JAR file for the Inet Sybase driver is `Sybelux.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Sybase |
| * DataSource Classname: `com.inet.syb.SybDataSource` |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. Do not specify the complete URL, |
| only the database name. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| [[beand]][[GSADG00765]][[jconnect-type-4-driver-for-sybase-ase-12.5-database]] |
| |
| ==== JConnect Type 4 Driver for Sybase ASE 12.5 Database |
| |
| The JAR file for the Sybase driver is `jconn4.jar`. Configure the |
| connection pool using the following settings: |
| |
| * Name: Use this name when you configure the JDBC resource later. |
| * Resource Type: Specify the appropriate value. |
| * Database Vendor: Sybase |
| * DataSource Classname: Specify one of the following: |
| + |
| [source] |
| ---- |
| com.sybase.jdbc4.jdbc.SybDataSource |
| com.sybase.jdbc4.jdbc.SybXADataSource |
| ---- |
| * Properties: |
| |
| ** `serverName` - Specify the host name or IP address of the database |
| server. |
| |
| ** `portNumber` - Specify the port number of the database server. |
| |
| ** `databaseName` - Set as appropriate. Do not specify the complete URL, |
| only the database name. |
| |
| ** `user` - Set as appropriate. |
| |
| ** `password` - Set as appropriate. |
| |
| ** `BE_AS_JDBC_COMPLIANT_AS_POSSIBLE` - Set to `true`. |
| |
| ** `FAKE_METADATA` - Set to `true`. |
| |
| |