--- /dev/null
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+ http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<mbeans-descriptors>
+
+ <mbean name="DiagnosticsPool"
+ description="Provides per diagnostic metrics and notifications for JDBC operations"
+ domain="tomcat"
+ group="jdbc"
+ type="org.apache.tomcat.jdbc.pool.DataSource">
+
+ <attribute name="className"
+ description="Fully qualified class name of the managed object"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="size"
+ description="The number of established connections in the pool, idle and in use"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="idle"
+ description="The number of established connections in the pool that are idle"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="active"
+ description="The number of established connections in the pool that are in use"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="poolSweeperEnabled"
+ description="Returns true if the pool has a background thread running"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="url"
+ description="The JDBC url for this connection pool"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="driverClassName"
+ description="The JDBC driver class for this connection pool"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="defaultAutoCommit"
+ description="The JDBC auto commit setting for new connections"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="defaultReadOnly"
+ description="The JDBC read only setting for new connections"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="defaultTransactionIsolation"
+ description="The JDBC transaction isolation setting for new connections"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="connectionProperties"
+ description="The connection properties that will be set for new connections. Format of the string will be [propertyName=property;]*"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="defaultCatalog"
+ description="The JDBC transaction isolation setting for new connections"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="initialSize"
+ description="The number of connections opened at pool startup"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="maxActive"
+ description="The maximum number of open connections"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="maxIdle"
+ description="The max number of idle connections"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="minIdle"
+ description="The minimum number of open connections"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="maxWait"
+ description="The time to wait in milliseconds before a SQLException is thrown when a connection is requested"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="validationQuery"
+ description="The query to run during validation"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="testOnBorrow"
+ description="True if validation happens when a connection is requested"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="testOnReturn"
+ description="True if validation happens when a connection is returned"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="testWhileIdle"
+ description="True if validation happens when a connection is not in use (idle)"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="timeBetweenEvictionRunsMillis"
+ description="Sleep time for background thread in between pool checks"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="numTestsPerEvictionRun"
+ description="Not in use"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="minEvictableIdleTimeMillis"
+ description="Minimum amount of time a connection stays idle before it is evicted"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="accessToUnderlyingConnectionAllowed"
+ description="Returns true if one can retrieve the actual JDBC connection"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="removeAbandoned"
+ description="Returns true if connection in use can be timed out"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="removeAbandonedTimeout"
+ description="Timeout in seconds for connections in use"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+ <attribute name="logAbandoned"
+ description="If true, stack trace will be recorded and printed out for timed out connection"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="loginTimeout"
+ description="Not in use"
+ type="java.lang.Integer"
+ writeable="false"/>
+
+
+ <attribute name="name"
+ description="The name of the connection pool, will be used in the ObjectName of the actual pool"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="password"
+ description="For security purposes,this doesn't return anything"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="username"
+ description="The username used to open connections"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="validationInterval"
+ description="If larger than zero than validation will only occur after the interval milliseconds has passed"
+ type="java.lang.Long"
+ writeable="false"/>
+
+ <attribute name="initSQL"
+ description="A SQL executed once per connection, when it is established"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <attribute name="isTestOnConnect"
+ description="Validate connection after connection has been established"
+ type="java.lang.Boolean"
+ writeable="false"/>
+
+ <attribute name="jdbcInterceptors"
+ description="The interceptors configured for this pool"
+ type="java.lang.String"
+ writeable="false"/>
+
+ <operation name="checkIdle"
+ description="forces a check of idle connections"
+ impact="ACTION"
+ returnType="void" />
+
+ <operation name="checkAbandoned"
+ description="forces a check of abandoned connections"
+ impact="ACTION"
+ returnType="void" />
+
+ <operation name="testIdle"
+ description="forces a validation of abandoned connections"
+ impact="ACTION"
+ returnType="void" />
+
+
+ <notification name="jdbc-diagnostic"
+ description="Notification issued when the request diagnostic actions kick in" >
+ <notification-type>INIT FAILED</notification-type>
+ <notification-type>CONNECTION FAILED</notification-type>
+ <notification-type>CONNECTION ABANDONED</notification-type>
+ </notification>
+
+ </mbean>
+
+</mbeans-descriptors>