type=page
status=published
title=ping-connection-pool
next=ping-node-dcom.html
prev=osgi-shell.html
~~~~~~
ping-connection-pool
====================

[[ping-connection-pool-1]][[GSRFM00214]][[ping-connection-pool]]

ping-connection-pool
--------------------

tests if a connection pool is usable

[[sthref1926]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] ping-connection-pool [--help] 
pool_name 
[--appname application [--modulename module]
----

[[sthref1927]]

Description

The `ping-connection-pool` subcommand tests if an existing JDBC or
connector connection pool is usable . For example, if you create a new
JDBC connection pool for an application that is expected to be deployed
later, the JDBC pool is tested with this subcommand before deploying the
application.

Before testing availability of a connection pool, you must create the
connection pool with authentication and ensure that the server or
database is started.

This subcommand is supported in remote mode only.

Application Scoped Resources

The `ping-connection-pool` subcommand can target resources that are
scoped to a specific application or module, as defined in the
`glassfish-resources.xml` for the GlassFish domain.

* To reference the `jndi-name` for an application scoped resource,
perform the lookup using the `java:app` prefix.
* To reference the `jndi-name` for a module scoped resource, perform the
lookup using the `java:module` prefix.

The `jndi-name` for application-scoped-resources or
module-scoped-resources are specified using the format
`java:app/`jdbc/myDataSource or
`java:module/`jdbc/myModuleLevelDataSource. This naming scope is defined
in the Java EE 6 Specification
(`http://download.oracle.com/javaee/6/api/`).

[[sthref1928]]

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.
`--appname`::
  Name of the application in which the application scoped resource is
  defined.
`--modulename`::
  Name of the module in which the module scoped resource is defined.

[[sthref1929]]

Operands

pool_name::
  Name of the connection pool to be reinitialized.

[[sthref1930]]

Examples

[[GSRFM727]][[sthref1931]]

Example 1   Contacting a Connection Pool

This example tests to see if the connection pool named `DerbyPool` is
usable.

[source,oac_no_warn]
----
asadmin> ping-connection-pool DerbyPool
Command ping-connection-pool executed successfully
----

[[sthref1932]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1933]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-connector-connection-pool.html#create-connector-connection-pool-1[`create-connector-connection-pool`(1)],
link:create-jdbc-connection-pool.html#create-jdbc-connection-pool-1[`create-jdbc-connection-pool`(1)],
link:delete-connector-connection-pool.html#delete-connector-connection-pool-1[`delete-connector-connection-pool`(1)],
link:delete-jdbc-connection-pool.html#delete-jdbc-connection-pool-1[`delete-jdbc-connection-pool`(1)],
link:list-connector-connection-pools.html#list-connector-connection-pools-1[`list-connector-connection-pools`(1)],
link:list-jdbc-connection-pools.html#list-jdbc-connection-pools-1[`list-jdbc-connection-pools`(1)]


