| type=page |
| status=published |
| title=create-jdbc-connection-pool |
| next=create-jdbc-resource.html |
| prev=create-javamail-resource.html |
| ~~~~~~ |
| |
| = create-jdbc-connection-pool |
| |
| [[create-jdbc-connection-pool-1]][[GSRFM00036]][[create-jdbc-connection-pool]] |
| |
| == create-jdbc-connection-pool |
| |
| Registers a JDBC connection pool |
| |
| [[sthref320]] |
| |
| === Synopsis |
| |
| [source] |
| ---- |
| asadmin [asadmin-options] create-jdbc-connection-pool [--help] |
| [--datasourceclassname=datasourceclassname] |
| [--restype=resourcetype] |
| [--steadypoolsize=poolsize] |
| [--maxpoolsize=maxpoolsize] |
| [--maxwait=maxwaittime] |
| [--poolresize=poolresizelimit] |
| [--idletimeout=idletimeout] |
| [--initsql=initsqlstring] |
| [--isolationlevel=isolationlevel] |
| [--isisolationguaranteed={true|false}] |
| [--isconnectvalidatereq={false|true}] |
| [--validationmethod=validationmethod] |
| [--validationtable=validationtable] |
| [--failconnection={false|true}] |
| [--allownoncomponentcallers={false|true}] |
| [--nontransactionalconnections={false|true}] |
| [--validateatmostonceperiod=validationinterval] |
| [--leaktimeout=leaktimeout] |
| [--leakreclaim={false|true}] |
| [--statementleaktimeout=satementleaktimeout] |
| [--statmentleakreclaim={false|true}] |
| [--creationretryattempts=creationretryattempts] |
| [--creationretryinterval=creationretryinterval] |
| [--sqltracelisteners=sqltracelisteners[,sqltracelisteners]] |
| [--statementtimeout=statementtimeout] |
| [--lazyconnectionenlistment={false|true}] |
| [--lazyconnectionassociation={false|true}] |
| [--associatewiththread={false|true}] |
| [--driverclassname=jdbcdriverclassname] |
| [--matchconnections={false|true}] |
| [--maxconnectionusagecount=maxconnectionusagecount] |
| [--ping={false|true}] |
| [--pooling={false|true}] |
| [--statementcachesize=statementcachesize] |
| [--validationclassname=validationclassname] |
| [--wrapjdbcobjects={false|true}] |
| [--description description] |
| [--property name=value)[:name=value]*] |
| [--target=target] |
| connectionpoolid |
| ---- |
| |
| [[sthref321]] |
| |
| === Description |
| |
| The `create-jdbc-connection-pool` subcommand registers a new Java |
| Database Connectivity ("JDBC") software connection pool with the |
| specified JDBC connection pool name. |
| |
| A JDBC connection pool with authentication can be created either by |
| using a `--property` option to specify user, password, or other |
| connection information, or by specifying the connection information in |
| the XML descriptor file. |
| |
| This subcommand is supported in remote mode only. |
| |
| [[sthref322]] |
| |
| === Options |
| |
| asadmin-options:: |
| Options for the `asadmin` utility. For information about these |
| options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page. |
| `--help`:: |
| `-?`:: |
| Displays the help text for the subcommand. |
| `--datasourceclassname`:: |
| The name of the vendor-supplied JDBC datasource resource manager. An |
| XA or global transactions capable datasource class will implement the |
| `javax.sql.XADatasource` interface. Non-XA or exclusively local |
| transaction datasources will implement the `javax.sql.Datasource` |
| interface. |
| `--restype` |
| + |
| Required when a datasource class implements two or more interfaces |
| (`javax.sql.DataSource`, `javax.sql.XADataSource`, or |
| `javax.sql.ConnectionPoolDataSource`), or when a driver classname must |
| be provided.:: |
| * If `--restype` = `java.sql.Driver`, then the `--driverclassname` |
| option is required. |
| * If `--restype` = `javax.sql.DataSource`, `javax.sql.XADataSource`, |
| or `javax.sql.ConnectionPoolDataSource`, then the |
| `--datasourceclassname` option is required. |
| * If `--restype` is not specified, then either the `--driverclassname` |
| or `--datasourceclassname` option must be specified, but not both. |
| `--steadypoolsize`:: |
| The minimum and initial number of connections maintained in the pool. |
| The default value is 8. |
| `--maxpoolsize`:: |
| The maximum number of connections that can be created. The default |
| value is 32. |
| `--maxwait`:: |
| The amount of time, in milliseconds, that a caller will wait before a |
| connection timeout is sent. The default is 60000 (60 seconds). A value |
| of 0 forces the caller to wait indefinitely. |
| `--poolresize`:: |
| Number of connections to be removed when `idle-timeout-in-seconds` |
| timer expires. This is the quantity by which the pool will scale up or |
| scale down the number of connections. Scale up: When the pool has no |
| free connections, pool will scale up by this quantity. Scale down: All |
| the invalid and idle connections are removed, sometimes resulting in |
| removing connections of quantity greater than this value. Connections |
| that have been idle for longer than the timeout are candidates for |
| removal. Steadypoolsize will be ensured. Possible values are from 0 to |
| `MAX_INTEGER`. The default value is 2. |
| `--idletimeout`:: |
| The maximum time, in seconds, that a connection can remain idle in the |
| pool. After this time, the implementation can close this connection. |
| This timeout value must be kept shorter than the database server side |
| timeout value to prevent the accumulation of unusable connections in |
| the application. The default value is 300. |
| `--initsql`:: |
| An SQL string that is executed whenever a connection is created from |
| the pool. If an existing connection is reused, this string is not |
| executed. Connections that have idled for longer than the timeout are |
| candidates for removal. This option has no default value. |
| `--isolationlevel`:: |
| The transaction-isolation-level on the pooled database connections. |
| This option does not have a default value. If not specified, the pool |
| operates with the default isolation level that the JDBC driver |
| provides. You can set a desired isolation level using one of the |
| standard transaction isolation levels: `read-uncommitted`, |
| `read-committed`, `repeatable-read`, `serializable`. Applications that |
| change the isolation level on a pooled connection programmatically |
| risk polluting the pool. This could lead to program errors. |
| `--isisolationguaranteed`:: |
| This is applicable only when a particular isolation level is specified |
| for transaction-isolation-level. The default value is true. + |
| This option assures that every time a connection is obtained from the |
| pool, isolation level is set to the desired value. This could have |
| some performance impact on some JDBC drivers. Administrators can set |
| this to false when the application does not change `--isolationlevel` |
| before returning the connection. |
| `--isconnectvalidatereq`:: |
| If set to true, connections are validated or checked to see if they |
| are usable before giving out to the application. The default value is |
| false. |
| `--validationmethod`:: |
| Type of validation to be performed when |
| `is-connection-validation-required` is true. Valid settings are: |
| `auto-commit`, `meta-data`, `table`, or `custom-validation`. The |
| default value is `table`. |
| `--validationtable`:: |
| The name of the validation table used to perform a query to validate a |
| connection. If `is-connection-validation-required` is set to true and |
| connection-validation-type set to table, this option is mandatory. |
| `--failconnection`:: |
| If set to true, all connections in the pool must be closed when a |
| single validation check fails. The default value is false. One attempt |
| is made to reestablish failed connections. |
| `--allownoncomponentcallers`:: |
| A pool with this property set to true can be used by non-Jakarta EE |
| components, that is, components other than EJBs or Servlets. The |
| returned connection is enlisted automatically with the transaction |
| context obtained from the transaction manager. Connections obtained by |
| non-component callers are not automatically cleaned by the container |
| at the end of a transaction. These connections need to be explicitly |
| closed by the caller. |
| `--nontransactionalconnections`:: |
| A pool with this property set to true returns non-transactional |
| connections. This connection does not get automatically enlisted with |
| the transaction manager. |
| `--validateatmostonceperiod`:: |
| Specifies the time interval in seconds between successive requests to |
| validate a connection at most once. Setting this attribute to an |
| appropriate value minimizes the number of validation requests by a |
| connection. Default value is 0, which means that the attribute is not |
| enabled. |
| `--leaktimeout`:: |
| Specifies the amount of time, in seconds, for which connection leaks |
| in a connection pool are to be traced. When a connection is not |
| returned to the pool by the application within the specified period, |
| it is assumed to be a potential leak, and stack trace of the caller |
| will be logged. This option only detects if there is a connection |
| leak. The connection can be reclaimed only if |
| `connection-leak-reclaim` is set to true. + |
| If connection leak tracing is enabled, you can use the Administration |
| Console to enable monitoring of the JDBC connection pool to get |
| statistics on the number of connection leaks. The default value is 0, |
| which disables connection leak tracing. |
| `--leakreclaim`:: |
| Specifies whether leaked connections are restored to the connection |
| pool after leak connection tracing is complete. Possible values are as |
| follows: |
| |
| `false`;; |
| Leaked connections are not restored to the connection pool |
| (default). |
| `true`;; |
| Leaked connections are restored to the connection pool. |
| |
| `--statementleaktimeout`:: |
| Specifies the amount of time, in seconds, after which any statements |
| that have not been closed by an application are to be detected. |
| Applications can run out of cursors if statement objects are not |
| properly closed. This option only detects if there is a statement |
| leak. The statement can be reclaimed only if `statement-leak-reclaim` |
| is set to true. The leaked statement is closed when it is reclaimed. + |
| The stack trace of the caller that creates the statement will be |
| logged when a statement leak is detected. If statement leak tracing is |
| enabled, you can use the Administration Console to enable monitoring |
| of the JDBC connection pool to get statistics on the number of |
| statement leaks. The default value is 0, which disables statement leak tracing. + |
| The following limitations apply to the statement leak timeout value: |
| |
| * The value must be less than the value set for the connection `leak-timeout`. |
| * The value must be greater than the value set for `statement-timeout`. |
| |
| `--statementleakreclaim`:: |
| Specifies whether leaked statements are reclaimed after the statements |
| leak. Possible values are as follows: |
| |
| `false`;; |
| Leaked statements are not reclaimed (default). |
| `true`;; |
| Leaked statements are reclaimed. |
| |
| `--creationretryattempts`:: |
| Specifies the maximum number of times that {productName} retries |
| to create a connection if the initial attempt fails. The default value |
| is 0, which specifies that {productName} does not retry to create |
| the connection. |
| `--creationretryinterval`:: |
| Specifies the interval, in seconds, between successive attempts to |
| create a connection. + |
| If `--creationretryattempts` is 0, the `--creationretryinterval` |
| option is ignored. The default value is 10. |
| `--sqltracelisteners`:: |
| A list of one or more custom modules that provide custom logging of |
| database activities. Each module must implement the |
| `org.glassfish.api.jdbc.SQLTraceListener` public interface. When set |
| to an appropriate value, SQL statements executed by applications are |
| traced. This option has no default value. |
| `--statementtimeout`:: |
| Specifies the length of time in seconds after which a query that is |
| not completed is terminated. + |
| A query that remains incomplete for a long period of time might cause |
| the application that submitted the query to hang. To prevent this |
| occurrence, use this option set a timeout for all statements that will |
| be created from the connection pool that you are creating. When |
| creating a statement, {productName} sets the `QueryTimeout` |
| property on the statement to the length of time that is specified. The |
| default value is -1, which specifies that incomplete queries are never |
| terminated. |
| `--lazyconnectionenlistment`:: |
| Specifies whether a resource to a transaction is enlisted only when a |
| method actually uses the resource. Possible values are as follows: |
| |
| `false`;; |
| Resources to a transaction are always enlisted and not only when a |
| method actually uses the resource (default). |
| `true`;; |
| Resources to a transaction are enlisted only when a method actually |
| uses the resource. |
| |
| `--lazyconnectionassociation`:: |
| Specifies whether a physical connection should be associated with the |
| logical connection only when the physical connection is used, and |
| disassociated when the transaction is completed. Such association and |
| dissociation enable the reuse of physical connections. Possible values |
| are as follows: |
| |
| `false`;; |
| A physical connection is associated with the logical connection even |
| before the physical connection is used, and is not disassociated |
| when the transaction is completed (default). |
| `true`;; |
| A physical connection is associated with the logical connection only |
| when the physical connection is used, and disassociated when the |
| transaction is completed. The `--lazyconnectionenlistment` option |
| must also be set to `true`. |
| |
| `--associatewiththread`:: |
| Specifies whether a connection is associated with the thread to enable |
| the thread to reuse the connection. If a connection is not associated |
| with the thread, the thread must obtain a connection from the pool |
| each time that the thread requires a connection. Possible values are |
| as follows: |
| |
| `false`;; |
| A connection is not associated with the thread (default). |
| `true`;; |
| A connection is associated with the thread. |
| |
| `--driverclassname`:: |
| The name of the vendor-supplied JDBC driver class. This driver should |
| implement the `java.sql.Driver` interface. |
| `--matchconnections`:: |
| Specifies whether a connection that is selected from the pool should |
| be matched by the resource adaptor. If all the connections in the pool |
| are homogenous, a connection picked from the pool need not be matched |
| by the resource adapter, which means that this option can be set to |
| false. Possible values are as follows: |
| + |
| `false`;; |
| A connection should not be matched by the resource adaptor |
| (default). |
| `true`;; |
| A connection should be matched by the resource adaptor. |
| `--maxconnectionusagecount`:: |
| Specifies the maximum number of times that a connection can be reused. |
| When this limit is reached, the connection is closed. By limiting the |
| maximum number of times that a connection can be reused, you can avoid |
| statement leaks. + |
| The default value is 0, which specifies no limit on the number of |
| times that a connection can be reused. |
| `--ping`:: |
| Specifies if the pool is pinged during pool creation or |
| reconfiguration to identify and warn of any erroneous values for its |
| attributes. Default value is false. |
| `--pooling`:: |
| Specifies if connection pooling is enabled for the pool. The default |
| value is true. |
| `--statementcachesize`:: |
| The number of SQL statements to be cached using the default caching |
| mechanism (Least Recently Used). The default value is 0, which |
| indicates that statement caching is not enabled. |
| `--validationclassname`:: |
| The name of the class that provides custom validation when the value |
| of `validationmethod` is `custom-validation`. This class must |
| implement the `org.glassfish.api.jdbc.ConnectionValidation` interface, |
| and it must be accessible to {productName}. This option is |
| mandatory if the connection validation type is set to custom |
| validation. |
| `--wrapjdbcobjects`:: |
| Specifies whether the pooling infrastructure provides wrapped JDBC |
| objects to applications. By providing wrapped JDBC objects, the |
| pooling infrastructure prevents connection leaks by ensuring that |
| applications use logical connections from the connection pool, not |
| physical connections. The use of logical connections ensures that the |
| connections are returned to the connection pool when they are closed. |
| However, the provision of wrapped JDBC objects can impair the |
| performance of applications. The default value is true. + |
| The pooling infrastructure provides wrapped objects for |
| implementations of the following interfaces in the JDBC API: |
| |
| * `java.sql.CallableStatement` |
| * `java.sql.DatabaseMetaData` |
| * `java.sql.PreparedStatement` |
| * `java.sql.ResultSet` |
| * `java.sql.Statement` |
| |
| + |
| Possible values of `--wrapjdbcobjects` are as follows: |
| |
| `false`;; |
| The pooling infrastructure does not provide wrapped JDBC objects to |
| applications. (default). |
| `true`;; |
| The pooling infrastructure provides wrapped JDBC objects to |
| applications. |
| |
| `--description`:: |
| Text providing details about the specified JDBC connection pool. |
| `--property`:: |
| Optional attribute name/value pairs for configuring the pool. The |
| following properties are available: |
| |
| `user`;; |
| Specifies the user name for connecting to the database. |
| `password`;; |
| Specifies the password for connecting to the database. |
| `databaseName`;; |
| Specifies the database for this connection pool. |
| `serverName`;; |
| Specifies the database server for this connection pool. |
| `port`;; |
| Specifies the port on which the database server listens for |
| requests. |
| `networkProtocol`;; |
| Specifies the communication protocol. |
| `roleName`;; |
| Specifies the initial SQL role name. |
| `datasourceName`;; |
| Specifies an underlying `XADataSource`, or a |
| `ConnectionPoolDataSource` if connection pooling is done. |
| `description`;; |
| Specifies a text description. |
| `url`;; |
| Specifies the URL for this connection pool. Although this is not a |
| standard property, it is commonly used. |
| `dynamic-reconfiguration-wait-timeout-in-seconds`;; |
| Used to enable dynamic reconfiguration of the connection pool |
| transparently to the applications that are using the pool, so that |
| applications need not be re-enabled for the attribute or property |
| changes to the pool to take effect. Any in-flight transaction's |
| connection requests will be allowed to complete with the old pool |
| configuration as long as the connection requests are within the |
| timeout period, so as to complete the transaction. New connection |
| requests will wait for the pool reconfiguration to complete and |
| connections will be acquired using the modified pool configuration. |
| `LazyConnectionEnlistment`;; |
| Deprecated. Use the equivalent attribute. The default value is |
| false. |
| `LazyConnectionAssociation`;; |
| Deprecated. Use the equivalent attribute. The default value is |
| false. |
| `AssociateWithThread`;; |
| Deprecated. Use the equivalent attribute. The default value is |
| false. |
| `MatchConnections`;; |
| Deprecated. Use the equivalent attribute. The default value is true. |
| `Prefer-Validate-Over-Recreate`;; |
| Specifies whether pool resizer should validate idle connections |
| before destroying and recreating them. The default value is true. |
| `time-to-keep-queries-in-minutes`;; |
| Specifies the number of minutes that will be cached for use in |
| calculating frequently used queries. Takes effect when SQL tracing |
| and monitoring are enabled for the JDBC connection pool. The default |
| value is 5 minutes. |
| `number-of-top-queries-to-report`;; |
| Specifies the number of queries to list when reporting the top and |
| most frequently used queries. Takes effect when SQL tracing and |
| monitoring are enabled for the JDBC connection pool. The default |
| value is 10 queries. |
| |
| + |
| [NOTE] |
| ==== |
| If an attribute name or attribute value contains a colon, the |
| backslash (`\`) must be used to escape the colon in the name or value. |
| Other characters might also require an escape character. For more |
| information about escape characters in command options, see the |
| link:asadmin.html#asadmin-1m[`asadmin`(1M)] man page. |
| ==== |
| |
| `--target`:: |
| Do not specify this option. This option is retained for compatibility |
| with earlier releases. If you specify this option, a syntax error does |
| not occur. Instead, the subcommand runs successfully and displays a |
| warning message that the option is ignored. |
| |
| [[sthref323]] |
| |
| === Operands |
| |
| connectionpoolid:: |
| The name of the JDBC connection pool to be created. |
| |
| [[sthref324]] |
| |
| === Examples |
| |
| [[GSRFM493]][[sthref325]] |
| |
| ==== Example 1 Creating a JDBC Connection Pool |
| |
| This example creates a JDBC connection pool named `sample_derby_pool`. |
| |
| [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:connectionAttributes=\; |
| create\\=true sample_derby_pool |
| Command create-jdbc-connection-pool executed successfully |
| ---- |
| |
| The escape character backslash (`\`) is used in the `--property` option |
| to distinguish the semicolon (`;`). Two backslashes (`\\`) are used to |
| distinguish the equal sign (`=`). |
| |
| [[sthref326]] |
| |
| === Exit Status |
| |
| 0:: |
| subcommand executed successfully |
| 1:: |
| error in executing the subcommand |
| |
| [[sthref327]] |
| |
| === See Also |
| |
| link:asadmin.html#asadmin-1m[`asadmin`(1M)] |
| |
| link:delete-jdbc-connection-pool.html#delete-jdbc-connection-pool-1[`delete-jdbc-connection-pool`(1)], |
| link:list-jdbc-connection-pools.html#list-jdbc-connection-pools-1[`list-jdbc-connection-pools`(1)] |
| |
| |